共计 1498 个字符,预计需要花费 4 分钟才能阅读完成。
1、vim 介绍
Vim 是从 vi 发展出来的一个文本编辑器,处理文本文件功能强大。
三种主要模式:
Vim 打开文件,默认命令(Normal)模式,可以移动光标,剪切和粘贴。
按键 i 进入插入(Insert)模式,用户可以编辑文本。
扩展(Extended)命令模式(或末行模式)用户:wq 可保存退出,或者:q! 强制退出。
Exc 按键可退出当前模式。2、文本操作
vim 打开文本文件
vim +# : 打开文件,并定位于第 #行
vim +:打开文件,定位至最后一行
vim +/PATTERN : 打开文件,定位至第一次被 PATTERN 匹配到的行的行首
移动光标 (编辑模式)
单个移动:h: 左,l: 右,j: 下,k: 上。
#h: 移动 #个字符
w: 移至下一个单词的词首
行内跳转:0: 绝对行首 $: 绝对行尾 ^: 跳转至行首的第一个非空白字符
句间移动:):下一句 (:上一句
段落间移动:}: 下一段 {:上一段
在整个文件里面移动光标
<Ctrl-f>:向下移动一屏。<Ctrl-d>:向下移动半屏。
<Ctrl-b>:向上移动一屏。<Ctrl-u>:向上移动半屏。
G:到文件尾
#G:移动光标到指定的行
gg:到文件首
H:移动光标到屏幕上面
M:移动光标到屏幕中间
L:移动光标到屏幕下面
3、搜索
/word:从当前光标处开始搜索字符串 word,按 n 移动到下个单词处,N 移动到上一个。
?word:和上面类似,但是是反方向。
4、编辑文本
插入模式
i:在当前字符的左边插入
I:在当前行首插入
a:在当前字符的右边插入
A:在当前行尾插入
o:在当前行下面插入一个新行
O:在当前行上面插入一个新行
删除单个字符
x: 删除光标所在处的单个字符
#x: 删除光标所在处及向后的共 #个字符
删除命令:
d$: 删除到行尾
d^: 删除到非空行首
d0: 删除到行首
dd: 删除当前光标所在行
#dd: 删除包括当前光标所在行在内的 #行;
剪切和拷贝
y:拷贝选择的内容到剪贴板。
c:剪贴选择的内容到剪贴板并且进入插入模式。
yy:拷贝当前行。
cc:剪切当前行并且进入插入模式。
D:剪切从光标位置到行尾到剪贴板。
Y:拷贝当前行。
C:和 D 类似,最后进入插入模式。
x:剪切当前字符到剪贴板。
粘贴:p
5、Vim 多缓冲区编辑
剪贴板在 VIM 里面被称为寄存器(Registers)。你可以列出当前定义的所有寄存器名和它们的内容
比如:我们要拷贝当前行到寄存器 a 或者其他字母。你应该按“ayy。现在当前行已存在寄存器 a 里面直到你又拷贝了一些东西进入寄存器 a。你可以使用命令“ap 来粘贴寄存器 a 里面的内容到你想要的位置。
6、撤销改变
u:撤消前一次的编辑操作
连续 u 命令可撤消此前的 n 次编辑操作
#u: 直接撤消最近 #次编辑操作
撤消最近一次撤消操作:Ctrl+r
7、多文件编辑
vim FILE1 FILE2 FILE3 …
:next 下一个
:prev 前一个
:first 第一个
:last 最后一个
:wall 保存所有
:qall 退出所有
:wqall
多文件分割
vim -o|-O FILE1 FILE2 …
-o: 水平分割
-O: 垂直分割
在窗口间切换:Ctrl+w, Arrow
单文件窗口分割:
Ctrl+w,s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
ctrl+w,q:取消相邻窗口
ctrl+w,o: 取消全部窗口
:wqall 退出
8、编辑命令
将当前文件中部分内容另存为另外一个文件
末行模式下使用 w 命令
:w
:ADDR1,ADDR2w /path/to/somewhere
将另外一个文件的内容填充在当前文件中
:r /path/to/somefile
跟 shell 交互 :! COMMAND