简介

  • 正常模式:在文件中四处移动光标进行修改
  • 插入模式:插入文本
  • 替换模式:替换文本
  • 可视化模式(一般,行,块):选中文本块
  • 命令模式:用于执行命令

在默认设置下,Vim 会在左下角显示当前的模式。Vim 启动时的默认模式是正常模式。通常你会把大部分 时间花在正常模式和插入模式。

  • <ESC>:(退出键)从任何其他模式返回正常模式
  • i :进入插入模式
  • R :进入替换模式
  • v :进入可视(一般)模式
  • V 进入可视(行)模式
  • <C-v> (Ctrl-V, 有时也写作 ^V)进入可视(块)模式
  • : 进入命令模式

因为你会在使用 Vim 时大量使用 <ESC> 键,所以可以考虑把大小写锁定键重定义成 <ESC>

第一讲

  1. hjkl字母键

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

  2. 进入Vim编辑器

    1
    vim 文件名 <回车>
  3. 退出Vim编辑器

    • 放弃所有改动
    1
    <ESC> :q! <回车>
    • 保存改动
    1
    <ESC> :wq <回车>
  4. 在正常模式下删除光标所在位置的字符

    x

  5. 插入或添加文本

    • 在光标所在位置前插入文本
    1
    i 输入欲插入文本 <ESC>`g`
    • 在光标所在位置后添加文本
    1
    A 输入欲添加文本 <ESC>
  6. 按下 <ESC> 键会带您回到正常模式或者撤消一个不想输入或部分完整的命令。

第二讲

  1. 当前光标删除至下一个单词

    dw

  2. 当前光标删除至当前行末尾

    d$

  3. 删除整行

    dd

  4. 欲重复一个动作,在前面加上一个数字

    d2w

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

    1
    operator   [number]   motion

    其中:

    • operator - 操作符:代表要做的事情,比如 d 代表删除
    • [number] - 可以附加的数字:代表动作重复的次数
    • motion - 动作:代表在所操作的文本上的移动,例如 w 代表单词(word), $ 代表行末等等。
  6. 移动光标到行首

    0

    • 撤销以前的操作:u
    • 撤销在一行中所作的改动:U
    • 撤销以前的撤销命令,恢复以前的操作结果:ctrl + R

第三讲

  1. 将已删除的内容置于光标后

    p

    如果最后一次删除的是一个整行,那该行将置于当前光标所在行的下一行

  2. 替换光标所在位置的字符

    r

  3. 更改类命令:允许您改变从当前光标所在位置直到动作指示的位置中间的文本

    • 替换当前光标到单词的末尾的内容:ce
    • 替换当前光标到行末的内容:c$
  4. 更改类命令的格式:

    1
    c [number] motion

第四讲

    • 显示当前光标所在位置和文件状态信息

      ctrl + g

    • 将光标跳转至文件最后一行

      g

    • 将光标移动至该行号代表的行

      先敲入一个行号然后输入大写G

    • 将光标跳转至文件第一行

      gg

    • 正向查找字符串

      / + 字符串

    • 反向查找字符串

      ? + 字符串

    • 在同一方向上查找下一个匹配字符串

      完成一次查找后按 n 键

    • 向相反方向查找下一匹配字符串

      按大写 N

    • 跳转回较旧的位置

      ctrl + O

    • 跳转到较新位置

      ctrl + I

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

    • 在一行内替换头一个字符串 old 为新的字符串 new

      :s/old/new

    • 在一行内替换所有的字符串 old 为新的字符串 new

      :s/old/new/g

    • 在两行内替换所有的字符串 old 为新的字符串 new

      :#,#s/old/new/g

    • 在文件内替换所有的字符串 old 为新的字符串 new

      :%s/old/new/g

    • 进行全文替换时询问用户确认每个替换需添加 c 标志

      :%s/old/new/gc

第五讲

  1. :!command
    

    用于执行一个外部命令commmand

    example:

    • 显示当前目录的内容

      :!ls(Unix)

      :!dir(MS-DOS)

    • 删除名为FILENAME的文件

      :!rm FILENAME(Unix)

      :!del FILENAME(MS-DOS)

  2. 将当前VIM中正在编辑的文件保存到名为FILENAME的文件中

    :w FILENAME

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

    v motion :w FILENAME

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

    :r FILENAME

  5. 读取dir命令的输出并将其放置到当前文件的光表位置后面

    :r !dir

第六讲

    • 在光标下方打开新的一行进入插入模式

      o

    • 在光标上方打开新的一行进入插入模式

      O

    • 在光标所在位置之后插入文本

      a

    • 在光标所在行的行末之后插入文本

      A

  1. 使光标移动到单词末尾

    e

  2. 复制文本:y

    粘贴先前复制的文本:p

  3. 进入替换模式

    R,按<ESC>回到正常模式

  4. 输入 :set xxx 可以设置 xxx选项。一些有用的选项如下:

    • ic:’ignorecase’查找时忽略字母大小写
    • is :’incsearch’查找短语时显示部分匹配
    • hls :’hlsearch’高亮显示所有的匹配短语
  5. 在选项前加上 no 可以关闭选项: :set noic

第七讲

  1. 打开帮助窗口

    :help<F1>键<help>键

  2. 找到关于 cmd 命令的帮助

    输入:help cmd

  3. 在窗口之间跳转

    ctrl + W

  4. 关闭帮助窗口

    :q

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

  6. 当输入 : 命令时,按 CTRL-D 可以查看可能的补全结果。按 <TAB> 可以使用一个补全。

结语

vim 教程到此就结束了。本教程只是为了简明地介绍一下 Vim 编辑器,但已足以让您很容易使用这个编辑器了。毋庸质疑,vim还有很多很多的命令,本教程所介绍的距离完整的差得很远。所以您要精通的话,还望继续努力哦。下一步您可以阅读Vim 的用户手册,使用的命令是: :help user-manual

下面这本书值得推荐用于更进一步的阅读和学习:
Vim - Vi Improved - 作者:Steve Oualline
出版社:New Riders

这是第一本完全讲解 Vim 的书籍。它对于初学者特别有用。其中包含有大量实例和图示。

欲知详情,请访问 https://iccf-holland.org/click5.html