🦄个人主页:修修修也
🎏所属专栏:Linux
⚙️操作环境:Xshell (操作系统:CentOS 7.9 64位)
目录
📌写在前面
📌Vim是什么
📌手把手教你开始使用Vim
🎏使用Vim编辑第一个程序
🎏Normal(命令模式)指令集
🕹️插入模式
🕹️插入模式切换为命令模式
🕹️移动光标
🕹️删除文字
🕹️复制
🕹️替换
🕹️撤销上一次操作
🕹️更改
🎏LastLine(底行模式)指令集
🕹️显示行号
🕹️跳到文件中的某一行
🕹️查找字符
🕹️保存文件
🕹️离开Vim
📌多文件操作
📌简单配置Vim
🎏Vim配置原理
🎏一键配置Vim
结语
📌写在前面
点进这篇博客的朋友想来大都是对Vim这个编辑器感到既好奇又迷茫的。首先要明确的是, Vim并不像我们以往接触的编辑器那样容易在一开始就可以简单的先尝试上手操作。相反地, 因为没有我们熟悉的图形化界面+鼠标辅助操作,Vim的起步难度可以说远超其他编辑器。如果你想要基本操作一下Vim,你一开始就需要先掌握一定的技能,而不是在使用时才蹒跚起步。下图大概描述了Vim的学习曲线:
从坐标轴毫无反馈的走到y轴的起点的路程是令人绝望的, 很多人倒在这段路上。因为他们并不知道学习Vim第一要紧的事是存活下来。但当你越过这段路后,Vim将会成为你最后一个使用的文本编辑器。
"没有比Vim更好的文本编辑器了, 非常地难学, 但是却不可思议地好用。"——陈皓
在正式开始学习Vim之前, 我需要给你一些忠告:
- 学习Vim在开始时是痛苦的, 因为你不得不推翻自己长时间以来在windows环境下养成的文本编辑习惯, 那种感觉就像我们第一次在Linux里复制时被要求使用Ctrl+insert那样。
- 学习Vim需要时间, 需要持续不断的练习, 并且这种练习就像小学老师要求课后抄写的汉字一样的枯燥无聊, 只是为了强化肌肉记忆, 但必须坚持。
- 不要期望能在几天内就将Vim练习的和其他编辑器一样高效, 事实上你将花费两周乃至以上的时间重塑你的编辑习惯, 唯有如此, 才能使Vim得心应手。
📌Vim是什么
Vim是从 Vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。
Vim的设计理念是命令的组合。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。同时Vim与很多快捷键设置和正则表达式类似,可以辅助记忆。并且Vim针对程序员做了优化。
📌手把手教你开始使用Vim
🎏使用Vim编辑第一个程序
首先确保自己的机器安装了Vim, 然后我们在目录下先创建一个.c文件:
然后我们使用Vim打开这个.c文件:
打开后,我们可以看到这样一个界面:
正常情况来讲,打开了编辑器我们就可以输入文本了,但是如果你尝试一下就会发现此时你按动键盘输入,大概率界面是没有什么反应的,这是因为此时刚进入Vim,它还处于Normal(命令模式),Vim有很多种模式,其中主要的三种模式的作用及其关系如下图:
了解了三种模式,我们就明白了这时候要想输入文本内容,就要先按[ i ]键进入insert(插入模式)才可以,我们按下[ i ]键,可以发现此时底行提醒我们已经进入了insert模式:
然后我们尝试输入一段C语言代码,可以看到,此时就可以正常输入了:
在代码输入完成之后,我们此时想要保存并退出Vim编辑器就需要先从Insert(插入模式)回退到Normal(命令模式),回退的方法是, 按[ Esc ]键, 然后就会发现底部的insert消失了,表示我们已经回退到了Normal(命令模式):
然后我们要从Normal(命令模式)进入LastLine(底行模式), 按下[ Shift + ; ]键, 我们可以看到此时底部出现了一个冒号, 表示我们已经进入了LastLine(底行模式):
这个时候, 我们想要保存文本并退出Vim, 就给底行输入"wq",其中w表示保存文本,q表示退出Vim:
输入wq后按下回车, 就成功保存并退出Vim了, 此时我们查看一下刚编辑的test.c文件, 就可以看到刚刚保存的内容了:
然后我们就可以正常的编译运行或者其他的操作,都是完全可以的:
🎏Normal(命令模式)指令集
🕹️插入模式
- 按「 i 」切换进入插入模式( insert mode ),按[ i ]进入插入模式是从光标当前位置开始输入文件;
- 按「 a 」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
- 按「 o 」进入插入模式后,是插入新的一行,从行首开始输入文字。
🕹️插入模式切换为命令模式
- 按[ Esc ]键。
🕹️移动光标
首先介绍一下,我们在打开Vim之后,界面上显示的这个绿色小方块就是光标,它在哪里我们就在编辑哪里:
下面介绍几种操纵光标定位的方法(注,操纵光标需要在Normal(命令模式)下进行):
- 按「 $ 」:移动到光标所在行的“行尾”
- 按「^」:移动到光标所在行的“行首”
- 按「w」:光标跳到下个字的开头
- 按「e」:光标跳到下个字的字尾
- 按「b」:光标回到上个字的开头
- 按[ n ]+[ l ]:光标移到该行的第n个位置,如:5l,56l
- 按[gg]:光标移动到文本开始行
- 按[shift+g]:光标移动到文本末尾行
- 按[ n ] + [ Shift + g ] :光标移动到文本第n行, 如:5G,45G
- 按「ctrl」+「b」:屏幕往“后”移动一页
- 按「ctrl」+「f」:屏幕往“前”移动一页
- 按「ctrl」+「u」:屏幕往“后”移动半页
- 按「ctrl」+「d」:屏幕往“前”移动半页
- Vim可以直接用键盘上的光标来上下左右移动,但正规的Vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格:
🕹️删除文字
- 「x」:每按一次,删除光标所在位置的一个字符
- [ n ]+[ x ]:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
- 「 Shift + x 」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
- [ n ] +「 Shift + x 」:例如,「20X」表示删除光标所在位置的“前面”20个字符
- 「dd」:删除光标所在行
- [ n ] +「dd」:从光标所在行开始删除n行,如[ 5dd ]表示从光标所在行开始删除5行
🕹️复制
- 「yw」:将光标所在之处到字尾的字符复制到缓冲区中
- [ n ] +「yw」:复制n个字到缓冲区
- 「yy」:复制光标所在行到缓冲区
- [ n ] +「yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字
- 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能
🕹️替换
- 「r」:替换光标所在处的字符
- [ Shift ] +「r」:大写的R, 替换光标所到之处的字符,直到按下「ESC」键为止
🕹️撤销上一次操作
- 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次撤销。
- 「ctrl + r」: 撤销的恢复, 如果您误执行一个撤销,可以马上按下「ctrl + r」,回到上一个撤销前的操作。按多次「ctrl + r」可以执行多次恢复撤销。
🕹️更改
- [ c ] + [ w ]:更改光标所在处的字到字尾处
- [ c ] + [ n ] + [ w ]:例如,「c3w」表示更改3个字
🎏LastLine(底行模式)指令集
在使用底行模式之前 ,请记住先按[ESC]键确定您已经处于正常模式, 再按「 Shift + ; 」, 即一个冒号, 即可进入底行模式。
🕹️显示行号
- 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
🕹️跳到文件中的某一行
- 「n」:「n」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行
🕹️查找字符
- [ / ] + [ 关键字 ] : 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
- [ ? ] + [ 关键字 ] :先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止
🕹️保存文件
- 「w」: 在冒号输入字母「w」就可以将文件保存起来
🕹️离开Vim
- 「q」:按「q」就是退出,如果无法离开Vim,可以在「q」后跟一个「!」强制离开Vim
- [ w ] + [ q ]:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件
📌多文件操作
Vim可以打开一个不存在的文件, 我们使用Vim打开一个不存在的文件:
可以成功打开:
但它并不会真正帮我们创建,如果我们并不保存这个文件的话, 在退出Vim后就不会产生新创建的文件:
我们在Vim里面底行模式,同样可以打开Vim文件(包括不存在的文件):
然后就会弹出一个code.c的Vim窗口,此时我们就可以进行多文件编辑了:
多文件编辑下,想切换文件编辑,按[ Ctrl ] + [ w ] + [ w ]
📌简单配置Vim
相信此时经过一定的熟悉和接触, 或许你会觉得Vim还是有很多不趁手的地方, 比如没有自动缩进, 或者是没有语法提示, 或者是不适应默认的主题方案。这些问题都可以通过配置Vim来解决,我们可以根据自己的使用习惯来配置Vim, 使它变得更加好用一些。
🎏Vim配置原理
Vim配置是靠用户家目录里的文件Vimrc来完成的(这也表明一个Vim的配置只对一个用户生效,不会相互影响), 但这个文件并不是系统自带的,而是需要我们自己创建:
创建好后我们就可以打开它然后配置Vim了:
例如, 我们给文件里面输入"set nu"然后保存:
然后退出再重新打开Vim就会发现所有的Vim文件都会自带行号了:
Vim还有很多可以配置的选项,大家感兴趣的话可以在网上自行搜索配置.
🎏一键配置Vim
如果有朋友懒得去详细的搜索Vim的配置,这里给大家贴一个现成的方案,大家可以用它来一键配置Vim:Gitee : VimForCpphttps://gitee.com/HGtz2222/VimForCpp 项目概况如下图,详情请点击链接查看:
配置步骤,首先复制下面这行代码:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
然后打开命令行窗口, 在确保自己不是root用户的情况下, 将代码复制到窗口运行:
输入自己的root账户密码,就可以开始安装了, 这时它会自动的帮助我们下载配置相关的插件, 并给我们安装配置好, 我们只需要耐心等待5.6分钟就可以了, 等到它提示我们安装完成后, 我们输入[ source ~/.bashrc ]后, 就可以使用配置好的Vim了:
再打开Vim, 就可以使用已经配置好的Vim了:
注意,配置好后用户的根目录里会多出一个install.sh文件,这是我们刚才在配置文件时下载的,我们将其隐藏掉就行:
结语
希望这篇关于 Vim编辑器使用 的博客能对大家有所帮助,欢迎大佬们留言或私信与我交流.
学海漫浩浩,我亦苦作舟!关注我,大家一起学习,一起进步!
相关文章推荐
【Linux】一文带你彻底搞懂权限
【Linux】基本指令(下)
【Linux】基本指令(中)
【Linux】基本指令(上)