Vi/Vim简明教程
rockux/archives/vim-basic-edit
【VIM基本用法(一)】移动、编辑
初次使用VIM(gVIM),一定会觉得无法适应,首先需要明确的一个概念,也是VIM的最大的一个特性就是,在VIM中,有两个主要的模式,一个是“命令模式“,一个是”编辑模式“。
在任何情况下按esc就是到了命令模式,在命令模式下按了”i”键或者其他的(后面会讲到)键就会进入编辑模式,进入编辑模式后,基本上就跟记事本是一样的操作了。
命令模式是VIM最大的特所在,也是我们需要学习的地方所在。
这是系列教程第一篇,我们根据这幅图讲讲基本的一些操作吧:
移动
h,j,k,l 这四个键应该是VIM中使用频率最高的键了,分别代表向左,上,下,右移动,为什么这样设置,因为这样设置手移动的成本最低,方向键也可以用,但是我并不推荐使用方向键,太远了。
移动到行首行尾
数字0可以快速定位到行首,符号$可以定位到行尾,^可以定位到本行第一个非空字符处,这些跟正则表达式的规则很类似。
单词移动
w,b,e 是按照词为单位来移动的,所谓词就是指纯字母或者字符的一组集合,w 是下一个词的词首,e 是下一个词的词尾,b 是移动到上一个词的词首。
大写字母W,B,E 也是按照词为单位移动的,这里的词就是指中间没有空格的一串字符,不区分字母数字符号,只要中间没有空格,那么他这里所指的词。
编辑编辑、、修改
i(nsert)键是在当前字符之前开始插入字符,按下了i 键之后,VIM 也就进入了编辑模式,这时候按esc 键可以退回到命令模式。
使用大写字母I ,表示在这一样的最前面插入字符。
x 可以删除当前的字符,大写的X 可是删除当前字符之前的一个字符。
a(ppend)键可以再当前字符之后开始插入字符,也会进入编辑模式。
大写A 键可以再当前行的最后开始插入字符。
u(ndo)键可以用来撤销上一次操作,ctrl+r(edo)键可以用来恢复上一次操作。
r 键用来替换当前字符,你输入完一个字符之后会自动回到命令模式。
大写R 表示进入替换编辑状态,你输入的每一个字符都会替换对应位置上的字符。 符号:可以进入额外的命令模式,输入:w 表示保存当前修改,:q 表示退出。
【VIM 基本用法(二)】修改、删除
看看这篇教程的示意图吧:
vim 定位
f(ind):后面紧跟一个你要查的字符,光标会移动到这一行离当前光标位置的第一个字符上。
F:f小写是向后查,大写F就是向前查。
t(ill):与小写f相同,不同的是停留在查的字符前一个位置。
T:大写的T就是向后查。
vim 删除
d(elete):后面紧跟一个动作,这个动作指出你要删除的位置离当前光标的距离,比如dw:删除一个单词df_:删除到_符号之间的内容
c(hange):与d操作相同,不同的是c操作之后,会进入编辑模式。
这两个操作也可以与j,k,l,h等键配合。
vim 重复操作
.:句点可以重复你的上一次操作:文字的输入,删除或是修改,等等,在当前光标位置生效。
vim 组合
d2w:顾名思义,delete 2 words,删除接下来的两个单词。
d2t,:这个组合就可以删除接下来两个”,”号之间的内容,但不包括第二个逗号。
重复输入操作符可以对当前行进行编辑,比如cc,dd都是删除当前行。
vim 选中
vim命令替换字符v:在vim中,只有v键可以进入选择模式,当键入v之后,移动光标,你移动的范围就会高亮,也就成为了选中区域。
V:大写的V键,选中范围是以行为单位的。
ctrl+v:可以进行列选择,也是非常有用的。
【VIM基本用法(三)】复制、粘贴、剪贴板
vim 复制粘贴
y(ank):后面跟一个动作来复制到缓冲区,比如w,j,k等。
p(aste):可以粘贴到当前光标之后,如果复制的内容是行,则粘贴的下一样。
P:大写字母P,粘贴到之前。
yy:复制当前行。
在选择模式(visual mode)下,使用y键可以复制选取的内容。
使用c,d,x等删除键,删除的内容也会进入缓冲区,当你下次粘贴的时候会出现。
vim 缓冲区
在复制、粘贴、删除操作前,使用”号加一个a–z的小写字母,可以将相应内容复制进入a–z 对应的缓冲区。
将上面的小写字母换成大写字母,就可以再原有缓冲区的内容之后追加当前内容。
使用”*或者”+可以将内容复制进入系统剪贴板
vim 插入行
o:可以用来当前行的下一行,插入一个空白的新行。
O:大写的o可以再当前行的上一行,插入一个空白行。
【VIM基本用法(四)】搜索查替换
/:在命令模式下,按下”/”键,然后输入你想要搜索的词,就可以在全文进行查,vim也会对你要搜索的词高亮。
?:?键与/键做的是相同的事情,只不过是反方向查。
n:在搜索词高亮的情况下,按下”n”键,可以将光标定位到下一个高亮词的位置。
N:大写的N与小写的n一样,只不过是反方向定位。
替换
:s/foo/bar/g: 将当前行中所有foo均用bar替代。
:line1,line2s/foo/bar/g: 将第line1至line2行中所有foo均用bar替代。
如果需要在替换的时候确认,可以再最后一个参数处添加c,即为:line1,line2s/foo/bar/gc 当前光标处搜索
*:使用该符号可以对当前光标位置的词进行向后搜索。
#:与*相同,不过是反方向搜索。
【VIM基本用法(五)】标记与宏

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。