1. 格式说明

  • <xxx>:尖括号的含义表示这是一个占位参数,也就是必须有的参数,实际输入的内容是 xxx
  • [xxx]:方括号的含义表示这是一个可选参数,也就是可有可无,实际输入的内容是 xxx
  • 每行中前边是用法表达式,然后是四个空格,后边是用法解释。即组成格式为:用法表达式 + 四个空格 + 用法解释用法表达式中有空格,就是需要加空格,没有空格,就表示不需要加空格。例如有些占位参数后边是没有空格的,它就是不需要空格,有些是有空格的,就表示必须有空格。
  • ...:表示前边的参数可以有多个

2. vim 的进入与退出

进入 vim

  • vim filename  打开或新建文件,并将光标置于第一行首
  • vim +n filename  打开文件,并将光标置于第 n 行首
  • vim + filename  打开文件,并将光标置于最后一行首
  • vim + /pattern filename  打开文件,并将光标置于第一个与 pattern 匹配的串处
  • vim -r filename  在上次正用 vim 编辑时发生系统崩溃,恢复 filename
  • vim filename ....  打开多个文件,依次进行编辑

退出 vim

  • ∶q!  离开 vim,并放弃刚才编辑的内容
  • ∶wq  存盘并退出
  • ∶w  存盘但不退出,等待用户继续键入命令
  • ∶q  退出 vim,若文件被修改过,会要求确认是否放弃修改的内容。此命令可以与w
  • ∶w filename  另存为名为 filename 的文件

3. 编辑命令

插入删除替换恢复

  • i   在光标所在位置前插入新的字符
  • A  在光标所在行尾开始插入新的字符
  • x  删除光标后的字符
  • X  删除光标前的字符
  • r  替换光标所在字符
  • R  替换当前字符及其后的字符,直至按 ESC 键
  • s  删除光标所在的字符,并同时进入输入模式
  • S  删除光标所在的行,并同时进入输入模式
  • o  在当前行之下新开一行
  • O  在当前行之上新开一行
  • u  恢复刚才被修改的文本
  • U  恢复对光标所在行的所有修改

剪切

  • d  配合可视化使用,剪切选中的内容,单独使用无效
  • dd  剪切当前行
  • <n>dd  剪切 n 行
  • d<n>G  剪切当前行至第 n 行的内容
  • dH  剪切从当前行至所显示屏幕顶行的全部行
  • dL  剪切从当前行至所显示屏幕底的全部行
  • d<command>  剪切从当前行至命令 command 所指定行的全部行,例如: dggdG
  • d$  从当前光标剪切至行末,包含光标
  • d0  从当前光标剪切至行首,不包括光标
  • d<n>l  从当前光标向右剪切 n 个字符,包含光标
  • d<n>B  从当前光标反向剪切 n 个单词,不包括光标
  • dw  从光标处剪切至一个单子/单词的末尾,包括空格
  • de  从光标处剪切至一个单子/单词的末尾,不包括空格

复制

  • y  复制当前行和下一行
  • yy  复制当前行
  • <n>yy  复制 n 行
  • +y  复制选中内容到 + 寄存器,也就是系统的剪贴板,供其他程序用
  • y<n>G  复制当前行至第 n 行的内容
  • yH  复制从当前行至所显示屏幕顶行的全部行
  • yL  复制从当前行至所显示屏幕底的全部行
  • y<command>  复制从当前行至命令 command 所指定行的全部行,例如: yggyG
  • y$  从当前光标复制到行末,包括光标
  • y0  从当前光标复制至行首,不包括光标
  • y<n>l  从当前光标向右复制 n 个字符,包含光标
  • y<n>B  从当前光标反向复制 n 个单词,不包括光标
  • yw  从光标处复制至一个单子/单词的末尾,包括空格
  • ye  从光标处复制至一个单子/单词的末尾,不包括空格

粘贴

  • p  粘贴复制的内容到光标所在位置
  • "<n>p  粘贴 n 号寄存器的内容到光标所在位置
  • "+p  粘贴系统剪贴板的内容到光标所在位置
  • ":p  粘贴上一个Vim命令
  • "/p  粘贴上一次的搜索关键词

寄存器

  • :reg  查看寄存器以及寄存器里边的内容,第一列是寄存器的名字,第二列是寄存器的内容;其中 "+ 寄存器表示系统剪切板,没有的话使用 +d +y "+p 无效
  • vim 提供了 10 类寄存器,可在 vim 中输入 :help registers 查看帮助
    • 匿名寄存器 ""
    • 编号寄存器 "0 到 "9
    • 小删除寄存器 "-
    • 26 个命名寄存器 "a 到 "z
    • 3 个只读寄存器 ": ". "%
    • Buffer 交替文件寄存器 "#
    • 表达式寄存器 "=
    • 选区和拖放寄存器 "* "+ "~
    • 黑洞寄存器 "_
    • 搜索模式寄存器 "/

搜索

  • /<name>  查找光标之后的名为 name 的字符串,查找到之后高亮显示
  • :noh  取消高亮显示

光标跳转

  • gg  跳到文件首
  • G  跳到文件尾
  • <n>gg / <n>G / :<n>  跳到第 n 行
  • Shift + 6:跳到行首
  • Shift + 4:跳到行尾

显示当前正在编辑的文件

  • Ctrl + g  显示当前正在编辑的文件名
  • :f  显示当前正在编辑的文件名
  • :pwd  显示当前正在编辑文件的路径

vim 翻页

  • Ctrl + f  向下翻一页,f=forward
  • Ctrl + b  向上翻一页,b=backward
  • Ctrl + d  向下翻半页,d=down
  • Ctrl + u  向上翻半页,u=up
  • Ctrl + e  向下滚动一行
  • Ctrl + y  向上滚动一行
  • zz  让光标所在的行居屏幕中央
  • zt  让光标所在的行居屏幕最上一行,t=top
  • zb  让光标所在的行居屏幕最下一行,b=bottom

其它

  • :set number / :set nu  显示行号
  • 永久显示行号:打开 vim 配置文件 ~/.vimrc ,在里边添加 set nu ,即可永久显示行号
  • :set nonumber / :set nonu  取消显示行号
  • :set ff  显示换行符格式
  • :set ff=unix  把换行符设置为 unix 格式;在 Windows 下编写的 shell,需要把换行符换成 unix 才能运行

4. 多文件编辑

  • 打开多个文件 vim filename1 filename2 ...
  • 在打开的文件间切换
    • :bn  下一个文件
    • :bp  上一个文件
    • :b<n>  切换至第 n 个文件
    • :ls  列出打开的文件,带编号

5. 多窗口多文件编辑

  • 如果在终端中开没有打开 vim
    • 纵向分割显示: vim -O filename1 filename2 ...
    • 横向分割显示: vim -o filename1 filename2 ...
  • 如果已经用 vim 打开了一个文件,想要在窗口中同时再打开另一个文件
    • 纵向分割显示: :split filename:sp filename
    • 横向分割显示: :vsplit filename:vs filename
  • 关闭窗口
    • :q  关闭光标所在窗口
    • :q!  关闭光标所在窗口并放弃修改
    • :qa  关闭所有窗口
    • :qa!  关闭所有窗口并放弃修改
    • :w  保存当前窗口已修改内容
    • :wa  保存所有窗口已修改内容
  • 在打开的窗口之间切换: Ctrl + w w ,即按住 Ctrl 键,再按两下 w 键

6. 可视化模式

为了便于选取文本,vim 引入了可视(Visual)模式。 要选取一段文本,首先将光标移到开始位置,在命令模式下按 v 进入可视模式,然后把光标移到结束位置,即可选中这段内容,然后使用剪切或复制命令,即可剪切或复制该段内容。需要注意,光标所在字符是包含在选区中的。

  • v  进入字符可视化模式,文本选择是以字符为单位的
  • V  进入行可视化模式,文本选择是以行为单位的
  • Ctrl + v  进入块可视化模式, 可以选择一个矩形内的文本

常见用法:

  • ggVG  全选


未完 ......

点击访问原文(进入后根据右侧标签,快速定位到本文)

12-18 08:19
查看更多