(一) Vim使用心得一

来源:互联网 发布:海关数据是什么 编辑:程序博客网 时间:2024/06/05 20:06

    把学习Vim作为提升自己的一种途径,深入了解Vim的核心功能,才能用好这一强大的文本编辑器。现在就开始浅谈自己学习《Vim实用技巧》的心得吧,有误的地方还希望各位指点一二。

    在我们编写程序的过程中,考虑的不仅仅有如何优化算法,而且还要用最少的操作实现最优的代码。显然,Vim帮助我们做到了这一点,它会以简化复杂性操作的方式,记录我们最近的操作,用几次按键就可以重复上次的操作。

    技巧一:那就是好好利用 " . "命令。我们都知道Vim中的 " . " 只是简单的"重复上次修改"的命令。但是实际上,这重复修改的命令的好处体现在何处呢?

    进入linux命令行模式后,我们首先进入的是普通模式进行操作。(下面是一段初始文本)

   

   " x " 命令可以删除光标所在的一个字符。(此处已经少了一个"o")

   

    " . " 命令则可以帮助我们重复上次修改。(此处少了"n")

    

   ".." 则继续重复上次的修改。

     

    既然 "."可以进行修改很多东西,但是它也能使用 "u"来撤销之前的修改操作,还原到初始状态。


     接下来,如果想删除从光标开头到结束的整行文本,就在普通模式下直接用 "dd"。

    

     类似的,也可以用" j ."来删除第二行的整行的文本。


     接下来使用的是">G"命令增加从当前行到文本末尾的缩进层次。

    

     然后就是用好 "j ."命令,直接达到每行都能缩进。

    

    上述的这几个命令都是在普通模式下进行的,对于使用撤销命令 "u",我们可以自己控制撤销的力度。在进入插入模式开始,到返回普通模式为止,在此期间输入或删除的任何内容都是一次修改,我们要控制好<ESC>的使用,就可以把撤销命令用于单词、句子或段落。


     对于在行尾添加内容这种常见的操作,我们要使用提高效率的方式来完成修改动作。

     $a;<ESC>命令,$完成移动,a命令在光标后添加内容;,<ESC>命令回到普通模式。

   

    而为了减少不必要的移动可以使用A;<ESC>命令在行尾添加内容,A命令相当于"$a"命令。


    虽然A命令大大地提高了"."命令的效率,但是短板就是如何在50行,100行甚至更多行行尾添加内容呢?

    那就得用到Ex命令(LINUX 命令,用于与屏幕显示交互地编辑行)中":normal" 对整个范围内的所有行执行 "." 命令.

   

    先使用"jVG"命令,则覆盖后面所有文本,再使用":'<,'>normal . "命令回车,不管后面的文本是50行还是100行都能很高效的完成。

    ":%normal A;" 命令,%命令可以代表整个文件范围,因此,在整个文本编辑中,本命令会告诉编辑器在每行的结尾都添加一个分号。先进入插入模式,执行完成便会退回普通模式。

    ":%normal i // " 命令可以执行任意的普通模式命令,此命令可以注释整个文本文件。

   

    在查找和手动替换过程中,我们可以调出查找 "file",利用"copy"来替换。

    过程: " * "->" cwcopy<ESC>"->"n"->"."

    先把光标移动到file上,cw删除file单词,然后copy是输入单词,退回普通模式,利用n命令来匹配下一个file所在的位置。"."命令会删除file单词,并修改成copy。

   

    上述条件也可使用(:%s/file/copy/g )命令用来完成所有的修改,替换所有的地方。前提是一定要按照自己的需要进行修改。使用n寻找下一个匹配项,如果的确需要修改,则使用"."命令进行修改操作,反之可以舍弃。   

    






0 0
原创粉丝点击