vim常用操作命令

位置移动操作

 gg: 移动到文件头
 G : 移动到文件末尾
 0 : 移动到本行第一个字符上
 ^ : 移动到本行第一个非空白字符上
 $ : 移动到本行行尾 (3$移动到下面3行行尾)
 w : 移动到下一个单词首部(3w移动到往后第三个单词的首部)
 e : 同w,差别: 光标停留在单词尾部
 b : 移动到上一个单词首部(3b移动到往前第三个单词的首部)
 h : 左移一个字符(10h左移十个字符)
 l : 右移一个字符(10l右移十个字符)
 k : 上移一个字符(10k上移十个字符)
 j : 下移一个字符(10j下移十个字符) 
 :num : 跳到指定行(如 :20,跳到20行)
 Ctrl + e : 向下滚动一行
 Ctrl + y : 向上滚动一行
 Ctrl + d : 向下滚动半屏
 Ctrl + u : 向上滚动半屏
 Ctrl + f : 向下滚动一屏
 Ctrl + b : 向上滚动一屏

文件内容操作

 v : 逐字选取,按d后剪切,按y后复制
 V : 逐行选取,按d后剪切,按y后复制
 x : 剪切或删除当前字符(3x删除三个字符)
 dl: 删除当前字符(==x)
 dh: 删除前一个字符
 dj: 删除上一行
 dk: 删除下一行
 D : 删除当前字符到行尾
 d$: 删除当前字符至行尾(==D)  
 J : 删除两行之间空行,合并两行
 dgg: 删除当前行之前的所有行,不包括当前行
 yy: 拷贝当前行(nyy拷贝当前后开始的n行)
 dd: 剪切和删除当前行
 nyy : 复制当前行及后面的n-1行
 ndd : 剪切当前行及后面的n-1行
 :1,10y : 将1-10行复制
 :1,10d : 将1-10行剪切或删除
 :1,$d : 删除第一行以后所有行,包括第一行
 :1,10 co 10 : 将第1-10行复制到20行后
 :1,$ co $ : 将整个文件复制一份到文件尾部
 :1,10 m 20 : 将第1-10行移动到第20行后
 ddp : 交换当前行和下一行(剪切一行后粘贴)
 xp : 交换当前字符和下一字符(剪切当前字符后粘贴)
 p : 光标后粘贴
 shift + p : 在当前行前粘贴

窗口操作

 :split : 打开一个新窗口(== :new)
 :split file : 新窗口打开新文件(== :new file)
 :3splite : 指定新打开的窗口大小为3
 :vsplit : 新窗口打开为纵向
 Ctrl + w+ : 增加当前窗口大小
 Ctrl + w- : 减小当前窗口大小
 2Ctrl+ w_ : 指定窗口大小为2
 Ctrl + ww : 移动到下一个窗口
 Ctrl + wj : 移动到下方窗口
 Ctrl + wk : 移动到上方窗口
 :close : 关闭窗口,最后一个窗口不能使用,防止意外退出vim
 :q : 关闭窗口,如果是最后一个窗口,则退出vim
 ZZ : 保存并退出
 :only : 关闭所有窗口,只保留当前窗口

执行命令操作

 :!command : vim中执行shell命令,不退出vim执行command命令,
        并将结果显示在vim的命令区域
 :r !command : 将shell命令command的结果插入到当前行的下一行
 :行号,行号 !command : 将起始行号和结束行号范围中的内容输入到shell命令中处理,并将处理结果替换行号与行号之间的内容(如 :20,40!sort)
:行号,行号 w !command : 与上一命令不同在于:不用结果替换行号与行号之间的内容
Table of Contents