本篇文章内容和干货较多,希望对大家有所帮助👍
目录
vim%E7%9A%84%E4%BB%8B%E7%BB%8D-toc" style="margin-left:0px;">一、vim的介绍
vim%E7%9A%84%E6%A6%82%E5%BF%B5-toc" style="margin-left:40px;">1.1 vi 与 vim的概念
1.2 Vim 和 Vi 的一些对比
vim%20%E6%A8%A1%E5%BC%8F%E4%B9%8B%E9%97%B4%E7%9A%84%E5%88%87%E6%8D%A2-toc" style="margin-left:0px;">二、vim 模式之间的切换
vim-toc" style="margin-left:40px;">2.1 进入vim
2.2 [正常模式]切换到[插入模式]
2.3 [插入模式]切换至[正常模式]
2.4 [正常模式]切换至[底行模式]
2.5 [底行模式]切换至[正常模式]
2.6 一图看懂模式切换
vim%E6%AD%A3%E5%B8%B8%E6%A8%A1%E5%BC%8F%E5%91%BD%E4%BB%A4%E9%9B%86-toc" style="margin-left:0px;">三、vim正常模式命令集
3.1 移动光标
3.2 删除文字
3.3 复制
3.4 替换
3.5 撤销上一次操作
3.6 更改
3.7 查找文本
vim%E6%9C%AB%E8%A1%8C%E6%A8%A1%E5%BC%8F%E5%91%BD%E4%BB%A4%E9%9B%86-toc" style="margin-left:0px;">四、vim末行模式命令集
4.1 列出行号
4.2 跳到文件中的某一行
4.3 查找 / 替换字符
4.4 保存文件和离开vim
vim%E7%9A%84%E8%A1%A5%E5%85%85-toc" style="margin-left:0px;">五、vim的补充
vim%20%E9%94%AE%E7%9B%98%E5%9B%BE-toc" style="margin-left:40px;">5.1 vi/vim 键盘图
5.2 vim的其他模式:视图模式
vim%E7%9A%84%E7%AE%80%E5%8D%95%E9%85%8D%E7%BD%AE%C2%A0-toc" style="margin-left:0px;">六、vim的简单配置
6.1 配置文件的位置
6.2 常用配置选项
6.3 配置vim
vim%E7%9A%84%E4%BB%8B%E7%BB%8D">一、vim的介绍
Vim(Vi IMproved)是一个功能强大的文本编辑器,常用于Linux和其他类Unix系统中。它是Vi编辑器的增强版,并提供了更多的功能和灵活性。
vim%E7%9A%84%E6%A6%82%E5%BF%B5">1.1 vi 与 vim的概念
vi是最初的Unix文本编辑器,是一种基于命令行的编辑器。vi只能在命令模式和编辑模式之间切换。
- 在命令模式下,可以执行诸如复制、粘贴、查找和替换等操作。
- 在编辑模式下,可以编辑文本。要进入编辑模式,请按下i键。要退出编辑模式并返回命令模式,请按下“Esc"键。
vim是vi的改进版,它添加了一些新功能和改进了一些现有功能。
- vim有多种模式:正常模式、插入模式和底行模式等。
- 在正常模式下,可以控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入其他模式。
- 在插入模式下,可以像其他文本编辑器一样编辑文本。
- 在底行模式下,可以进行文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。
1.2 Vim 和 Vi 的一些对比
- 功能扩展:Vim 相较于 vi 提供了更多的功能和扩展。它支持语法高亮、代码折叠、多级撤销、多窗口编辑、插件系统等,这些特性使得 Vim 更加强大和灵活。
- 易用性:Vim 在用户界面和交互方面进行了改进,提供了更直观和友好的操作方式。例如,Vim 支持可视化模式、智能缩进等,使得编辑过程更加便捷。
- 可定制性:Vim 具有高度的可定制性,用户可以通过配置文件(.vimrc)自定义各种设置和快捷键,以适应个人习惯和需求。这使得用户可以根据自己的喜好来优化编辑环境。
- 插件生态:Vim 拥有丰富的插件生态系统,用户可以通过安装插件来扩展 Vim 的功能,如版本控制、自动补全、语法检查等。
- 兼容性:Vim 保持了与 vi 的高度兼容性,可以在 vi 兼容模式下运行。这意味着 vi 用户可以无缝切换到 Vim,而且大部分 vi 的命令和操作在 Vim 中仍然有效。
需要注意的是,尽管 Vim 是对 vi 的改进和扩展,但在某些系统中可能默认安装的是 vi 而不是 Vim。在这种情况下可以使用 vim 命令来启动 Vim 编辑器。
vim%20%E6%A8%A1%E5%BC%8F%E4%B9%8B%E9%97%B4%E7%9A%84%E5%88%87%E6%8D%A2">二、vim 模式之间的切换
vim有许多模式,在这里只讲解三种模式,分别是命令模式(Normal mode)、插入模式(Insert mode)和底行模式(last line mode)。
vim">2.1 进入vim
注:vim可以打开一个不存在的文件,如果q退出,不创建文件,如果wq退出,创建文件。
[zzx@hecs 5_mydir]$ vim code.c
技巧:vim 文件名 +n 打开vim,并将光标移动到第n行。
例如:vim code.c +2 打开code.c,并将光标移动到第2行。
进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字。
2.2 [正常模式]切换到[插入模式]
- 输入i 在当前光标位置进入插入模式
- 输入a 在当前光标位置之后进入插入模式
- 输入o 在当前行之后插入一个新行并进入插入模式。
只有在插入模式下,才可以做文字输入。该模式是我们后面用的最频繁的编辑模式。
2.3 [插入模式]切换至[正常模式]
按[ESC]键 可从插入模式回到命令模式
处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
2.4 [正常模式]切换至[底行模式]
[shift + ;],其实就是输入[:]
在[正常模式]下,按一下 [:] 冒号键进入底行模式,此时光标移动到底部的命令行,并且可以输入各种命令。
例如:退出vim及保存文件
:w 保存当前文件
2.5 [底行模式]切换至[正常模式]
- 按[ESC]键 可从底行模式回到正常行模式
- 底行模式下执行完一条命令后会自动切换至命令模式
2.6 一图看懂模式切换
vim%E6%AD%A3%E5%B8%B8%E6%A8%A1%E5%BC%8F%E5%91%BD%E4%BB%A4%E9%9B%86">三、vim正常模式命令集
3.1 移动光标
- vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母
[h] == ←、[j] == ↑、[k] == ↓、[l] == →,分别控制光标左、下、上、右移一格。- 按[G]:移动到文章的最后
- 按[#G]:例如,[15G],表示移动光标至文章的第15行行首。
- 按[$]:移动到光标所在行的“行尾”
- 按[^]:移动到光标所在行的“行首”
- 按[w]:光标跳到下个字的开头
- 按[e]:光标跳到下个字的字尾
- 按[b]:光标回到上个字的开头
- 按[#l]:光标移到该行的第#个位置,如:5l,56l
- 按[gg]:进入到文本开始
- 按[shift+g]:进入文本末端
- 按[ctrl]+[b]:屏幕往“后”移动一页
- 按[ctrl]+[f]:屏幕往“前”移动一页
- 按[ctrl]+[u]:屏幕往“后”移动半页
- 按[ctrl]+[d]:屏幕往“前”移动半页
- 按[ctrl]+[g] 列出光标所在行的行号。
注:w和b如果碰到的是单词,就跳到单词开头,如果不是单词,就按字符移动,如果是空格,就跳过
3.2 删除文字
- [x]:每按一次,删除光标所在位置的一个字符
- [#x]:例如,[6x]表示删除光标所在位置的“后面(包含自己在内)”6个字符
- [X]:大写的X,每按一次,删除光标所在位置的“前面”一个字符
- [#X]:例如,[20X]表示删除光标所在位置的“前面”20个字符
- [dd]:删除光标所在行
- [#dd]:从光标所在行开始删除#行
注:
- x 和 #x 都是向后删除,X 和 #X 都是向前删除。
- dd 删除的内容存放在缓存表内,相当于剪切
3.3 复制
- [yw]:将光标所在之处到字尾的字符复制到缓冲区中。
- [#yw]:复制#个字到缓冲区
- [yy]:复制光标所在行到缓冲区。
- [#yy]:例如,[6yy]表示拷贝从光标所在的该行“往下数”6行文字。
- [p]:将缓冲区内的字符贴到光标所在位置。
注:
- 所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
- dd 也可以与 p 配合使用,实现剪切粘贴
- #G p 例如13G p 粘贴到13行的下一行
#p 例如1000p 粘贴1000次,不想复制就按u撤回
3.4 替换
- [r]:替换光标所在处的字符
- [R]:替换光标所到之处的字符,直到按下[ESC]键为止。
- [~] 波浪号:将文本进行大小写转换
注:
- [r#] 替换光标所在处的字母,换成#,例如 rg,将光标所在处的字母换成g
[#r#] 例如5rg,将光标所在处及之后的共5个字符换成g- [R] 是进入到replace模式。
3.5 撤销上一次操作
- [u]:如果您误执行一个命令,可以马上按下[u],回到上一个操作。按多次“u”可以执行多次回复。
- [ctrl + r]: 撤销的恢复
3.6 更改
- [cw]:更改光标所在处的字到字尾处
- [c#w]:例如,[c3w]表示更改3个字
3.7 查找文本
[/文本]:在当前文件中向下查找匹配的文本。按下回车后,光标将定位到第一个匹配的位置。
[?文本]:在当前文件中向上查找匹配的文本。按下回车后,光标将定位到第一个匹配的位置。
[*]:按下*键,在当前文件中向下查找当前光标所在位置的单词。
[#],按下 # 键,可向上查找前一个匹配项。
注:
- [/]和[?]按下回车后,光标将定位到的是光标原本位置后的第一个匹配的位置。
不是文本文件中第一个出现该文本的位置- [/]和[?]光标定位后,按下 n 键,可继续向下查找下一个匹配项。
按下 N 键,可向上查找前一个匹配项。- 底行输入 noh 取消高亮
vim%E6%9C%AB%E8%A1%8C%E6%A8%A1%E5%BC%8F%E5%91%BD%E4%BB%A4%E9%9B%86">四、vim末行模式命令集
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。
4.1 列出行号
- [set nu]:输入[set nu]后,会在文件中的每一行前面列出行号。
- [set nonu] :取消显示行号。
4.2 跳到文件中的某一行
- [#]:[#]号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字10,再回车,就会跳到文章的第10行。
4.3 查找 / 替换字符
前面3.7中讲到的 [/] 和 [?] 也可以算在底行模式的命令中
查找
[/文本]:在当前文件中向下查找匹配的文本。按下回车后,光标将定位到第一个匹配的位置。
[?文本]:在当前文件中向上查找匹配的文本。按下回车后,光标将定位到第一个匹配的位置。
/和?的注意事项与3.7中相同。
替换
[%s/<查找内容>/<替换内容>/g]:全局替换命令,将当前文件中所有匹配 pattern 的文本替换为 replace。
%s:表示对整个文件进行替换。
/g:表示全局替换,即一行中多次出现的匹配都会被替换。
vim">4.4 保存文件和离开vim
- [w]: 在冒号输入字母[w]就可以将文件保存起来
- [q]:按[q]就是退出,如果无法离开vim,可以在[q]后跟一个[!]强制离开vim。
- [wq]:一般建议离开时,搭配[w]一起使用,这样在退出的时候还可以保存文件。
注:
- vim可以打开一个不存在的文件,如果q退出,不创建文件,如果wq退出,创建文件。
vim%E7%9A%84%E8%A1%A5%E5%85%85">五、vim的补充
vim%20%E9%94%AE%E7%9B%98%E5%9B%BE">5.1 vi/vim 键盘图
学完上面的一些命令和操作再来看这个vim图应该会有一些更深的体会。
vim%E7%9A%84%E5%85%B6%E4%BB%96%E6%A8%A1%E5%BC%8F%EF%BC%9A%E8%A7%86%E5%9B%BE%E6%A8%A1%E5%BC%8F">5.2 vim的其他模式:视图模式
前面讲到的三种模式:正常/命令模式、插入模式、底行模式只是一部分,一共有12种总模式,大家下来可以研究一下。
其中有一个较为常用的是视图模式(Ctrl v进入),常用来进行批量化注释和注释解除。
注释步骤:
- 将光标移动到要注释的行首
- Ctrl v 进入视图模式
- 选取行 使用hjkl选取多行
- I插入模式 Shift + i ,即大写i进入插入模式
- 输入// 注释一行
- Esc 完成批量化注释
注释解除和此步骤类似,大家可以自行练习以下。(把输入//换成删除// )
vim%E7%9A%84%E7%AE%80%E5%8D%95%E9%85%8D%E7%BD%AE%C2%A0">六、vim的简单配置
6.1 配置文件的位置
- 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
- 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。
- 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
- 打开自己目录下的.vimrc文件,执行 vim .vimrc
6.2 常用配置选项
- 设置语法高亮: syntax on
- 显示行号: set nu
- 设置缩进的空格数为4: set shiftwidth=4
6.3 配置vim
要配置好看的vim,原生的配置可能功能不全,也可以选择使用别人的配置:
- 直接在命令行输入并回车即可。
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
- 下载完成后还要执行以下命令让配置生效
source ~/.bashrc
- 卸载配置直接执行以下命令
bash ~/.VimForCpp/uninstall.sh
效果图: