Linux教程(六)Vim 基础
简介
vi 是 Visual interface 的简称,是 linux 中最经典的文本编辑器,在很多 linux 发行版中,直接把 vi 做成了 vim 的软连接。
vi 的特点:
- 没有图形界面,功能强大
- 只能编辑文本内容,不能对字体、段落进行排版
- 不支持鼠标操作
- 没有菜单,只有命令
Vim 是从 vi 发展出来的一个多模式文本编辑器,代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
官方文档:http://vimcdoc.sourceforge.net/
Vim 安装
sudo apt-get install vim
安装好之后可以在终端输入 vimtutor
查看快速入门教程。
Vim 模式
vim 是一个多模式编辑器,进入 vim 时的初始模式是普通模式,而在该模式下是不能进行文本输入的,它具有五种基本模式和六种派生模式。
五种模式
1. 普通模式 normal mode
普通模式是 vim 打开之后的初始模式以及使用中的默认模式。在该模式下的键盘输入是被当做快捷键对待的,而不是文字录入,也就是说用户只能输入各种快捷键来实现各种功能。
普通模式可以直接切换到 I、C、V、R 模式(各个模式的简称)
2. 插入模式 insert mode
插入模式是其他编辑器的默认状态。进入插入模式后,vim 就和一般的编辑器没有区别了,但是这里是不能使用鼠标的,全部的操作都是由键盘完成。
3. 命令模式 comman mode
命令模式和插入模式一样,也是一般编辑器都有的模式。
4. 可视模式 visual mode
可视模式主要用于选择文本区域,然后将一些操作作用到选中的文本区域上,该模式下被选中的区域会高亮显示。
5. 替换模式 replace mode
按下键盘上的 insert 后,新输入的文本会直接覆盖掉以前的文本,这就是替换模式。
注:一种非普通模式要进入到另一种非普通模式,都需要先切换到普通模式再进行切换。
模式切换
各模式之间的切换如下图所示:
1. IN,CN,VN,RN 操作
IN 即插入模式切换到普通模式,其它操作类似。由其它非普通模式回到普通模式可使用以下三种快捷键:Esc、Ctrl+c、Ctrl+[。
注:在命令模式下输入命令回车,命令执行完之后会自动从命令模式退回到普通模式;在可视模式下,当前任务完成后也会自动回到普通模式。
2. NI 操作
普通模式切换到插入模式可使用快捷键:i、a、o、I、A、O、s、cw。
- i:insert,在光标之前插入
- a:append,在光标之后插入
- o:在光标所在行下方新起一行并进行插入
- I:在当前行的第一个非空白字符之前插入文本
- A:将光标移动到当前行的行尾输入文本
- O:在当前行的上方新起一行输入文本
- s:substitute,删除当前光标下的字符,然后进入插入模式
- cw:change word,删除当前光标开始的一个单词,然后进入插入模式
3. NC 操作
普通模式切换到命令模式,可使用快捷键:: 、 /
- : :进入命令模式,并在左下角出现一个冒号,输入想要执行的命令回车即可执行
- / :执行搜索功能
# 查看命令的帮助文档
:help <command>
# 查看“命令行模式”的帮助文档
:help :
注:进入命令行模式后,可以使用方向键调出历史命令。如输入 😒 则只会调出以 s 开头的历史命令。
4. NV 操作
普通模式切换到可视模式,可使用快捷键:v、V、Ctrl+v
5. NR 操作
普通模式切换到替换模式,可使用快捷键:r、R
文件操作
打开文件
终端输入 vim 文件名
,vim 会直接打开文件,若文件不存在,则新建一个文件并打开。
如果已经打开了 vim,执行命令 :e 文件名
可以打开当前路径下的文件。在输入文件名时,可以使用 tab
键对文件名进行自动补齐。
如果已经打开了文件,并且需要继续写代码而不想关闭,但是又需要打开另一个文件编辑,可以利用 vim 的多标签功能,执行命令 :tabnew 文件名
即可打开新的文件
切换标签页
要在标签页之间切换,首先要回到普通模式。切换标签页可以使用快捷键:gt、gT
- gt:切换到当前标签页的右侧标签页上
- gT:切换到当前标签页的左侧标签页上
分割窗口打开文件
:sp <file>
打开新文件并将窗口分成上下 2 个:vs <file>
打开新文件并将窗口分成左右 2 个
这两个命令可以一直使用
窗口切换
快捷键:Ctrl + w + [h,j,k,l] ,h、j、k、l 分别表示左、下、上、右四个方向
保存文件
:w
保存文件:wa
一次性将在编辑的所有文件的修改都执行保存操作
退出
:q
关闭当前窗口或当前标签页:wq
先保存再退出:qa
一次性将所有在编辑的文件全部关闭并退出:q!
不保存修改强制退出文件
导航和跳转
导航
快捷键:h、j、k、l、w、e、b、f、F、t、,、;
h、j、k、l : 在普通模式下用来将光标向四个方向进行移动,h 向左移动一个字符,l向右移动一个字符,j向下移动一行,k向上移动一行。
w、e、b:以单词为单位移动,w 正向移动,光标停留在单词的第一个字母上;e 正向移动,光标停留在单词的最后一个字母上;b 则是向左移动光标,光标停留在第一个字母上。
翻页
- Ctrl + f :整屏正向翻页
- Ctrl + b:整屏反向翻页
- Ctrl + d:半屏正向翻页
- Ctrl + u:半屏反向翻页
基本编辑
删除文本
- x :剪切当前光标下的字符
- d :删除操作
- dw:删除单词
- d$:从当前光标正向删除到行尾
- dd:删除光标所在的一行