半夏凉歌   还在忙吗,别忘了给自己一个微笑。   2023-03-28

移动命令

h      "
j      "
k      "
l      "
w      "光标移动到下一个单词的首字符 a word forward
b      "光标移动到上一个单词的首字符
e      "光标移动到下一个单词的尾字符
ge     "光标移动到上一个单词的尾字符
$      "将光标移动到当前行行尾
^      "将光标移动到当前行第一个非空白字符
0      "将光标移动到当前行第一个字符

注:  这些命令除了’0’命令以外都可以在前面接受一个记数,2$;上面所有命令都可以在前面接受一些操作命令,如d$,dw等。

修改命令

x        "删除一个字符
d        "其后跟任何一个位移命令,将删除从当前光标到位移终点处的文本
         "内容,如dw,delete word                          
c        "与d命令功能类似,不同的在执行完删除后命令进去Insert模式,change 
dd       "删除一整行
yy       "复制一整行
p        "把剪贴板内容粘帖到当前位置
vimdiff 1.c 2.c "创建一个垂直分割窗口比较这两个文件不同的地方

 搜索命令

f<a>     "单字符搜索,fa是在当前行搜索下一个a,find a
/string  "全文本搜索一个字符串,如要找到单词"func"则用/func
         "如果文本有多个func,按下n就会移动到接下来的func位置上
         "n前面也可以接受数字计数,如3n,就会找紧接第三个func 
?string  "与/string的功能相同,唯一的区别就是搜索的方向相反

 注:

  1. 可以用:set noingorecase 忽略字符大小写;
  2. /和?命令都有记忆功能,可以用多次<UP>键选择搜索历史,记录命令最大的历史条数可以在会话viminfo上更改;
  3. 搜索字符.*/?%$^[]等特殊字符要在前面加一个反斜杠转意;
  4. 搜索到孤立的单词,也就是前后都没有其他字符的(除了空格,制表符),如只搜the,不想搜到there或whether这样的,要用/\<the\>;
  5. 可以用:set hlsearch把要搜索的单词高亮显示;

定位命令

G      "光标移动到文件的最后一行,或者Shift+G
15G    "光标移动到文件的第15行,或者15gg
gg     "光标移动到文件的第一行 
45%    "光标移动到文件45%处
H      "光标移动到当前屏幕的最开始
M      "光标移动到当前屏幕的中间
L      "光标移动到当前屏幕的最后

 注:  CTRL+g查看当前光标位置

滚屏命令

CTRL+U  "窗口向上滚半屏
CTRL+D  "窗口向下滚半屏
CTRL+E  "向上滚一行
CTRL+Y  "向下滚一行
CTRL+F  "窗口向上滚一整屏
CTRL+B  "窗口向下滚一整屏
zz      "当前行置于屏幕中央
zt      "当前行置于屏幕顶端
zb      "当前行置于屏幕底端

 分割窗口

:split    "横着分割
:new      "横着添加一个新窗口
:vsplit   "竖着分割
:vnew     "竖着添加新窗口
CRTL+W w  "按顺序切换小窗口
:qall     "关闭所有窗口
:wall     "保存所有窗口

 标签(tab)命令

:tabedit filename "在正在编辑的vim窗口建一个叫filename的tab页
:tab split "新建一个tab页
gt         "移动到下一个tab页
gT         "移动到下一个tab页