您的位置:首页 > 编程语言 > Java开发

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字符.

                 找到后:

                 输入 ; 表示继续往下找

           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息