VIM常用命令
2012-09-11 10:53
337 查看
VIM常用命令
1,gg快速定位到文件头2,G快速定位到文件尾
3,ma 当前行创建一个名字为a的bookmark,你也可以mb,mc
4,`a 快速跳转到名字为a的那一行
5,`. 快速跳转到你最后编辑的行
6,gd 快速跳转到当前光标所在变量或者函数名的定义处
7,:g/^$/d 删除空行
8, :g/^\s*$/d 删除有空格的空行
% 当你写程序的时候,你经常会遇到嵌套的 () 结构。这时,"%" 是一个非常方便的命令: 它能匹配一对括号。如果光标在 "("上,它移动到对应的 ")" 上,反之,如果它在 ")" 上,它移动到 "(" 上。当光标不在一个有用的字符上,"%"会先正向查找找到一个。比如当光标停留在上例中的 行首时,"%" 会正向查找到第一个 "("。再按一次会移动到它的匹配处。同样适用于[] {}
0,编辑&修改
cw 删除单词同时转到insert模式.一般先(b移动到头),
cNw 删除N个单词同时进入insert模式
c$=C 相当于d$,然后a命令
"." 命令重复任何除 "u" (撤销),
CTRL-R(重做) 和冒号命令外的修改。再举一个例子:你想把 "four" 修改成 "five"。有好几个地方都要作这种修改。你可以用如下命令快速完成这个操作:
1, /four
<Enter>找到第一个"four"
2, cwfive
<Esc>修改成"five"
3, n 找下一个 "four"
4, . 重复修改操作
n 找下一个 "four" . 重复修改 如此类推......
xp 交换两个字符,(光标和光标后的字符):"x" 删除一个字 符,保存到寄存器。"p"把这个被保存的字 符插入到光标的后面
文本对象
如果你在一个单词的中间而又想删掉这个单词,在你用 "dw"前,你必须先移到这个单词 的开始处。这里还有一个更简单的方法:"daw"。"d" 是删除操作符。"aw"是一个文本对象。提示:"aw" 表示 "A Word" (一个 单词),这样,"daw" 就是 "Delete A Word"(删除一个单词)。确切地说,该单词后的空 格字符也被删除掉了。 (同理 yaw 可以copy光标所在的单词,而不用移动光标到这个单词首了:))
使用文本对象是 Vim中执行修改的第三种方法。我们已经有 "操作符-动作" 和可视模 式两种方法了。现在我们又有了 "操作符-文本对象"。 这种方法与"操作符-动作" 很相似,但它不是操作于从当前位置到移动目标间的内 容,而是对光标所在位置的 "文本对象"进行操作。文本对象是作为一个整体来处理的。 现在光标在对象中的位置无关紧要。
操作符,移动命令和文本对象可以有各种组合。现在你已经知道它是怎么工作了,你可以 用 N 个操作符加上 M 个移动命令,组合出 N*M个命令! 你可以在这里找到一个操作符的列表:|operator|还有很多方法可以删除文本。 http://vcd.gro.clinux.org/doc/motion.html#operator
这是一些经常用到的:
x 删除光标下的字符 ("dl" 的缩写)
X 删除光标前的字符 ("dh" 的缩写)
D 从当前位置删除到行尾 ("d$" 的缩写)
dw 从当前位置删除到下一个单词开头
db 从当前位置删除到前一个单词的开头
diw 删除光标上的单词 (不包括空白字符)
daw 删除光标上的单词 (包括空白字符)
dG 删除到文件末
dgg 删除到文件首
如果你用 "c" 代替 "d",这会变成修改命令;而改用 "y",则变成拷贝命令,
等等等 等。 还有一些常用的进行修改的命令,放在哪一章都不合适,列在这里:
~修改光标下字符的大小写,并移动到下一个字符。这不是一个操作符 (除非设置了 'tildeop'),
所以你不能连接一个动作命令。这个命令在可视模式下也有效,它会改变被选中的所有文本的大小写。
I 移到当前行的第一个非空字符并启动插入模式。
A 移动到行尾并启动插入模式。
1. 查找
/xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示
向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.
一般来说是区分大小写的, 要想不区分大小写, 那得先输入
:set ignorecase
查找到以后, 再输入 n 查找下一个匹配处, 输入 N 反方向查找.
? 命令功能与 "/" 的功能类似,但进行反方向查找:
?word"N"
*(#) 当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的
下(上)一个单词. 同样, 再输入 n 查找下一个匹配处, 输入 N 反方
向查找.
g*(g#) 此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而
是匹配包含该单词的所有字符串.
gd 本命令查找与光标所在单词相匹配的单词,并将光标停留在文档的非
注释段中第一次出现这个单词的地方.
% 本命令查找与光标所在处相匹配的反括号, 包括 () [] {}
f(F)x 本命令表示在光标所在行进行查找, 查找光标右(左)方第一个x字符.
找到后:
输入 ; 表示继续往下找