写这篇文章是因为在更新我的一篇博客 Git的其他用法 的时候,里面的修改已经提交的commit说明这一部分需要用到vim。

在使用git config --global --edit或者git rebase -i commiteId^的时候,git会进入文本编辑模式。默认的编辑器是vim,你可以在Git安装的上层目录\Git\usr\bin里找到vim.exe。

这让我想起以前使用VI(Visual Interface)和VIM(VI IMproved)编辑器时的懵逼。现在干脆把vim的基本使用整理出来。

vim编辑器有两种模式,分别为命令模式编辑模式

一、命令模式

当你刚进入文本编辑器的时候,处于编辑器的命令模式。这个命令模式可以做很多事情。这里介绍几个常用的:

命令 对应英文单词 说明
i insert 进入编辑模式,将光标定位在当前字符的前面
v visual mode 按一下v相当于你平时在MS Word里面按住shift,用来选择(高亮)一段文本
y yank 和复制的功能一样(英文意思为:猛拉)
p paste 粘贴到当前字符前面
x x就是"叉"(或者“干掉”)的意思 删除被高亮的字符(光标所在的字符也算是被高亮的字符)
yy yank 复制光标所在行
dd delete 删除光标所在行
u undo 撤销上一个修改
ctrl + r redo 不小心撤销过多的时候使用
/想搜索的字符串 /之后无空格,按Enter键开始搜索。按n(即next)往下搜索,按N往上搜索
1,$ s /text1 /text2 /c substitute text1替换成text21,$表示在整个文档搜索,当你把数字1换成小数点.时,表示从当前位置开始搜索。/c表示让你选择找到之后的动作:y(yes)表示替换当前所选;n(next)表示跳过当前所选;a(all)表示当前所选及剩下的全部替换,不再确认;q(quit)表示停止替换。
:q! quit discard 舍弃修改并退出
:wq write then quit 保存修改并退出

看到:q!这个命令,可能有点懵圈。你没看错,得先输入一个冒号:,再去输入q!。最开始的时候我不知道要输入冒号,结果半天退不出来。

重要的说明

i的说明中,你可能不太理解为什么说“将光标定位在当前字符的前面”。在vim编辑器的命令模式下,光标是覆盖在字符上的。当你按i,它就将光标定位到当前字符的前面。与此相对的,按a(即append)时,光标就定位到当前字符的后面。

如图所示:

找了半天终于找到一个不错的在线vim编辑器:Vim.js

还有一款加载比较慢的:Interactive Vim tutorial - sandbox

点进去后你能直观地看到光标是覆盖到字符上的。你可以分别按ia来查看效果。

至于其他命令,还是看图比较直观:

中文版图源链接

英文版图源链接

当然,你也可以下载vim的文档。这里是官方文档:vimbook-OPL.pdf

二、编辑模式

当你按i进入编辑模式的时候,基本上就可以照常编辑文本了。

除了正常的输入外,这些按键也可以正常使用:del(往光标后删除),back(也就是键盘上的←,往光标前删除),enter(回车键),tab(制表符)

但是注意,想要选择字符或者复制粘贴等的时候,必须退出编辑模式,到命令行模式去执行操作。

当你想要退出编辑模式的时候,按esc键。注意,这时是退到命令模式,不是完全退出。你得在命令模式输入命令来完全退出编辑。

知道了以上这些介绍,你可以进行基本的编辑了。

vim编辑器的简单使用的更多相关文章

  1. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  2. git介绍以及一些常用命令,加上vim编辑器的简单使用

    https://www.jianshu.com/p/04a6517869b4 vim:进入vim编辑器,如果后接文件名,则进入该文件的编辑模式,看图:①.vim编辑器中,按i进入编辑模式:②.按Esc ...

  3. Linux Vim编辑器使用简单讲解

    在Linux中,主要编辑器为vi或者vim,本文围绕vim做简单的讲解说明:Linux默认自带vi(vim)编辑器,其程序包为:[root@linuxidc.com ~]# rpm -qf `whic ...

  4. Vim编辑器Go简单入门

    今天是一次做Go的笔记,一开始直接打开Github上的Go项目然后跑到Wiki位置,然后作者列出了一堆学习Go的资料,这里我 以第一个学习资料https://tour.golang.org/作为Go学 ...

  5. vim编辑器最简单使用方法

    i 输入模式 :q 不保存退出 :q! 强制退出 :wq 保存退出 j 下 k 上 h 左 l 右 gg start G end x 往后删 X 往前删 yy 复制行 p 粘贴 dd 剪切行 u 撤销 ...

  6. Vim 编辑器及其基本操作

    实验楼某些课程有用 Vim 编辑器来写代码,因此有了这篇博客,据说是上古神器,当然主要目的是基本操作. Vim 编辑器 Vim(Vi IMprove) 是 Linux 系统上的最著名的文本/代码编辑器 ...

  7. VIM编辑器简单总结

    第一讲小结  1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键.         h (左移)       j (下行)       k (上行)     l (右移)  2. ...

  8. 玩转Vim 编辑器

    一:VIM快速入门 1.vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数 ...

  9. Linux vim编辑器使用详解

    在Linux中,主要编辑器为vi或者vim,本文围绕vim做简单的讲解说明: Linux默认自带vi(vim)编辑器,其程序包为: [root@xuegod163 ~]# rpm -qf `--1.8 ...

随机推荐

  1. SQL Server之记录筛选(top、ties、offset)汇总

    一.TOP 筛选 如果有 ORDER BY 子句,TOP 筛选将根据排序的结果返回指定的行数.如果没有 ORDER BY 子句,TOP 筛选将按照行的物理顺序返回指定的行数. 1. 返回指定数目的行 ...

  2. JCronTab 定时调用

    习惯使用 unix/linux 的开发者应该对 crontab 都不陌生.Crontab 是一个很方便的用于 unix/linux 系统的任务调度命令.JCronTab 则是一款全然依照 cronta ...

  3. Android 简介:Android SDK 和开发框架简介

    理解Android软件栈: 库: C/C++库(libc,SSL) Android 运行时可以让Android手机从本质上与一个移动Linux实现区分开来.Dalvik并不是Java虚拟机,是一个基于 ...

  4. SufaceView(绘图类)

    public class MainActivity extends Activity { GrameView grameView; @Override public void onCreate(Bun ...

  5. 传说中的WCF(1):这东西难学吗?

    WCF难学吗? 是啊,这问题估计很多人都会问,也包括阿拉在内,也有此深刻而严重的凝问. 也有人说:“如何某项技术可以化繁为简,学起来轻松一点就好了.”也许,人类开生就摆脱不了一种习性——懒惰:不过,也 ...

  6. 7.29 DFS总结

    7.29   黄昏时刻 (一) 全排列 建模: 给了数字n 代表从1-n 个数全排列 思路: 1. 输入n,如果n值为‘0’,则退出程序 2. vis[i] 保存 是否对第i个数字进行访问 3. df ...

  7. 包图Package

    [UML]UML系列——包图Package 系列文章 [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       ...

  8. Stimulsoft.Report.net报表简单实用

    1 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System. ...

  9. EF Power Tools 参数错误 HRESULT:0x80070057 (E_INVALIDARG))

    数据库名称使用数字开头,使用EF Power Tools生成映射时,会提示:“参数错误. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))”. 解 ...

  10. ASP.NET网站单独

    解决ASP.NET网站单独发布指定页面问题 目录 前提 开始 aspx.cs文件放到单独的类库项目 一个可选择勾选页面的发布工具:LimusicAddin 前提 Asp.net 发布分为:动态编译和预 ...