Vim使用技巧

vim分为命令模式和编辑模式。按Esc键退出编辑模式。下面所有的‘#’号表示数字。

一,在命令模式下移动光标

#h 左   #j 下   #k上   #l 右   

0/^/home 移至行首    $/end 移至行尾

w 移至下一个word的开头    e 移至下一个或当前word的结尾      b 移至前一个或当前word的开头

W/B/E 与小写的w/b/e一样,只是将空格作为word的边界,它们都可以与#配合使用

#fx 在当前行查找向有方向查找第#个字符x         Fx 在当前行向左查找字符x   

t与f的用法相同,只是光标停留在被搜索字符的前一个字符上,这四个命令可以用”;”或”,”重复

zz/zt/zb   将当前行置于屏幕中央/顶端/底端

ZZ 保存当前文件并退出vim

以下是跳转的命令:

#G 移至第#行 G 移至最后一行   gg 移至第一行   可以用两个开单引号(即反单引号”`”)跳转到跳转前的位置

% 以匹配一个括号为目的移动,当前光标不在括号上时,会向前找到一个括号。同样适用于}和]

#% 表示跳转到文件的百分之#的地方

ctrl+o 跳转到更早些时间停置光标的位置    ctrl+I 跳转到后来停置光标的更新的位置

Ctrl+f   向前翻屏  Ctrl+b  向后翻屏       Ctrl+d  向前翻半屏 Ctrl+u  向后翻半屏

Ctrl+g 告诉你光标当前所在行的行号   

二,插入文本或行

i 在光标位置前插入字符   I 在当前行的开始处添加文本   a 在光标位置后插入字符   A 在当前行的末尾添加文本

r 替换光标所在处的字符   R 替换光标所在处的字符,直到按下ESC为止

J 合并光标所在行及其下一行为一行  alt+j 换行

o 在当前行后插入新的一行     O 在当前行前插入新的一行

三,更改文本的三种方法

1,操作符命令+位移命令

d$/D 删除自当前光标至行尾的位置     

d#w 删除自当前光标至后面第#个word的开始     d#b 删除自当前光标至前一个word的末尾

dG 删除当前行至文件尾的内容  dgg 删除当前行至文件头的内容     #dd 删除#行

#x/#dl 删除光标左边的#个字符    #X/#dh 删除光标右边的#个字符 xp 交换两个字符的位置

y$/Y 复制从光标开始到行尾的字符

y#w 复制从光标开始到第#个word尾的字符(ye不复制word后的空格)    #yw

y^ 复制从光标开始到行首的字符

yy 复制光标所在一行  #yy

c与d相似,只是操作后进入插入模式

s  代表cl,修改一个字符      S  代表cc,修改一整行

c$/C 改变当前光标到行尾的内容

以上的命令有一个固定的模式:操作符命令+位移命令(与移动光标里的命令配合使用)。如d4l则删除光标当前位置到第四个字符,其中位移命令包括排外的和内包的,若是内包的(如$)则位移后光标所在处的字符也会被删除。

2,Visual模式

v 可视化     V 可视化行  ctrl+v 可视化矩阵  

o 让光标置于被选中文本的另一头    O 当用可视化矩阵时,O使光标在同一行的左右两个角之间移动

d删除  y复制  

3,操作符命令+文本对象

diw 删除当前光标所在word,不删除空白符  daw则删除word后的空白符

dis 删除当前光标所在的句子,不包括其后的空白符

其中iw is 等是文本操作命令,这种形式的命令不管当前光标所在的位置而把整个文本对象作为

操作对象。

#p 粘贴在光标后  #P 粘贴在光标前

d,x与p配合使用相当于剪切,这要求vim支持剪贴板操作  

u 取消操作  U 撤销对当前行的所有操作     ctrl+r 恢复撤销

在windows下复制文本,在Linux的vim中,用alt+shift+v粘贴

四,替换

#r<Enter> 替换#个字符为换行符  

R 让vim进入replace模式,每个键入的字符都会替换掉当前光标下的字符,直到你键入<Esc>结束该模式

可以用<insert>键在insert模式和replace模式之间来回切换,当用<BS>键退回时,原有的字符又回来了。

. 重复上一次做出的改动的命令(除了u命令ctrl+r和:开头的命令,也不包括移动光标)

例如:将文本中的four该为five,可执行命令:/five<Enter> cwfive<Esc> n . n .

删除文本中的<*>,可执行命令:f< df> f< . f< . 

五,命令行模式下的指令

:e filename  编辑文件,可以按<Tab>键补全文件名,如果不是想要编辑文件,则继续按<Tab>

或者用ctrl+d 查看众多的补全候选选项

:q!  放弃修改,强制退出

:w filename 将当前文件保存,并修改文件名为filename

:nohlsearch  去掉当前的高亮显示

:saveas move.c 将当前文件保存为一个新文件move.c文件

搜索和替换命令:

/string  搜索字符串string,字符.*[]^%/”$有特殊意义,需在其前加。按下空格即产生”/”。

?与/的工作相同,只是方向相反。

也可以将光标置于要搜索的字符串上,按*或#键对字符串进行搜索,可以与数字配合使用

/<word>  查找作为独立单词的word

/^word 匹配一行的开头word   /word$ 匹配一行的结尾word

/w.d 匹配任何前一个字符时w,后一个字符是d的情况。 ”.”表示匹配除换行符以外的任何一个字符

常用的选项配置

set nu/set nonu  显示行号/取消行号显示

set autoindent/cindent  自动缩进

set tabstop/set ts  设置tab键的宽度

set ignorecase/noignorecase  搜索时忽略大小写/不忽略大小写

set hlsearch/nohlsearch  设置高亮显示/取消高亮显示

set backupext=.bark 备份文件,若源文件名为data.txt,则备份文件名为data.txt.bark

set autowrite 设置自动保存文件  set noautowrite

命令行上常用的位移键

ctrl+B或Home   crtl+E或End

ctrl+w   删除光标之前的整个单词    ctrl+u  删除光标之前所有已键入的内容

shift+<left> 或ctrl+<left> 左移一个单词(并不适用所有的电脑)

ctrl+c/<Esc> 放弃所有已键入的命令

<insert>键可以切换插入和改写字符这两种模式

原文地址:https://www.cnblogs.com/zhoutian220/p/4845115.html