模式切换
vim编辑器有三种模式,一般模式,编辑模式和命令模式。三种模式及模式间切换操作如下图(摘自http://linux.vbird.org/linux_basic/0310vi.php)所示。
一般模式
进入Vim编辑器后,默认就是一般模式,该模式下,主要实现光标的移动、复制剪切粘贴、字符查找与替换等。
a)光标的移动
hjkl
|
左下上右 移动光标
|
G
|
文件尾
|
gg
|
文件首
|
nG
|
去往n行,n尾阿拉伯数字
|
w
|
下一个单词首
|
b
|
上一个单词首
|
0
|
行首
|
$
|
行尾
|
u
|
复原上一个操作(撤销)
|
上面这些命令在前输入阿拉伯数字n,都可以达到执行n次的效果。比如nX,就可以向左删除n个字符。
|
ctrl+r
|
重做上一个操作(反撤销)
|
ctrl+F
|
向后翻页
|
ctrl+B
|
向前翻页
|
ctrl+D
|
向后翻半页
|
ctrl+U
|
向前翻半页
|
ctrl+o
|
回到光标的上个位置
|
b)复制剪切粘贴
yy
|
复制整行
|
yw
|
复制光标之后的单词剩余部分
|
x
|
向右删除当前光标下的字符
|
X
|
向左删除当前光标下的字符
|
de
|
删除到本单词末尾
|
dE
|
删除到本单词末尾包括标点在内
|
db
|
删除到前一个单词
|
dB
|
删除到前一个单词包括标点在内
|
dw
|
删除光标之后的单词剩余部分
|
d$
|
删除光标之后的该行剩余部分
|
dd
|
剪切整行(也可以理解为删除整行)。c 功能和d相同,区别在于完成删除操作后进入INSERT MODE cc也是删除当前行,然后进入INSERT MODE
|
p
|
向后粘贴数据
|
P
|
向前粘贴数据
|
c)查找字符
/word
|
回车后执行查找命令,n为向下查找,N为向上查找。直到执行查找下一个字符命令前,n和N一直有效。 左端匹配使用/\<word,右端匹配使用/word\>,全字匹配使用/\<word\>
|
d)查找替换
:n1,n2s/word1/word2/g
|
将n1行到n2行之间的所有word1替换为word2
|
:1,$s/word1/word2/gc
|
将第一列到最后一列之间的word1替换为word2,在替换前给出提示确认
|
编辑模式
在一般模式下,按下i/I(插入),o/O(开始新一行),a/A(追加),r/R(替换)就能进入编辑模式,大小写的区别是往前还是往后开始编辑。
o/O,a/A,r/R
|
进入编辑模式
|
Esc
|
回到一般模式
|
命令模式
:w
|
将改动保存到文件中
|
:w!
|
强制将改动保存到文件,成功与否跟用户权限有关
|
:q
|
退出vim
|
:q!
|
强制退出vim
|
:wq
|
保存改动并退出vim :wq! 强制保存并退出
|
ZZ
|
文件无改动则直接退出,否则保存后再退出
|
:w [filename]
|
将编辑的文件另存为文件filename
|
:r [filename]
|
读入filename文件到光标处
|
:n1 n2 w [filename]
|
将n1行到n2行的内容存储到filename文件中
|
:! command
|
在vim下执行命令command并将结果展示出来
|
:set nu
|
设置行号
|
:set nonu
|
取消设置行号
|
区块操作(Visual Block)
v
|
字符选择,将光标经过的地方反白色选择
|
V
|
行选择,将光标经过的行全部选择
|
ctrl+v
|
以正方形的方式选择区块
|
y
|
复制区块
|
d
|
删除区块
|
p
|
将选择区块多行编辑方式粘贴
|
多文档多窗口编辑
a)多文档编辑
使用vim同时打开多个文件,如vim hosts etc/hosts,然后使用下列命令来切换编辑的文档。
:n
|
编辑下一个文档
|
:N
|
编辑上一个文档
|
:files
|
列举vim当前打开的所有文件
|
b)多窗口编辑
vim o/O[n] file1 [file2 ... filen]
|
同时打开n个窗口编辑文件,o对应上下分栏,O对应左右分栏
|
:sp [filename]
|
开启两个视窗,有filename就打开新的文件,否则同一份文件打开两次
|
【ctrl+w】+j
|
同时按下ctrl和w,松开后再按下j(或向下方向键)就能编辑下一个文件
|
【ctrl+w】+k
|
同时按下ctrl和w,松开后再按下k(或向上方向键)就能编辑上一个文件
|
【ctrl+w】+q
|
同时按下ctrl和w,再按下q就能离开多窗口编辑模式
|
一张图搞定vim命令
说了这么多,将下图设置成桌面背景或者打印出来贴到电脑边,一张图就搞定了。