代码改变世界

vi/vim使用指北 ---- Moving Around in a Hurry

2014-09-05 00:37  JackieHan  阅读(300)  评论(0编辑  收藏  举报

上一篇文章中,简单列出了一些基本的Vim操作,也列出了很多的光标移动命令,本章主要是有哪些命令可以更快的移动光标。

vim的编辑操作,用得最多就是移动光标,对于很少行的文件来说,基本的命令就够用了,但是大部分情况是,每个文件都有成百上千行,基本的移动光标的命令就显得很笨拙了。故单独一章来讲述怎么更快速的移动光标,可参见下面的命令:

以屏幕为参考移动光标

CTRL-f ---- 光标向下移动一个屏幕

CTRL-b ---- 光标向上移动一个屏幕

CTRL-d ---- 光标向下移动半个屏幕

CTRL-u ---- 光标向上移动半个屏幕

设置光标相对 与屏幕的位置

z ENTER ---- 移动当前行到屏幕的顶部

z . ----- 移动当前行到屏幕的中间

z - ---- 移动当前行到屏幕的底部

重绘当前屏幕  CTRL-L  (使用场景不是很明白)

在屏幕内快速移动光标

H ---- 移动到当前屏幕的首行

M --- 移动到当前屏幕的中间

L ---- 移动到当前屏幕的底部

[number]-H ---- 移动到相对与首行,向下[number-1]行

[number]-L ---- 移动到相对于最后一行,向上[number-1]行

相对于行的移动

+/ENTER --- 移动下一行的开头,忽略空白/TAB

- ---- 移动到上一行的靠头,忽略空白/TAB

在当前行内移动

^  ---- 移动当前行的开头,忽略空白/Tab(0:移动到当前行的开头,但不忽略空白/TAB)

[number]-|(竖线) ---- 移动到当前行的[number]列

根据文本快移动

上一篇有列出部分(w,W,b,B),下面的命令也是文本移动命令

e ---- 移动到单词结尾

E ---- 移动到单词结尾,忽略标点符号

( / ) ---- 移动到句子块头/结尾 (匹配?  .  ! + 最少一个空格/该行的最后一个字符)

{ / } ---- 移动到段落的开头/结尾

[[ / ]] --- 移动到章节的开头/结尾

用搜索来移动光标

上一篇也讲到基本的搜索命令,下面补充一些特殊用法

删除/修改搜索结果

[d/c] [/ / ?] [pattern] ---- 删除或修改向前或向后搜索结果

在当前行搜索

f / F - character  ---- 在当前行向后/向前查找字符

t / T - character  ----- 在当前行向后/向前查找字符,并把光标设置在匹配字符前/后一个位置

; ----- 重复执行上次的查找

, ----  重复反向执行上次的查找