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 所指定行的全部行,例如:
dgg
、dG
- 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 所指定行的全部行,例如:
ygg
、yG
- 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 列出打开的文件,带编号
- :bn 下一个文件
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 保存所有窗口已修改内容
- :q 关闭光标所在窗口
- 在打开的窗口之间切换:
Ctrl + w w
,即按住 Ctrl 键,再按两下 w 键
6. 可视化模式
为了便于选取文本,vim 引入了可视(Visual)模式。 要选取一段文本,首先将光标移到开始位置,在命令模式下按 v 进入可视模式,然后把光标移到结束位置,即可选中这段内容,然后使用剪切或复制命令,即可剪切或复制该段内容。需要注意,光标所在字符是包含在选区中的。
- v 进入字符可视化模式,文本选择是以字符为单位的
- V 进入行可视化模式,文本选择是以行为单位的
- Ctrl + v 进入块可视化模式, 可以选择一个矩形内的文本
常见用法:
- ggVG 全选
未完 ......
点击访问原文(进入后根据右侧标签,快速定位到本文)