ZZ Vim的指令整理

来源:互联网 发布:租房软件那个好 编辑:程序博客网 时间:2024/06/05 17:48

=== 命令重复 ===

. - 重复上一次的改动动作。下面是两个例子:
删除标签:在HTML文件中将光标移动到<上,可以用df>删除当前标签,要删除另一标签,同样把光标置于<字符上然后执行“.”命令即可。
查找替换:/string1查找,cwstring2替换,n重复查找,.重复替换。

 * 很多命令都可以带一个数字参数作为重复执行同一命令的次数


=== 光标移动 ===

j/k/h/l - 下/上/左/右
H/M/L - 定位光标到当前屏幕的顶端/中部/末端

<Ctrl>-U - 使文本向下滚动半屏,也可以想象为在显示文本的窗口向上滚动了半屏。
<Ctrl>-D - 将窗口向下移动半屏,所以相当于文本向上滚动了半屏。
<Ctrl>-E - 向上滚动,一次滚动一行。E意为Extra。
<Ctrl>-Y - 向下滚动,一次滚动一行。
<Ctrl>-F - 向前滚动一整屏,实际上是整屏去两行。F意为Forward。
<Ctrl>-B - <Ctrl>-F的反向版。B意为Backward。
zz - 把当前行置为屏幕正中央。z字取其象形意义模拟一张纸的折叠及变形位置重置,广泛用作折叠类命令的前辍。
zt - 把当前行置于屏幕顶端。t意为top。
zb - 把当前行置于屏幕底端。b意为bottom。

w - 移动光标到下一word的开头字符上
b - 移动光标到前一word的开头字符上
e - 移动光标到下一word的末尾字符上
ge - 移动光标到前一word的末尾字符上

^ - 移动光标到当前行的第一个非空白字符
0 - 移动光标到当前行的第一个字符
$ - 移动光标到当前行行尾
<Home> - 同0
<End> - 同$

gg - 定位光标到第一行
xG - 定位光标到第x行,x为数字。1G即等价于gg。
G - 定位光标到最后一行
<Ctrl>-G - 获取文件的状态信息

`` - 当使用“G”命令从一个地方跳转到另一个地方时,Vim会记得你起跳的位置。这个位置在Vim中是一个标记,使用“``”命令可以跳回到刚才的出发点。
:jump - 列出曾经跳转过的位置的列表,最后一个跳转的位置被特别以一个“>”号标记。

 * “``”命令可以在两点之间来回跳转;
 * <Ctrl>-O命令是跳转到更早些时间停置光标的位置(提示:O意为older);
 * <Ctrl>-I则是跳回到后来停置光标的更新的位置(提示:I在键盘上位于O前面)。
 * 只要执行命令时使光标定位于当前行之外的某行上去的都叫一个跳转,包括“/”和“n”这些搜索命令(不管被找到的东西离当前位置有多远)。但是字符搜索命令“fx”和“tx”,或者以word为单位的移动光标位置的命令“w”和“e”不叫跳转。同时,“j”和“k”命令并不被视为一个跳转,即使你在它们之前加了命令计数让当前光标跳到老远的地方也是如此。

mx - 自定义标记x,x为字母。
`x - 跳转到指定标记所在的行和列
'x - 跳转到指定标记所在行的行首
:marks - 列出所有标记的列表

[设置]
:set number 设置行号
:set ruler 在Vim窗口的右下角显示当前光标位置


=== 搜索 ===

fx - 单字符搜索,在当前行上查找下一个字符x,x为任意字符。
Fx - 同fx,但是向左搜索。
tx - 同fx,但是它是把光标停留在被搜索字符之前的一个字符上。
Tx - 同tx,但是向左搜索。

 * 以上4个命令都可以用“;”来重复。“,”也是重复同样的命令,但是方向与原命令的方向相反。

% - 以匹配一个括号(圆括号()、方括号[]和花括号{})为目的的移动。具体可以由“matchpairs”选项来定义。

/string - 查找指定string。字符.*[]^%/?~$有特殊意义,如果包括这些内容,要在这些字符前面放置一个反斜杠/。
//<string/> - 同时匹配一个word的开始处和结尾处,查找作为独立单词的string。
? - 与/的工作相同, 只是搜索方向相反。
n - 查找上次查找的字符串的下一个位置。
N - 重复前一次查找,但是与最初用“/”或“?”指定的搜索方向相反,所以在“/”命令之后的“N”命令是向后搜索,而“?”之后的“N”命令是向前搜索。

/^string - 只匹配位于一行开头的string
/string$ - 只匹配位于一行末尾的string
/^string$ - 只匹配仅包含“string”的一行,有空白字符也不行。
. - 匹配任何字符,比如“c.m”可以匹配任何前一个字符是c后一个字符是m的情况,不管中间的字符是什么。

[设置]
:set ignorecase 搜索时忽略大小写检查
:set hlsearch 高亮搜索
:set incsearch 增量搜索
:set nowrapscan 当搜索到文件结尾时停止,“wrapscan”选项的默认值是开,这样搜索在达到文件的头尾时都会绕向另一个方向继续进行。


=== 删除 ===

dw - 删除从光标开始的一个word
daw - 删除光标所在的word(包括空白字符)
diw - 删除当前光标所在的word(不包括空白字符)
db - 删除从光标开始的前一个word
dd - 删除一行
d$ - 删除光标处到行尾的内容
d^ - 删除光标处到行首的内容
dG - 删除当前行至文件尾的内容
dgg - 删除当前行至文件头的内容

cw - 删除一个word,同时进入Insert模式。
cc - 删除一行,同时进入Insert模式。
c$ - 删除光标到行尾的内容,同时进入Insert模式。
c^ - 删除光标到行首的内容,同时进入Insert模式。

x - 删除光标所在字符,等价于dl。
X - 删除光标前的字符,等价于dh。
D - 删除光标到行尾的内容,等价于d$。

C - 删除光标到行尾的内容,同时进入Insert模式,等价于c$。
s - 删除光标所在字符,同时进入Insert模式,等价于cl。
S - 删除光标所在行,同时进入Insert模式,等价于cc。

r - 替换光标所在字符,与s或cl不同的是不会进入Insert模式。
R - 进入替换状态。

J - 删除本行的换行符,即把两行合并为一行。


=== 插入 ===

i - 光标前插入,同时进入Insert模式。
a - 光标后插入,同时进入Insert模式。
I - 行首插入,同时进入Insert模式。
A - 行末插入,同时进入Insert模式。
o - 在当前行的下面另起一行,同时进入Insert模式。
O - 在当前行的上面另起一行,同时进入Insert模式。


=== 复制 ===

y - 将选中文本复制到Vim默认的寄存器""
yw - 复制一个word,包括word之后的空白字符。
y2w - 复制二个word
ye - 复制一个word,不包括word之后的空白字符。
yy - 复制一行
Y - 同yy
y$ - 复制光标到行尾的内容
"+yy - 将选中内容复制到系统剪贴板"+


=== 粘贴 ===

p - 粘贴默认寄存器""中的文本内容
"+p - 粘贴系统剪贴板"+中的内容


=== 撤销 ===

u - 撤销上一次操作
<Ctrl>-R - 重做,反转撤消,即它是对撤消的撤消。
U - 一次撤消对一行的全部操作,第二次使用该命令则会撤消前一个“U”的操作。


=== 保存退出 ===

ZZ - 如果修改过,保存当前文件,然后退出。
:x - 同:ZZ
:wq - 不管有没有修改过,保存并退出。
:q! - 退出不保存
:e! - 命令放弃所有修改并重新载入该文件的原始内容

[设置]
:set backup 文件退出时生成备份文件


=== Visual模式 ===

v - 进入可视模式,移动光标以覆盖想操纵的文本范围,同时被选中的文本会以高亮显示,最后键入操作符命令。
V - 进入可视模式,且被选中的文本是一整行一整行为单位,命令左右移动命令毫无意义,而上下位移命令则会整行整行地选择文本。
<Ctrl>-V - 进入可视模式,且以一个矩形的文本块为对象进行操作。
o - 让光标置于被选中文本的另一头,这样就可以通过控制光标移动来决定被选文本将从何处开始,再按“o”又会让光标置于被选文本的末端。
O - 当进行矩形文本块内容的选择时,有4个角都可以改变。“o”只会把光标带到对角的位置去,使用“O”命令可以让光标在同一行的左右两个角之间移动。


=== 帮助 ===

:h[elp] {subject} - 查看(关于某个特殊主题的)帮助

:help index - 命令索引
:help tips - Vim技巧
:help option-list - 选项总览
:help functions - 内建函数总览
:help vim-variable - 变量列表
:help help-tags - 帮助项目的完整列表

:help CTRL-A - 如果要得到关于某个控制字符的帮助(比如,CTRL-A),需要用前辍“CTRL-”来代表控制键。
:help CTRL-H - Vim编辑器有很多模式,默认情况下帮助系统显示的是Normal模式下某个命令的帮助。比如,下面的命令显示Normal模式下CTRL-H命令的帮助。
:help i_CTRL-H - 要查找其它模式下的帮助,使用一个模式前辍。如果你想要看的是Insert模式下某个命令的帮助,使用“i”前辍。

 * 关于各种模式都要用哪些前辍可以在help-context中找到

<Ctrl>-] - 跳转到一个标签
<Ctrl>-T - 弹出标签,可以回到前一个位置。
<Ctrl>-O - 跳转到较早的位置。O意为older。

原创粉丝点击