Vim 编辑器是一个模式编辑器 。 这意味着在不同状态下编辑器有不同的行为模式 。 两个基本的模式是 Normal 模式和 Insert 模式 ,还有可视模式。 在 Normal 模式下你键入的每一个字符都被视为一个命令 。 而在 Insert 模式下键入的字符都作为实际要输入的文本内容 。可视模式为我们提供了极为友好的选取文本范围,以高亮显示。
刚启动时 Vim 工作于 Normal 模式 。 要进入 Insert 模式你需要使用"i"命令(i 意为 Insert). 接下来就可以直接输入了 。
最后按下键退出 Insert模式回到 Normal 模式 。 要进入可视模式你按“v”就可以了,接下来就会进入可视模式。
模式间的转换
命令 说明i 在光标之前插入
a 在光标之后插入
I 在光标所在行的行首插入
A 在光标所在行的行末插入
o 在光标所在的行的上面插入一行
O 在光标所在的行的下面插入一行
s 删除光标后的一个字符,然后进入插入模式
S 删除光标所在的行,然后进入插入模式
v 进入可视化模式
退出vim编辑器
欲退出vim编辑器,请先回到正常模式,在输入: 回到命令模式,此时请输入以下命令∶
:q 正常不保存退出
:q! 强制不保存退出
:wq 正常保存退出
注:如果你在放弃所有修改后还想以该文件的初始内容作为开始继续编
辑,还可以用":e!"命令放弃所有修改并重新载入该文件的原始内容 。
要知道你现在所处的工作模式是什么,打开显示模式的开关:
:set showmode你会看到按下冒号键之后当前光标跑到窗口的最后一行去了 。 那是使用冒号命令的地方(顾名思义,冒号命令就是总是以冒号打头的命令). 最后按下回车键结束整个命令(所有的冒号命令都以这种方式表明命令的结束).
现在就会在窗口底部显示模式的名称
--INSERT--这表明你目前处于 Insert 模式 。
--VISUAL-- 这表明你目前处于可视模式。
注:Normal 模式并不会显示--NORMAL--, 作为默认的工作模式它不显示任何字串
移动光标有两种方式
第一种:常用的用箭头移动
第二种:用vim提供的方式:
即:
删除字符格式 d+位移命令
命令 说明x 删除一个字符
nx 删除n个字符
dw 命令可以删除一个 word
dnw 命令可以删除n个 word
dd 删除所在行
ndd 删除从本行起第n行(n可以为负数)
d$ 命令就是删除自当前光标到行尾的内容
:j 删除本行的换行符
:nj 删除第n行的换行符,当为n负数时删除从本行起的前n行的换行符
注: 很多命令都可以接受一个数字作为重复执行同一命令的次数 。
比如在本行添加10个你好!,就可以这样写 10a你好!
接下来就是讲一些比较常用的操作命令
常用命令 移动以 Word 为单位的光标移动
w 命令还是会将光标移动到下一个 word 的首字符上
b 命令则将光标向后移动到前一个word 的首字符上
e 命 令 会 将 光 标 移 动 到 下 一 个 word 的 最 后 一 个 字符
ge 将光标移动到前一个 word 的最后一个字符上
将光标移到行首或行尾
^ 命令将光标移动到当前行的第一个非空白字符上
注:命令"^"前加上一个计数并没有任何效果
$ 命令将光标移动到当前行行尾
n$ 则会移动到下n行的行尾
0 命令将光标移动到当前行行首
将光标移动到指定的字符上
fx 在当前行上查找下一个字符 x. 提示:"f"意为"find".汉字的空格不被视为空白字符
nfx 会把光标定位查找第n个字符 x
如:命令"3fa"会把光标定位于"ababaa"的第三个"a"上
Fx 命令向左方向搜索
tx 命令形同"fx"命令,只不过它不是把光标停留在被搜索字符上,而是在它之前的一个字符上
Tx 命令向左方向搜索