最新澳门金沙网站大全
  • |
    |
    51CTO旗下网站
    |
    |
    移动端

    好用到哭!8个技巧让Vim菜鸟变专家

    Vim只不过是一个文本编辑器,但如果你曾见过真正的高手是如何使用vim的,你就会知道,这个软件出人意料地强大、高效、迅捷。对于高水平使用者而言,vim能够帮助其更清晰、明确地表达操作指令。

    作者:读芯术来源:读芯术|2019-10-18 10:04

    Vim只不过是一个文本编辑器,但如果你曾见过真正的高手是如何使用vim的,你就会知道,这个软件出人意料地强大、高效、迅捷。对于高水平使用者而言,vim能够帮助其更清晰、明确地表达操作指令。一旦熟练掌握vim语言,使用者就能更加快速地和自己的电脑交流。

    必备条件

    在开始阅读本文之前,你应该至少知道vim有哪些简单的指令,例如基本动作、导入操作和查找信息。如果你还不了解这些知识,你可以打开软件终端并运行:

    1. sudo apt-get install vim 

    接着,你就可以运行以下指令来自学vim:

    1. vimtutor 

    1. 宏指令

    不得不重复进行的某些文本编辑任务会让人觉得很烦躁,做那些需要操作者重复几十次的任务就更糟糕了。宏指令能够有效地解除这些麻烦。你只需要敲击一个记录键,输入需要改变的指令,然后在指令结束时停止记录就可以了。之后,你就可以重复使用在这个记录里的动作了,而这只需你按下一个键。

    • 按下‘q’键让vim开始记录,然后按任意键,来告诉vim你想把保存的记录下次通过这个键来调出。本次案例中,这个键设置为‘a’,所以完整的指令就是‘qa’。
    • 执行你的命令。
    • 按下‘q’来结束记录。
    • 需要重复保存的系列动作时,输入‘@a’即可。

    2. 相对行号

    没人喜欢心算。即使你能心算得很快,算出23=23总要快于141-118=23。相对行号和绝对行号不同,它显示的是你光标所在行的相对数字。这个功能不仅便利了删除行的操作,也使跳到指定位置的过程变得更为简洁。你可以在.vimrc中加入以下指令来得到这个结果:

    1. set relativenumber 

    举例来讲,你可以通过输入下列vim指令来删除其后的25行:

    1. 25dd 

    3. 寄存器(Registers)

    寄存器是在复制文本后,临时储存要粘贴内容的空间。每台电脑都有很多寄存器。Vim会自动地使用一个寄存器来储存它的文本,这些文本和电脑里其他临时储存的复制文本不一样。向你的.vimrc中加入以下指令:

    1. set clipboard=unnamed 
    2. set clipboard=unnamedplus 

    加入这项指令后,在vim中复制粘贴文本就从“CTRL+V”, 和“CTRL+C”这一过程变为简单地输入‘p’。

    如果你想在不重写你的寄存器的情况下删除文本,你可以在指令前加上“_符号:“_dd 来删除一行。

    4. 重映射Escape操作

    Escape键和主键(home row)离得很远。因此,它并不是一个离开当前指令很好的选择。你可以在你的.vimrc中加入:

    1. cnoremap kj <C-C> 
    2. cnoremap jk <C-C> 

    这样,你就可以通过键入’jk’或者‘kj’来离开一个指令,同时,你的手一直呆在主键区。

    5. 动词+修饰词+宾语

    Vim有一套自己特殊的语法,这套语法遵循‘动词+修饰词+宾语’结构。

    动词举例:

    • ‘d’删除(delete)
    • ‘c’改变(change)

    修饰词举例:

    • ‘t’直到(till)
    • ‘f’找到(find)
    • ‘i’里(inside)

    宾语举例:

    • ‘w’词(word)
    • ‘(’插入语(parenthesis)
    • ‘t’标签(tag)
    • ‘s’句子(sentence)
    • ‘“’引用

    举个例子,‘diw’就是删除光标所在的词,无论光标是在词首还是词尾。‘dt)’删除光标所在位置和下括号之间的文本。‘cfp’能删除光标所在位置到该段落结束前的所有文本,之后自动载入插入模式。和‘.’(重复前序指令)一起使用,这套语法就非常强大。

    6. 处理空白格(White space fixing)

    软件工程中最让人受不了的情况,就是遇到tabs而不是空和空白格(white space)在一行的结尾。为了解决这个问题,你可以向.vimrc加入:

    set list

    这个指令会在每行结尾显示一个$符号,并且用^I代替tabs。你从而能更容易地识别出tabs和行尾。除此之外,下面的例子中,使用了空代替所有的tabs,这也让空白格更加便于处理:

    https://vim.fandom.com/wiki/Example_vimrc.

    7. 快速查找(navigate)

    你习得的有关vim的第一个操作,就是如何使用hjkl键来查找信息。但是,这其实是很慢的查找方式。这里列出了能帮助你快速查找的指令:

    • 敲击‘gg’来移动到文档的顶部,‘G’来移动到最底部。
    • 敲击CTRL+F来快速向前移动,CTRL+B来快速向后移动。
    • 敲击‘zz’来重新定位页的中心,这也你的光标就成为新的中心。
    • 遇到上括号像‘{’或者‘(’,你可以敲击‘%’来移动到它们所匹配的下括号。
    • ‘/’可以开始查找你想要的词。

    8. 日期(date)

    在许多场景下,你需要给文件加上日期。这一操作缓慢且乏味。这时,你可以向你的.vimrc中加入:

    1. nmap <F3> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc> 
    2. imap <F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR> 

    从而可以只通过键入F3来给文档加日期和时间。

    【编辑推荐】

    1. 如何在Windows 10中更改Chrome或Firefox浏览器的用户界面语言
    【责任编辑:赵宁宁 TEL:(010)68476606】

    点赞 0
    分享:
    大家都在看
    猜你喜欢

    订阅专栏+更多

    CentOS 8 全新学习术

    CentOS 8 全新学习术

    CentOS 8 正式发布
    共16章 | UbuntuServer

    248人订阅学习

    用Python玩转excel

    用Python玩转excel

    让重复操作傻瓜化
    共3章 | DE8UG

    222人订阅学习

    AI入门级算法

    AI入门级算法

    算法常识
    共22章 | 周萝卜123

    190人订阅学习

    视频课程+更多

    Web安全原理与防御

    Web安全原理与防御

    讲师:Web安全探究者60920人学习过

    Docker容器技术从入门到实战

    Docker容器技术从入门到实战

    讲师:高俊峰15295人学习过

    VMware vSphere  VCP 6.5 | 6.7 (附加Horizon 7.6)

    VMware vSphere VCP 6.5 | 6.7 (附加Horizon

    讲师:郝旺254230人学习过

    读 书 +更多

    Groovy入门经典

    本书详细介绍脚本语言Groovy,首先介绍Groovy语言的基本特性,包括讨论Groovy方法、程序闭包、列表、映射以及对类和继承的支持,然后介绍如...

    订阅51CTO邮刊

    点击这里查看样刊

    订阅51CTO邮刊

    51CTO服务号

    51CTO官微

    2019最新娱乐平台 最新澳门金沙网站大全
  • 金沙官网下载app 澳门金沙网上赌城 澳门棋牌午夜在线网站 澳门新金沙网址 网上正规的赌钱平台 金沙官网彩金免费送