一篇文章学会Vim

声明:以下内容均为我个人的理解,如果发现错误或者疑问可以联系我共同探讨

简介#

Vim 是一个高度可定制的终端文本编辑器,它可以很方便的创建和修改任何类型的文本。作为 vi 的升级版,有许多新的特性 (以下列出的特性为比较常用的,详细特性可以查看 help vi_diff.):

  • 无限撤销:可以无限制的撤销
  • 可移植性:Vi 仅在 Unix 上可用,Vim 还可以在 Windows、Macintosh,Amiga,OS / 2,VMS,QNX 和其他系统上运行。
  • 语法高亮:当用 Vim 进行编程的时候,他可以根据正在编辑的文件类型,使其以内容以不同的颜色或样式突出显示。Vim 捆绑了数百种语法突出显示规则集。
  • 图形用户界面:Vim 在控制台上运行良好,也可以在许多 GUI 中本地运行,包括 Mac OS 和 Windows。它还可以操作剪贴板。
  • vi 兼容模式:紧要关头,您可以强制 Vim 像 vi 一样。使 Vim 与 vi 不兼容的所有改进和错误修复都已关闭,您将获得 100%与 vi 兼容的编辑器。

Vim 作为许多程序员最喜欢的文本编辑器之一,它具有像:多级撤销、代码补全、支持数百种编程语言和文本格式、强大的搜索和替换功能等。

安装与卸载#

安装#

Windows#

先把安装包下载下来,然后根据提示安装。

Unix#

Github 上下载源文件安装

Mac#

github 下载,根据文件类型安装。

详细安装教程#

卸载#

Unix or Mac#

源代码安装#

在控制台输入

 make uninstall
软件包管理器安装#

根据不同软件包管理器的卸载命令卸载

Windows#

找到安装目录下的 “uninstall-gui” 程序进行卸载

教程#

vimtutor#

Vim 自带教程 vimtutor 是你从零开始学习 Vim 最好的老师,教程包含了日常所需要的各个命令和功能,还有实操教学。如果你的系统语言是中文,那么打开 vimtutor 时默认是中文版的教程,中文版教程由梁昌泰 先生进行译制。在命令行中输入 vimtutor,就可以打开该教程,学习完该教程大约需要 30 分钟左右。

有一款游戏 Vim Adventure,可以作为学习 Vim 的一种放松。

Vimtutor 章节小结#

第一讲#
  1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。

    ​ h (左移) j (下行) k (上行) l (右移)

  2. 欲进入 Vim 编辑器 (从命令行提示符),请输入:vim 文件名 < 回车 >

  3. 欲退出 Vim 编辑器,请输入 :q! <回车> 放弃所有改动。或者输入 :wq < 回车 > 保存改动。

  4. 在正常模式下删除光标所在位置的字符,请按: x

  5. 欲插入或添加文本,请输入:

    ​ i 输入欲插入文本 在光标前插入文本

    ​ A 输入欲添加文本 在一行后添加文本

特别提示:按下 键会带您回到正常模式或者撤消一个不想输入或部分完整的命令。

第二讲#
  1. 欲从当前光标删除至下一个单词,请输入:dw

  2. 欲从当前光标删除至当前行末尾,请输入:d$

  3. 欲删除整行,请输入:dd

  4. 欲重复一个动作,请在它前面加上一个数字:2w

  5. 在正常模式下修改命令的格式是:

     operator  [number]  motion

    其中:

    ​ operator - 操作符,代表要做的事情,比如 d 代表删除

    ​ [number] - 可以附加的数字,代表动作重复的次数

    ​ motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词 (word),$ 代表行末等等。

  6. 欲移动光标到行首,请按数字 0 键:0

  7. 欲撤消以前的操作,请输入:u (小写的 u),欲撤消在一行中所做的改动,请输入:U (大写的 U),欲撤消以前的撤消命令,恢复以前的操作结果,请输入:CTRL-R

第三讲#
  1. 要重新置入已经删除的文本内容,请按小写字母 p 键。该操作可以将已删除的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置于当前光标所在行的下一行。

  2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字符即可。

  3. 更改类命令允许您改变从当前光标所在位置直到动作指示的位置中间的文本。比如输入 ce 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当前光标到行末的内容。

  4. 更改类命令的格式是:

    c [number] motion

第四讲#
  1. CTRL-G 用于显示当前光标所在位置和文件状态信息。 G 用于将光标跳转至文件最后一行。先敲入一个行号然后输入大写 G 则是将光标移动至该行号代表的行。gg 用于将光标跳转至文件第一行。

  2. 输入 / 然后紧随一个字符串是在当前所编辑的文档中正向查找该字符串。输入?然后紧随一个字符串则是在当前所编辑的文档中反向查找该字符串。完成一次查找之后按 n 键是重复上一次的命令,可在同一方向上查找下一个匹配字符串所在;或者按大写 N 向相反方向查找下一匹配字符串所在。CTRL-O 带您跳转回较旧的位置,CTRL-I 则带您到较新的位置。

  3. 如果光标当前位置是括号 (、)、[、]、{、},按 % 会将光标移动到配对的括号上。

  4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :confounded:/old/new

    在一行内替换所有的字符串 old 为新的字符串 new,请输入 :confounded:/old/new/g

    在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g

    在文件内替换所有的字符串 old 为新的字符串 new,请输入 :% s/old/new/g

    进行全文替换时询问用户确认每个替换需添加 c 标志 :% s/old/new/gc

第五讲#
  1. :!command 用于执行一个外部命令 command。

    请看一些实际例子:

    (MS-DOS)     (Unix)
    
    :!dir      :!ls      # 用于显示当前目录的内容。
    
    :!del FILENAME  :!rm FILENAME  # 用于删除名为 FILENAME 的文件。
  2. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中。

  3. v motion :w FILENAME 可将当前编辑文件中可视模式下选中的内容保存到文件 FILENAME 中。

  4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面。

  5. :r !dir 可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面。

第六讲#
  1. 输入小写的 o 可以在光标下方打开新的一行并进入插入模式。输入大写的 O 可以在光标上方打开新的一行。

  2. 输入小写的 a 可以在光标所在位置之后插入文本。输入大写的 A 可以在光标所在行的行末之后插入文本。

  3. e 命令可以使光标移动到单词末尾。

  4. 操作符 y 复制文本,p 粘贴先前复制的文本。

  5. 输入大写的 R 将进入替换模式,直至按 键回到正常模式。

  6. 输入 :confounded:et xxx 可以设置 xxx 选项。一些有用的选项如下:

    ‘ic’ ‘ignorecase’ 查找时忽略字母大小写

    ‘is’ ‘incsearch’ 查找短语时显示部分匹配

    ‘hls’ ‘hlsearch’ 高亮显示所有的匹配短语

    选项名可以用完整版本,也可以用缩略版本。

  7. 在选项前加上 no 可以关闭选项: :confounded:et noic

第七讲#
  1. 输入 :help 或者按 键或 键可以打开帮助窗口。

  2. 输入 :help cmd 可以找到关于 cmd 命令的帮助。

  3. 输入 CTRL-W CTRL-W 可以使您在窗口之间跳转。

  4. 输入 :q 以关闭帮助窗口

  5. 您可以创建一个 vimrc 启动脚本文件用来保存您偏好的设置。

  6. 当输入:命令时,按 CTRL-D 可以查看可能的补全结果。

    按 可以使用一个补全。

帮助#

在控制台中输入 vim 就可以查看 Vim 的相关信息

根据图片所示我们可以知道,当前 VIM 的版本为 8.0.1365,想退出需要输入”:q”,查看在线帮助文档可以输入”:help”,查看版本信息可以输入”:help version8”

在英文模式下输入”:help” 回车后便可以看到

在这里有详细的 Vim 教程,教你玩转 Vim。

本作品采用《CC 协议》,转载必须注明作者和本文链接