四种模式

一般模式,插入模式,命令行模式,可视模式。

  • 一般模式下:

    • 插入、替换:
      • i:在光标所在字符插入内容。
      • a:在光标所在字符插入内容。
      • I:在行首插入内容。
      • A:在行尾插入内容。
      • o:在光标所在行下一行插入内容。
      • O:在光标所在上一行插入内容。
      • r:按下后再按一个字符,将光标所在处原来的字符替换为这个字符。
      • R:进入替换模式。
    • 删除:
      • x:删除光标所在字符。
      • nx:从光标所在字符算起,向后删除 n 个字符。
      • dd:删除光标所在行。
      • ndd:从光标所在行算起,向下删除 n 行。
      • D/d$:删除光标所在位置至行尾的所有字符。
      • d^:删除光标所在位置至行首的所有字符。
      • J:删除光标所在行的换行符。
      • .:重复上一次删除操作。
    • 复制、粘贴:
      • yy:复制光标所在行。
      • nyy:从光标所在行算起,向下复制 n 行。
      • p:在光标所在行的下一行粘贴内容。
      • P:在光标所在行的上一行粘贴内容。
      • .:重复上一次粘贴操作。
    • 撤销、重做:
      • u:撤销一次编辑。
      • Ctrl+r:撤销一次撤销操作。
    • 定位:
      • h/j/k/l:光标向 左/下/上/右 方向移动一位。
      • nh/nj/nk/nl:光标向 左/下/上/右 方向移动 n 位。
      • gg:光标移动到文件首行行首
      • G:光标移动到文件尾行行首
      • 0/^:光标移动到当前行首
      • $:光标移动到当前行尾
      • nG:光标移动到第 n 行行首
      • n$:光标下移 n 行,并定位到行尾
      • n[Enter]:n 为数字,光标向下移动 n 行
    • 查找字符串:
      • /words:查找 words,按 n 查找下一个,N 查找上一个。
      • ?words:查找 words,按 n 查找上一个,N 查找下一个。
    • 翻页:
      • Ctrl+f:向下翻页。
      • Ctrl+b:向上翻页。
  • 插入模式下:按 [ESC] 退出到一般模式。

  • 一般模式下输入 : 进入命令行模式。命令行模式下:

    • w:将修改写入文件。
    • q:退出 vim。
    • wq:写入并退出。
    • w!:文件没有写权限,但当前用户可以修改文件时,可以用该命令强制写入。
    • wq!:强制写入并退出。
    • q!:放弃修改并退出,! 告诉 vim 无需保存。
    • e!:撤销全部操作。
    • w 文件名:将文件另存为。
    • w! 文件名:将文件另存为,若已存在,则强行覆盖。
    • !:暂时退出,按任意键回来继续编辑。
    • 数字:光标移动到第 n 行行首
    • /words?words:查找字符串。用法与一般模式下的相同。
    • 1,20s/words1/words2/gc:将 1~20 行的 words1 替换为 words2。sg 是替换命令,加 c 表示由用户一个一个决定要不要替换,不加 c 则直接替换。行数可以是数字,也可以是 $$ 表示末行
    • r 文件名:读取指定文件,将其内容插入到当前文件光标所在行的后面。
  • 可视模式:

    • 分为 可视模式可视行模式可视块模式
      • 可视模式:一般模式下按 v 进入,可选择字符。
      • 可视行模式:一般模式下按 V 进入,可选择块。
      • 可视块模式:一般模式下按 Ctrl+v 进入,可选择块。
    • 可视模式常用操作:
      • 大多数一般模式下的操作。
      • 复制:y,粘贴:p,删除:d,插入:I
      • [ESC] 退出到一般模式。

多文件编辑

同时打开多个文件:vim file1 file2

在命令行模式下输入 xn 切换到下 x 个文件,输入 xN 切换到上 x 个文件,输入 files 查看打开的文件的信息。

多窗口功能

进入 vim 后,命令行模式下输入 sp filename 分割窗口。没有 filename 则分割窗口并在新窗口中编辑当前文件,有 filename 则分割窗口并在新窗口中编辑指定文件。

Ctrl+w+j 光标移动到下一个窗口;按 Ctrl+w+k 光标移动到上一个窗口。

光标移动到想关闭的窗口,按 Ctrl+w+q 或 输入 :q 关闭窗口。

环境参数设置

命令行模式下:

  • set all:查看所有环境参数。
  • set nu:显示行号。
  • set nonu:不显示行号。
  • set autoindent:与上一行自动对齐。
  • set tabstop=4:设置制表符宽度。
  • set shiftwidth=4:设置自动缩进的宽度。
  • filetype indent on:根据文件类型自动缩进。
  • syntax on/off:是否显示关键词颜色。
  • set bg=dark/light:设置色调样式。dark 和 light 是两种不同样式,默认为 light。
  • set:显示与默认值不同的设置值。
  • set ruler:显示右下角状态栏。
  • set showmode:显示左下角状态栏

如果在 vim 中输入上面的设置,这些设置只会在当前 vim 中有效,重启 vim 就无效了。

永久设置环境参数:将以上设置添加到 /etc/vimrc~/.vimrc 文件中。如果添加到 /etc/vimrc 中,所有用户都会拥有这些设置;如果添加到 ~/.vimrc 中,仅该家目录的拥有者拥有这些设置。