Vim学习:移动

 

移动
一、以Word为单位移动光标
(一)以普通word为单位移动
1.将光标向前移动一个word并停留在下一个word的首字符上:w。注意:无论光标在当前word的任何字符上,执行命令后光标将停留在下一个word的首字符上。助记:word。
2.将光标向后移动一个word并停留在下一个word的首字符上:b。注意:如果执行此命令之前光标未停留在当前word的首字符上,则执行命令后光标将停留在此word的首字符上,而不是直接跳转到下一个word的首字符上;即只有光标停留在当前word的首字符上时,执行命令后光标才能直接跳转到下一个word的首字符上。助记:backward。
3.将光标向前移动一个word并停留在下一个word的末字符上:e。注意:如果执行此命令之前光标未停留在当前word的末字符上,则执行命令后光标将停留在此word的末字符上,而不是直接跳转到下一个word的末字符上;即只有光标停留在当前word的末字符上时,执行命令后光标才能直接跳转到下一个word的末字符。助记:end of word。
4.将光标向后移动一个word并停留在下一个word的末字符上:ge。注意:无论光标在当前word的任何字符上,执行命令后光标将停留在下一个word的末字符上。
(二)以以空白为单位的WORD为单位移动
1.什么是WORD
在vim中,word的边界不是一成不变的,可以自定义。有一些被认为non-word的特殊字符,比如“.”、“,”或者“)”也可充当word边界。自定义word边界,请查看“iskeyword”选项。其中以空白为分界的word成为WORD。
2.命令
以WORD为单位移动的命令是与以word为单位移动的命令的相应字母的大写形式,即W,B,E,gE,命令执行时活动特征也是相同的。
(三)数字+命令
以上命令都可以采取“数字+命令”的方式执行。
二、移动光标到行收或者行尾
1.将光标移动到当前行行尾:$。此命令与键盘上<End>键作用相同。
2.将光标移动到当前行的第一个非空白字符上:^。
3.将光标移动到当前行的第一个字符上:0。此命令与键盘上<Home>键作用相同。
4.$命令接受计数器,其他两个不接受计数器。
三、移动光标到指定字符上
使用单字符搜索命令可以快速将光标移到当前行的某个字符上。
1.在当前行向右查找某个字符并将光标停留其上:f。助记:find。
2.在当前行向左查找某个字符并将光标停留其上:F。
3.在当前行向右查找某个字符并将光标停留于其前一个字符之上:t。助记:to。
4.在当前行向左查找某个字符并将光标停留于其前一个字符之上:T。
5.这四个命令都可使用计数器。
6.这四个命令都可以用“;”和“,”重复执行,不同之处在于,“;”以与原命令相同的方向执行,“,”恰好相反。
四、移动光标到匹配括号上
将光标跳转到与当前光标下的括号相匹配的括号上去:%。再一次执行此命令,光标将跳转到原括号上。如果当前光标并不处于某个括号上,执行此命令时,光标将自动向前寻找第一个括号跳转到与它匹配的另一个括号。适用于此命令的括号由“matchpairs”选项定义。
五、移动光标到指定行上
1.将光标移动到文档的最后一行:G。
2.将光标移动到文档的第一行:gg。
3.将光标移动到文档的指定行:行数+G。
4.使用百分比将光标移动到文档某个大致的位置:数字+%。此处百分比的计算是以行为单位,而不是以字节数为单位。
5.将光标移动到当前屏幕的某一行:移动到第一行使用命令H(home),移动到中间行使用命令M(middle),移动到最后一行使用命令L(last)。
六、获取当前位置信息
1.使用CTRL-G命令,可以显示当前位置信息。
2.设置number选项。:set number显示行号,:set nonumber关闭显示行号。
3.设置ruler选项。:set ruler会在右下角显示当前光标所在位置。
七、滚屏
1.使文本向下滚动半屏:CTRL-U。相当于显示文本的窗口向上滚半屏。光标所处的行数随滚屏而改变。
2.使文本向上滚动半屏:CTRL-D。相当于显示文本的窗口向下滚半屏。光标所处的行数随滚屏而改变。
3.使文本向上滚动一行:CTRL-E。光标所处的行数不变。
4.使文本向下滚动一行:CTRL-Y。光标所处的行数不变。
5.向前滚动一整屏:CTRL-F。滚动后光标处于第一行。
6.向后滚动一整屏:CTRL-B。滚动后光标处于最后一行。
7.把当前位置处于屏幕的正中央:zz。
8.把当前位置处于屏幕的顶端:zt。助记:top。
9.把当前位置处于屏幕的底端:zb。助记:bottom。
八、搜索
(一)搜索命令
1.顺序搜索字符串:/string。
2.逆向搜索字符串:?string。
3.以与原命令相同方向查找下一个字符串:n。
4.以与原命令相反方向查找下一个字符串:N。
5./命令与?命令接受计数器,n与N也接受计数器。
(二)搜索设置
1.忽略大小写。:set ignorecase设置忽略大小写;:set noignorecase设置大小写敏感。
2.高亮搜索结果。:set hlsearch开启高亮显示;:set nohlsearch关闭高亮显示;:nohlsearch临时关闭此次搜索高亮显示。
3.键入目标字符的同时开始搜索。:set incsearch开启这一功能。
4.在顺序搜索到达文件末尾或者逆向搜索到达文件开头时停止搜索。:set nowrapscan开启这一功能。默认wrapscan是开启的。
(三)搜索小技巧
1.使用命令历史记录。搜索命令会记住曾经搜索过的字符串,在键入搜索命令后可以使用上箭头翻看曾经搜索过的字符串,如果要再次搜索同一个字符串,就没有必要再次键入了,直接翻到原来的命令就可以了;或者键入目标字符串的头几个字母,再使用上箭头翻看历史,匹配将更快一些。
2.快捷搜索较长字符串。如果要搜索的字符串较长,可以将光标定位在这个字符串上,然后按下“*”,vim将会以此为目标字符串进行顺序搜索;另一个功能相同但进行逆向搜索的命令是“#”。这两个命令都接受计数器。
3.精确匹配字符串。命令/string\>将只在一个word的结束处匹配目标字符;命令/\<string则只在一个word的开始处匹配目标字符串;命令/\<string\>可以用来精确查找一个word。
(三)搜索模式
1.匹配一行的开头:/^string。此命令只会匹配在一行开头出现的目标字符。
2.匹配一行的末尾:/string$。此命令只会匹配在一行末尾出现的目标字符。
3.匹配到只包含目标字符的行:/^string$。
4.匹配任何单字符:.。比如c.m会匹配任何一个前一个字符是c后一个字符是m的字符串,而不管中间的字符是什么。
5.匹配特殊字符:如果目标字符串中含有像.、)、*等特殊字符,则需要在这些特殊字符前加一个\,即反斜杠。
九、使用标记
(一)自动标记
1.跳转到上次起跳的位置:``。执行此命令会跳转到上次起跳的位置,再次执行则会跳转到当前位置,因为此命令也是一个跳转命令。注意:对此命令而言,只要执行一个命令使光标定位到当前行外的某一行去,都叫跳转;像搜索类命令/和n都叫做跳转,但字符搜索类命令f和t等、以word为单位的移动光标命令w和e等、以及j、k命令都不叫跳转。
2.跳转到更早些光标停留的位置:CTRL-O。此命令不限于跳转到起跳位置,还可以跳转到更早的位置,且j、k之类命令形成的光标移动也可以回跳。
3.跳转到后来光标停留的更新的位置:CTRL-I。此命令与上一条命令行为特征相同。效果与按下Tab键效果相同。
4.列出曾经跳转过的位置列表。:jumps。最后一个跳转位置会被特别以一个“>”标记。
(二)具名标记
Vim允许编辑者在文本中定义自己的标记,自定义标记从a到z一共26个。
1.自定义标记:m{mark}。mark就是从a到z,在执行此命令时不需要大括号。标记并不在屏幕上显示,Vim在内部记录了它代表的位置。
2.精确跳转到定义标记的行和列:`mark。
3.跳转到定义标记的行首:'mark。
4.查看自定义标记列表。:marks。
5.mark列表中的特殊标记的意义:
(1)':进行此次跳转之前的起跳点。
(2)":上次编辑该文件时光标最后停留的位置。
(3)[:最后一次修改的起始位置。
(4)]:最后一次修改的结束位置。

一、以Word为单位移动光标

(一)以普通word为单位移动

1.将光标向前移动一个word并停留在下一个word的首字符上:w。注意:无论光标在当前word的任何字符上,执行命令后光标将停留在下一个word的首字符上。助记:word。

2.将光标向后移动一个word并停留在下一个word的首字符上:b。注意:如果执行此命令之前光标未停留在当前word的首字符上,则执行命令后光标将停留在此word的首字符上,而不是直接跳转到下一个word的首字符上;即只有光标停留在当前word的首字符上时,执行命令后光标才能直接跳转到下一个word的首字符上。助记:backward。

3.将光标向前移动一个word并停留在下一个word的末字符上:e。注意:如果执行此命令之前光标未停留在当前word的末字符上,则执行命令后光标将停留在此word的末字符上,而不是直接跳转到下一个word的末字符上;即只有光标停留在当前word的末字符上时,执行命令后光标才能直接跳转到下一个word的末字符。助记:end of word。

4.将光标向后移动一个word并停留在下一个word的末字符上:ge。注意:无论光标在当前word的任何字符上,执行命令后光标将停留在下一个word的末字符上。

(二)以以空白为单位的WORD为单位移动

1.什么是WORD

在vim中,word的边界不是一成不变的,可以自定义。有一些被认为non-word的特殊字符,比如“.”、“,”或者“)”也可充当word边界。自定义word边界,请查看“iskeyword”选项。其中以空白为分界的word成为WORD。

2.命令

以WORD为单位移动的命令是与以word为单位移动的命令的相应字母的大写形式,即W,B,E,gE,命令执行时活动特征也是相同的。

(三)数字+命令

以上命令都可以采取“数字+命令”的方式执行。


二、移动光标到行收或者行尾

1.将光标移动到当前行行尾:$。此命令与键盘上<End>键作用相同。

2.将光标移动到当前行的第一个非空白字符上:^。

3.将光标移动到当前行的第一个字符上:0。此命令与键盘上<Home>键作用相同。

4.$命令接受计数器,其他两个不接受计数器。


三、移动光标到指定字符上

使用单字符搜索命令可以快速将光标移到当前行的某个字符上。

1.在当前行向右查找某个字符并将光标停留其上:f。助记:find。

2.在当前行向左查找某个字符并将光标停留其上:F。

3.在当前行向右查找某个字符并将光标停留于其前一个字符之上:t。助记:to。

4.在当前行向左查找某个字符并将光标停留于其前一个字符之上:T。

5.这四个命令都可使用计数器。

6.这四个命令都可以用“;”和“,”重复执行,不同之处在于,“;”以与原命令相同的方向执行,“,”恰好相反。


四、移动光标到匹配括号上

将光标跳转到与当前光标下的括号相匹配的括号上去:%。再一次执行此命令,光标将跳转到原括号上。如果当前光标并不处于某个括号上,执行此命令时,光标将自动向前寻找第一个括号跳转到与它匹配的另一个括号。适用于此命令的括号由“matchpairs”选项定义。


五、移动光标到指定行上

1.将光标移动到文档的最后一行:G。

2.将光标移动到文档的第一行:gg。

3.将光标移动到文档的指定行:行数+G。

4.使用百分比将光标移动到文档某个大致的位置:数字+%。此处百分比的计算是以行为单位,而不是以字节数为单位。

5.将光标移动到当前屏幕的某一行:移动到第一行使用命令H(home),移动到中间行使用命令M(middle),移动到最后一行使用命令L(last)。


六、获取当前位置信息

1.使用CTRL-G命令,可以显示当前位置信息。

2.设置number选项。:set number显示行号,:set nonumber关闭显示行号。

3.设置ruler选项。:set ruler会在右下角显示当前光标所在位置。


七、滚屏

1.使文本向下滚动半屏:CTRL-U。相当于显示文本的窗口向上滚半屏。光标所处的行数随滚屏而改变。

2.使文本向上滚动半屏:CTRL-D。相当于显示文本的窗口向下滚半屏。光标所处的行数随滚屏而改变。

3.使文本向上滚动一行:CTRL-E。光标所处的行数不变。

4.使文本向下滚动一行:CTRL-Y。光标所处的行数不变。

5.向前滚动一整屏:CTRL-F。滚动后光标处于第一行。

6.向后滚动一整屏:CTRL-B。滚动后光标处于最后一行。

7.把当前位置处于屏幕的正中央:zz。

8.把当前位置处于屏幕的顶端:zt。助记:top。

9.把当前位置处于屏幕的底端:zb。助记:bottom。


八、搜索

(一)搜索命令

1.顺序搜索字符串:/string。

2.逆向搜索字符串:?string。

3.以与原命令相同方向查找下一个字符串:n。

4.以与原命令相反方向查找下一个字符串:N。

5./命令与?命令接受计数器,n与N也接受计数器。

(二)搜索设置

1.忽略大小写。:set ignorecase设置忽略大小写;:set noignorecase设置大小写敏感。

2.高亮搜索结果。:set hlsearch开启高亮显示;:set nohlsearch关闭高亮显示;:nohlsearch临时关闭此次搜索高亮显示。

3.键入目标字符的同时开始搜索。:set incsearch开启这一功能。

4.在顺序搜索到达文件末尾或者逆向搜索到达文件开头时停止搜索。:set nowrapscan开启这一功能。默认wrapscan是开启的。

(三)搜索小技巧

1.使用命令历史记录。搜索命令会记住曾经搜索过的字符串,在键入搜索命令后可以使用上箭头翻看曾经搜索过的字符串,如果要再次搜索同一个字符串,就没有必要再次键入了,直接翻到原来的命令就可以了;或者键入目标字符串的头几个字母,再使用上箭头翻看历史,匹配将更快一些。

2.快捷搜索较长字符串。如果要搜索的字符串较长,可以将光标定位在这个字符串上,然后按下“*”,vim将会以此为目标字符串进行顺序搜索;另一个功能相同但进行逆向搜索的命令是“#”。这两个命令都接受计数器。

3.精确匹配字符串。命令/string\>将只在一个word的结束处匹配目标字符;命令/\<string则只在一个word的开始处匹配目标字符串;命令/\<string\>可以用来精确查找一个word。

(四)搜索模式

1.匹配一行的开头:/^string。此命令只会匹配在一行开头出现的目标字符。

2.匹配一行的末尾:/string$。此命令只会匹配在一行末尾出现的目标字符。

3.匹配到只包含目标字符的行:/^string$。

4.匹配任何单字符:.。比如c.m会匹配任何一个前一个字符是c后一个字符是m的字符串,而不管中间的字符是什么。

5.匹配特殊字符:如果目标字符串中含有像.、)、*等特殊字符,则需要在这些特殊字符前加一个\,即反斜杠。


九、使用标记

(一)自动标记

1.跳转到上次起跳的位置:``。执行此命令会跳转到上次起跳的位置,再次执行则会跳转到当前位置,因为此命令也是一个跳转命令。注意:对此命令而言,只要执行一个命令使光标定位到当前行外的某一行去,都叫跳转;像搜索类命令/和n都叫做跳转,但字符搜索类命令f和t等、以word为单位的移动光标命令w和e等、以及j、k命令都不叫跳转。

2.跳转到更早些光标停留的位置:CTRL-O。此命令不限于跳转到起跳位置,还可以跳转到更早的位置,且j、k之类命令形成的光标移动也可以回跳。

3.跳转到后来光标停留的更新的位置:CTRL-I。此命令与上一条命令行为特征相同。效果与按下Tab键效果相同。

4.列出曾经跳转过的位置列表。:jumps。最后一个跳转位置会被特别以一个“>”标记。

(二)具名标记

Vim允许编辑者在文本中定义自己的标记,自定义标记从a到z一共26个。

1.自定义标记:m{mark}。mark就是从a到z,在执行此命令时不需要大括号。标记并不在屏幕上显示,Vim在内部记录了它代表的位置。

2.精确跳转到定义标记的行和列:`mark。

3.跳转到定义标记的行首:'mark。

4.查看自定义标记列表。:marks。

5.mark列表中的特殊标记的意义:

(1)':进行此次跳转之前的起跳点。

(2)":上次编辑该文件时光标最后停留的位置。

(3)[:最后一次修改的起始位置。

(4)]:最后一次修改的结束位置。

posted on 2010-07-03 14:31  kledgemigrt  阅读(1811)  评论(0编辑  收藏  举报

导航