vi简明教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Vi/Vim简明教程
/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 选中
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基本用法(五)】标记与宏
先看看这一片教程的键盘图:
在文件中标记
我们使用vim写代码的时候,经常需要再文件中跳来跳去,这时候,使用标记来记录一些位置,跳转起来就会方便很多了。

m+[a--z]:使用m键然后跟一个a–z的字母键,就可以把当前位置标记在对应字母的缓存器中。

`:使用数字键1旁边的这个`键,然后跟一个a–z的字母键,就可以快速跳转到你刚才标记的位置了。

‘:使用冒号旁边的’键,然后跟一个a–z的字母键,就可以快速跳转到你刚才标记的位置的行首了。

A–Z是全局的,a–z对应每个文件的缓冲区,这个概念就是说,在你打开了多个文件之后,使用A–Z定义的标记,可以再不同的文件中跳转,而使用a–z定义的标记,在各个文件中是不会冲突的。

‘.:使用‘然后跟一个.符号,可以定位到你上次编辑的位置。

使用宏来做一些重复工作
q+[a--z]:使用q键然后跟一个a–z键,就可以开始记录键盘动作。

q:在记录键盘动作开始之后,再次按下q键,就停止记录。

@:使用@键然后跟一个a–z的字母,就会触发你刚才的记录的键盘动作。

@@:键入连续两个@@就可以重复上次的宏。

宏操作的一个例子
假如我们要删除每一行首的第一个单词那么可以按照下面的顺序:
qadwq 键入这些之后就已经记录了你的操作。

然后就可以使用@a 或者@@来重复这一操作,当然可发散的还很多,看你自己的需要了。

【VIM 基本用法(六)】在文章中移动、定位
先来看看这一篇的键盘图吧
移动移动、、定位
%:使用这个符号键可以在匹配的{} “” () []间跳转。

H 、M 、L :大写的这三个键可以在直接跳转到当前屏幕的顶部、中部、底部。

G :大写的G 键可以直接跳转到文件的底部。

-、+:使用减号、加号可以定位到上一行、下一行。

(、):使用这两个括号键,可以跳转到当前的行首、行尾。

{、}:使用这两个大括号键,可以向上、向下跳转到最近的空行。

[[:连续两个[键可以跳转到前一个{处。

]]:连续两个]键可以跳转到下一个{处。

【VIM 基本用法(七)】更多有用的命令
先来看看键盘图吧:
编辑修改
J:大写的j可以将当前行和下一行合并在一起。

r:使用r然后跟一个字符,可以将当前字符替换。

C:大写的c键是c$的缩写,表示从修改到行尾。

D:大写的d键是d$的缩写,表示删除到行尾。

Y:大写的y键是yy的缩写,表示复制整行。

s:小写的s键可以删除当前光标下的字符,然后进入编辑模式。

S:大写的s键可以删除整行,然后进入编辑模式。

缩进排列
>:可以缩进一行或多行。

<:可以反缩进一行或多行。

=:使用=号可以对所选文字进行格式化。

这些操作都可以在选中模式下工作,如果重复(>>)则表示对当前行操作。

~:可以切换当前光标下字符的大小写状态。

结束
现在就可以开始你的练习了,我相信,这对你来说没什么问题!。

相关文档
最新文档