美文网首页程序员
vim 快速入门

vim 快速入门

作者: 海涛公子 | 来源:发表于2018-10-24 07:16 被阅读0次

vim 号称编辑器之神,与 Emacs, 其他编辑器三分天下。很多人都经历了『从入门到放弃』的痛苦过程。我在大二的时候首次接触 vim,先后放弃了三次,最终掌握了 vim 的使用技巧。算下来,我也是有超过 5 年经验的 vim 老人了。使用 vim 极大地提升了我工作效率,我也在研究 vim 的过程中获得了很多的乐趣。我希望 vim 能够帮助到更多的朋友,我也希望有更多的朋友能够体会到我的乐趣。

大家最早接触的电脑基本都是 Windows 系统,有文本框、有鼠标、有键盘,甚至还有软键盘。大家一开始就知道在文本框输入文本,用鼠标选中文本等操作。于是,大家习惯成自然。当大家打开 vim 的时候,发现无法选中、无法使用鼠标,甚至无法退出,大家就认为 vim 的作者脑子有毛病,然后『弃之如敝屐』。

vim 的作者在设计 vim 的时候选择了一条少有人走的路。这导致 vim 的使用方式不符合大家的直觉,所以大家觉得 vim 难用。本文就为大家说说这条少有人走的路

vim 模式

vim 一打开,就会进入所谓的普通模式(Normal)。在这个模式下,大家输入的所有内容都会被 vim 解析成相应的指令并执行。如果要输入内容,必须键入字母i来命令 vim 切换到所谓的插入模式(Insert)。在插入模式下,大家就可以像在其他普通编辑器下那样输入文字了。输入完毕,需要通过按Esc返回普通模式。那这个普通模式到底有什么用呢?在普通模式下,大家可以快速地查找、定位、修改和删除代码。在插入模式下,相应的操作会低效不少。作为程序员都有体会,大家大部分时间是在查代码、看代码、改代码,写代码的比重并不大。为了提升整体的工作效率,vim 将普通模式作为默认模式。代价则是大家需要在输入文本的时候需要额外切换一次模式。

vim 还有一个可视模式(Visual),『可视』是直译,翻译成『选中』比较合适。可视模式跟普通编辑器的选中有点像,都会选中一片文字,然后可以对选中的文字做一些操作。但 vim 的可视模式分三种,分别是:普通选中、按行选中和按列选中。使用v开始普通选中,使用V开始行选中,使用ctrl+v开始列选中。选中之后可以执行其他操作,返回普通模式直接按Esc。

移动光标

vim 使用 hjkl 四个键来控制光标向左下上右四个方向移动,一次移动一行或者一列。至于为什么要先这个四个键,大家可以参考这里。你的右手不用离开原位键就能按到 hjkl 这四个键。稍加练习就能灵活地控制光标。

vim 还针对行内移动提供了一些快捷键,加快移动速度。如^表示行首、$表示移到到行尾。用过正则的朋友应该熟悉这两个字母。vim 还支持按单词移动,如w表示跳到下一个单词的开头,e表示跳到下一个单词的结尾。这些命令很有用,但初学 vim 不用记那么多,知道有些功能就够了。

vim 行内移动的大杀器则是行内查找。大家可以通过键入f;跳转到当前行的下一个;上。这个f表示向前(行尾)查找;如果要向后查找,则需使用F。注意,行内查找仅支持单个字母。

向上翻页用ctrl+b,向下用ctrl+f。跳到文件的第一行用gg,最后一行用G。

vim 还有很多移动快捷键,相对不那么常用,这里不多介绍,初学者不用纠结。

如果只看 hjkl,大家不觉得 vim 在光标移动上有什么优势,甚至会认为还不如使用上下左右键方便。但再看行内查找,大家应该就会体会到普通模式(Normal)的威力。普通模式并不普通!

查找替换

向下(文章末尾)查找使用/,例如/vim会跳转到下一个 vim 所在的位置。向下查找使用?。还有一个常用的功能就是查找光标所在的单词,向下查找用*, 向上用#。普通编辑器的查找下一个功能 vim 也是支持的,快捷键为n。

替换相对麻烦一点,需要使用所谓的命令模式(Command)。只替换当前行:s/vi/vim/。这里的:让 vim 切换到命令模式,s表示替换,/vi/vim/表示将 vi 替换为 vim。最后输入回国执行命令。命令模式在执行完成之后会自动切换回普通模式。

vim 默认只会替换查找到的第一个 vi。如果要替换行内所有的 vim,则需要输入:s/vi/vim/g,注意最后的g。如果要全文替换,可以输入:%s/vi/vim/g。大家可以通过:h :s查看更多高级用法。

删除修改

初学者一般会先切换到插入模式,在用退格键删除已有内容,再输新内容。这不但效率低下,不会挫伤初学者的积极性。正解如下。

删除当前行用dd。删除光标所在的字母用x,修改用r+新字母。也可以选中之后按x或者d删除整片文字。大家选中之后还可以按c,vim 会删除选中内容,并切换到插入模式,大家可以继续输入新内容。

vim 还有一个所谓的替换模式(Replace),通过R开启,开启后光标所在的内容会被新输入的内容替换。结束用Esc。

复制粘贴

复制当前行用yy。也可以选中内容后按y复制。

粘贴使用p。如果之前是整行复制,按p会将复制的内容粘贴到当前行的下一行,粘贴到上一行用P;如果之前是选中复制,按p会将复制内容粘贴到光标当前位置的后面,粘贴到前面用P。

撤销重做

撤销上次操作用u,反撤销用ctrl+r。

保存退出

保存退出都要在命令模式下完成。保存用 :w path.txt,退出用 :q。如果是编辑已经存在的文件可以直接用 :wq 退出。

vim 范式

改动+重复可以使用.。如:先是cawhello Esc将当前单词那成 hello,按w跳到下一个单词,再按.就会重复上次的改动将单词改成 hello。

数字+操作可以重复执行多次相同的操作。如:j表示向下移动一行,10j表示向下移动 10 行。 p表示粘贴一次,10p表示粘贴 10 次。

动作+范围可以显著提升效率。如:y$会复制从光标当前位置到行尾的所有内容;df;会删除光标所在位置到行内下一个分号间的所有内容。

结语

本文给初学者介绍了 vim 的设计宗旨和基本使用方法。按照文中所述稍加练习就会快速入门。大家在熟练掌握本文内容以后,可以进一步学习《Vim 实用技巧》这本书。大家有问题也可以给我留言。

相关文章

  • VIM 快速入门

    默认情况下的操作均为普通模式,命令前带有 : 表示该操作在命令行模式下进行 进入命令行模式 在普通模式下输入 : ...

  • vim 快速入门

    vim 号称编辑器之神,与 Emacs,其他编辑器三分天下。很多人都经历了『从入门到放弃』的痛苦过程。我在大二的时...

  • Vim 快速入门

    本文大约 5000 字, 阅读大约需要 10 分钟 在 Linux 下最常使用的文本编辑器就是 vi 或者 vi...

  • Vim快速入门

    原文地址:http://ghui.me/post/2013/08/vim/ Vim由unix系统中的vi编辑器扩充...

  • Vim快速入门

    三 进入vim 1.使用vim命令进入vim界面 vim后面加上你要打开的已存在的文件名或者不存在(则作为新建文件...

  • vim快速入门

    常用模式: 普通模式(Normal mode) 插入模式(Insert mode) 命令行模式(Command l...

  • vim快速入门

    在看的时候你一定要用vim操作一遍,下面我提供了一小段代码你可以复制到一个文本中用git bash操作下 代码很简...

  • Vim 快速入门

    Vim 是编辑器之神,今天将学到的基本命令整理一下,方便使用。一.学习使用Vim之前要了解几个原则:1>键盘映射基...

  • Vim的6种基本模式及基本操作

    说明:文章所有内容截选自实验楼教程【Vim编辑器】~ Vim 快速入门 一、实验介绍 1.1 实验内容 本次实验将...

  • Vim_大法

    Vim 快速入门... 以前大概的学了点,但基本没用,现在又要用上了,So,快速的复习下..简单的分类,适合后续...

网友评论

    本文标题:vim 快速入门

    本文链接:https://www.haomeiwen.com/subject/fjtttqtx.html