Linux下vim各模式的操作你了解吗
点击关注公众号,利用碎片时间学习
前言
学习linux少不了和vim打交道,今天我们就来了解一下什么是vim,如何高效使用vim以及如何配置vim。
vi和vim都是linux下多模式的编辑器,两者关系类似于c/c++的关系,vim是vi的升级版,不仅兼容vi的所有指令,还增加了一些新的特性,比如语法高亮,支持正则表达式等,vim具有程序编辑能力,常用于编写代码。下面让我们具体了解vim

vim的模式
vim有多种模式,这里介绍一些常用的模式给大家,分别是命令模式(也叫普通模式Normal mode)、插入模式(Insert mode)、底行模式(last line mode)、可视化模式(Visual mode)、替换模式(Replace mode)。
用的最多的就是命令模式、插入模式和底行模式。文章后面也会教大家在vim上查看其他模式,linux下一般默认是安装了vim,没有下载vim执行下面指令即可
[king@VM-12-11-centos code]$ sudo yum intsall -y vim
vim后直接跟文件就会打开对应的文件,如果文件不存在就会自动创建
[king@VM-12-11-centos code]$ vim tmp.c
打开后就是这个界面,这里我的vim是配置过的,和原生的vim不同,文章后面会介绍vim的具体配置。

vim模式间的切换
vim打开后默认在Normal命令模式下,也可以称为中间模式,因为模式间的切换都需要回到命令模式下再切换到对应的模式 在任何模式下只需要Esc键即可回到命令模式,如何从命令模式切换到指定模式我们我们接下来介绍

命令模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段等
光标操作
早期的键盘是没有上下左右键的

所以用h(左)、j(下)、k(上)、l(右)
-
shift+^
:光标定位到当前行的行首,shift+$光标定位到当前行行尾 -
gg
:定位到起始行 -
shift+g
:定位到结束行 -
n+shift+g
:n表示指定的行数,跳转到指定行 -
b/w
:以单词为单位光标前/后移动 -
#l
:光标在该行向后移动#个间距 -
ctrl + b
:屏幕往“后”移动一页 -
ctrl +f
:屏幕往“前”移动一页 -
ctrl +u
:屏幕往“后”移动半页 -
ctrl+d
:屏幕往“前”移动半页
文本操作
-
yy
:复制当前行 -
nyy
:以当前行开始,复制n行 -
p
:粘贴 -
np
:一次重复粘贴n行 -
u
:撤销 -
ctrl+r
:恢复刚才的撤销,也就是撤销刚才的撤销 -
dd
:删除光标所在行(ps:这里删除还可以当做剪切使用,比如dd删除当前行后,按p可以粘贴到指定位置) -
ndd
:删除n行 -
shift+~
:单词大小写切换 -
x
:删除光标所覆盖的字符 -
xn
:删除光标后的n个字符 -
shift+x
:删除光标前的一个字符 -
n+shift+x
:删除光标前n个字符 -
r+字符
:用指定字符替换光标所在字符 -
n+r+字符
:用指定字符替换光标后的n个字符
替换模式
-
shift+r
:从命令模式切换为替换模式,在键盘上不断输入就会不断替换当前光标所在字符
插入模式
插入模式就是用来编辑文件内容的模式
从命令模式下进入插入模式:
-
i/I
:在光标前面/行首插入 -
a/A
:在光标后面/行尾插入 -
o/O
:在光标下/上行行首插入
还有一些其他的方式这里就不介绍了,我们一般用i从命令模式进入插入模式然后编辑代码
底行模式
-
:
(Shift+冒号) :从命令模式进入底行模式 -
w
:保存 -
q
:退出 -
!
:强制执行 -
wq!
:强制保存并退出 -
set nu
:显示行号 -
set nonu
:去掉行号
这里本来是有行号的,我们set nonu后就不显示行号了


vs [文件名]
:在窗口下打开对应文件

这样就把code.c也显示出来了
ctrl+ww
:光标在文件间切换,同时光标在哪个文件,操作的就是哪个文件,wq退出的也是对应的文件

help vim-modes
查看vim的各种模式
开头的就是命令模式、可视化模式和选择模式的介绍,回车键或是上下左右键翻看文件内容,[冒号+q]
即可退出

-
「/关键字」
: 先按「/」
键,再输入想寻找的字符,如果第一次找的关键字不是你想要的,可以一直按「n」
,会往后寻找到你要的关键字为止。 -
「 ?关键字」
:先按「?」
键,再输入你想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」
,会往前寻找到您要的关键字为止。
两者的区别是:[/关键字]是从文件底部开始找,而「?关键字」是从文件顶部开始早
可视化模式
v或shift+v
或ctrl+v
:都可从命令模式进入可视化模式
批量化注释和去注释
在可视化模式下:用hjkl键选择需要注释掉的区域(黄颜色的就是选中的区域)

然后按shift+i
,再输入//
此时就注释掉了上图第5行,然后Esc退出,被选中区域就全部注释掉了。
去掉注释:同样在可视化模式下,hjkl选择去注释区域,输入d直接去掉注释
使用hjkl键选择要复制的内容,按y键复制,移动光标,在要粘贴的地方按p粘贴,会直接在光标所在位置处向后粘贴
批量化缩进
同样在可视化模式下通过hjkl选中要缩进的区域,然后按shift+i
然后Tab键缩进单行,然后Esc退出,这样被选中区域就都缩进了
vim的配置
默认的vim不太好用,需要我们自己配置,普通用户配置vim只能影响当前的普通用户,其他用户不受影响。同时建议以普通用户的身份配置,不要使用root用户配置。
在普通用户下创建一个名为.vimrc
的文件,然后打开
[test@VM-12-11-centos ~]$ touch .vimrc
[test@VM-12-11-centos ~]$ vim .vimrc
-
设置语法高亮: syntax on
-
显示行号 : set nu
还有一些其他的我就不介绍了,[ESc]
进入命令模式,[:wq]
保存退出

这样vim就可以显示行号和语法高亮了

这里给大家推荐一个已经配置好的vim插件VimForCpp,现成的轮子不用白不用,将下面方框中的指令复制到linux上执行即可,不过只支持centos7

输入root密码后就可以下载了

下载完成后输入指令vim就配置好了
[test@VM-12-11-centos ~]$ source ~/.bashrc

配置好后,vim界面就是这样了

vim快捷键图片

文章介绍了vim的一部分功能,vim的功能远不止这么多,后期我会慢慢的更新内容。上面的这些常用指令熟练使用后,我们不仅可以脱离鼠标,还会大大提高写代码的效率。
来源:https://blog.csdn.net/weixin_46016019/
推荐:
PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!
原文始发于微信公众号(Java笔记虾):Linux下vim各模式的操作你了解吗