Linux环境基础开发工具->vim

引入:vim是什么?

vs叫作继承开发环境,我们可以在里面编辑代码,调式代码,运行代码....这种叫集成开发环境;而vim只用来编辑代码,也就是类似于在windows上打开一个记事本来写代码的操作

集成开发环境有他的好处,但一个人要想成长,一定是自己用不同的工具完成每一步

所以vim就是Linux的代码在编辑这一步所需要的工具

一:用vim写一个打印程序

多得不说,先用vim写上一个代码,需要注意的是,你可以touch创建.c文件再vim打开该文件进行编辑;也可以直接vim上一个.c文件进行编辑。但是一定要是.c文件,因为你编辑代码的目录,肯定是要执行的,所以需要gcc生成一个.out的可执行文件,原因就是因为gcc只能对.c文件进行编译,所以一定是要.c文件

所以下面我们写一个程序,引出三个模式

1:vim上一个.c文件

2:写一个打印程序

进入之后是这样的页面:

此时处于命令模式,输入i切换到插入模式:

然后开始写一个打印程序:

3:退出并保存

写完程序后,先按Esc键切换到底行模式,然后再输入:,再输入wq,再按回车

: 是英文的冒号,所以等于在英文输入法下进行shitf + ;

①:按Esc键切换到底行模式

INSERT字样 消失了 则代表进入了底行模式

②:再输入:,再输入wq,再按回车

③:gcc编译,然后./a.out执行文件,显示打印效果

所以我们现在知道了三个模式,这三个就是vim最常用的模式

命令模式 插入模式 底行模式

注意:

命令模式 也可以叫作 正常模式

底行模式 也可以叫作 末行模式

下面开始细讲三个模式的切换和操作

二:三种模式的切换

1:三种模式的用途

**命令模式:**我们可以控制屏幕光标的移动,字符、字或行的删除,复制粘贴,剪贴等操作。

**插入模式:**进行文字输入,该模式是我们使用最频繁的编辑模式。

**底行模式:**将文件保存或退出,也可以进行查找字符串等操作

2:模式的切换

我们在编译代码的时候,需要用到这三个模式,所以要知道如何进行模式的切换

如图:

解释:

不知道当前处于什么模式,只需要看最底行就行:底行是INSERT则是插入模式;底行是冒号则是底行模式;底行什么都没有或者是NEW FILE则是命令模式!

要换什么模式,都可以无脑的Esc回到命名模式,这样如果想要命名模式正好;反之想要插入模式则输入a i o,要底行模式则英文冒号即可!

Q1:为什么插入模式不能切换到底行模式?

A1:因为插入模式你输入什么都是往代码里面写,你这时候属于英文冒号,依然是被视为代码,而不是用来切换到底行模式,所以要先退回到命令模式

Q2:为什么底行模式不能切换到插入模式?

A2:你处于底行模式,你属于i o a ,都会被视为底行模式的操作,而不是用来切换到插入模式,所以要先Esc切换到命令模式

总结:

【命令模式】切换至【插入模式】

1)输入「i」:在当前光标处进入插入模式。

2)输入「a」:在当前光标的后一位置进入插入模式。

3)输入「o」:在当前光标处新起一行进入插入模式。

①:命令模式切换到插入模式

如图:(绿色代表光标位置)

②:【命令模式】切换至【底行模式】

输入「Shift+;」即可,实际上就是输入「:」。

③:【插入模式】或【底行模式】切换至【命令模式】

插入模式或是底行模式切换至命令模式都是直接按一下「Esc」键即可。

注意:之前在第一大点里面我们想要退出vim,就是在底行模式输入wq然后回车的

wq意味着保存并退出,可以单独的w也可以单独的q

3:没有正常退出vim的后果

但我们有可能因为各种原因导致没有按照底行模式,然后wq退出,比如断网啊,云服务器闪退啊等等,这时候,当我们再vim进入文件的时候,会出现以下界面:

该页面想告诉你:

因为你没有按照正确的方式保存并退出vim(如 Vim 崩溃、系统断电、强制关闭终端等),vim贴心的给你保存了,保存到了一个隐藏文件(又叫交换文件).file.c.swp 中,现在要让你选择选项:

Vim 让你选择如何处理这个文件.file.c.swp:

选项 说明 适用场景
[O]pen Read-Only 只读模式打开文件,不能修改 仅查看文件,不修改
[E]dit anyway 忽略交换文件,直接编辑 确认没有其他 Vim 在编辑,且不需要恢复旧数据
[R]ecover 尝试恢复未保存的更改 上次编辑崩溃,可能有未保存内容
[D]elete it 删除交换文件 确定不需要恢复,或已经恢复过
[Q]uit 退出 Vim 暂时不处理
[A]bort 中止操作 (类似 Ctrl+C 取消当前操作

所以我们一般直接d删除这个隐藏文件,或者r恢复没来得及保存的代码

注意:选项不区分大小写

此时我们在file.c位于的目录中也是通过ls -la指令看见这个一隐藏文件:

**总结:**一定要正确的退出vim编辑器,养成好习惯

三:命令模式的操作

注意:n+什么,这里的+不用手动输入 只是为了表示两者组合的意思

命令模式的操作是最多的,也是最有意思的

当我们vim进入文件的时候,我们会发现我们的鼠标不能控制光标的移动,这是因为,vim产生的时候,鼠标还没产生,所以我们无法用鼠标来控制光标

Q:那该怎么控制光标?

A:当然在命令模式下 有一些列的操作指令来控制光标

1:控制光标

【移动光标】

1)按「k」:光标上移。

2)按「j」:光标下移。

3)按「h」:光标左移。

4)按「l」:光标右移。

5)按「$」:移动到光标所在行的行尾。 (shift + 4)

6)按「^」:移动到光标所在行的行首。 (shift + 6)

7)按「gg」:移动到文本开始。

8)按「Shift+g」:移动到文本末尾。 (G)

9)按「n+Shift+g」:移动到第n行行首。 (n+G)

10)按「n+Enter」:当前光标向下移动n行。(n+回车)

11)按「w」:光标从左到右,跳到下一个单词的开头。

12)按「e」:光标从左到右,跳到下一个单词的结尾。

12)按「b」:光标从右到左,跳到上一个单词的开头

Q:hjkl不就是小键盘的上下左右吗,岂不是多此一举?

A:vim产生的时候,我们的键盘还没有小键盘这个概念,所以没有上下左右四个键位,如下:

老式键盘,hjkl上面还贴心的标注了方向

记忆技巧:

j->jump 跳下去 所以是下;k->King 所以是上;h位于四个键的最左面所以是左,同理l是右

Q:n指的什么?

A:n就是数字,比如 「n+Enter」,则在键盘上输入5 然后回车,则光标向下移动5行

Q:w e b 的应用场景是什么?

A:当代码很长的时候,我们不想一个个的移动光标,以单词为单位移动会更快!

2:控制内容

之前说过,除开控制光标,命令模式还可以控制内容,进行删除,复制粘贴,剪贴.....

①:复制粘贴

复制粘贴】

1)按「yy」:复制光标所在行

2)按「n+yy」:复制光标所在行开始往下的n行

3)按「yw」:将光标所在位置开始到字尾的字符复制 (看似多余实则为了n+yy)

4)按「n+yw」:将光标所在位置开始往后的n个字复制

5)按「p」:将已复制的内容在光标的下一行粘贴上。

6)按「np」:将已复制的内容在光标的下一行粘贴n次。

例子:

②:剪切

剪切】

1)按「dd」:剪切光标所在行。

2)按「n+dd」:剪切光标所在行开始往下的n行。

3)按「p」:将已剪切的内容在光标的下一行粘贴上。

4)按「n+p」:将已剪切的内容在光标的下一行粘贴n次。

**解释:**剪切即将内容去掉了,但是仍然可以复制

③:删除

删除】

1)按「x」:删除光标所在位置的字符。

2)按「n+x」:删除光标所在位置开始往后的n个字符。

3)按「X」:删除光标所在位置的前一个字符。

4)按「n+X」:删除光标所在位置的前n个字符。

5)按「dd」:删除光标所在行。

6)按「n+dd」:删除光标所在行开始往下的n行。

**解释:**其实用得最多的还是1和dd

④:撤销

【撤销】

1)按「u」:撤销。

2)按「Ctrl+r」:恢复刚刚的撤销。

**解释:**命令模式的任何操作后悔了,均可u进行撤销,而你对撤销后悔了,不能用u撤销(否则套娃了),而是要用Ctrl+r,这里的+,意思是Ctrl和r一起按的意思

⑤:其他操作

大小写切换】

1)按「~」:完成光标所在位置字符的大小写切换。

2)按「n~」:完成光标所在位置开始往后的n个字符的大小写切换。

【替换】

1)按「r」:替换光标所在位置的字符。

2)按「R」:替换光标所到位置的字符,直到按下「Esc」键为止。

【更改】

1)按「cw」:将光标所在位置开始到该单词的字符删除,并进入插入模式。

2)按「cnw」:将光标所在位置开始往后的n个字删除,并进入插入模式。

【翻页】

1)按「Ctrl+b」:上翻一页。

2)按「Ctrl+f」:下翻一页。

3)按「Ctrl+u」:上翻半页。

4)按「Ctrl+d」:下翻半页。

**解释:**值得一提的是

**a: 「~」:**可以长按,它会一个一个的变成大写,到合适的时候再停下来

**b:「r」:**要先按r,然后再按自己想替换的字符,就能替换了

**c:「R」:**先按R,此时就进入了替换模式,然后你可以输入什么,输入几个,就从光标往后给你替换几个,Esc退出替换模式(是的,这也是一种模式,知道就行)

d:「cw」,比如你光标是在printf的p,那么会删除掉printf,进入插入模式;若你光标是在r,这删除rintf,保留p,进入插入模式

最常用的还是「~」和「R」,其他了解即可

四:底行模式的操作

1:行号设置

【行号设置】
1)「set nu」:显示行号。
2)「set nonu」:取消行号。

打代码的都喜欢显式行号,vim也提供了!

2:保存退出

【保存退出】
1)「w」:保存文件。
2)「q」:退出vim,如果无法离开vim,可在「q」后面跟一个「!」表示强制退出。
3)「wq」:保存退出。

3:分屏

【分屏指令】

1)「vs 文件名」:实现多文件的编辑。

2)「Ctrl+w+w」:光标在多屏幕下进行切换。

「Ctrl+w+w」是在命令模式下进行,而不是底行模式!

经常需要两个文件之间来回查看,比如一个头文件一个.c文件,此时 「vs 文件名」即可,如下:

Q:那此时我怎么知道我在那个文件中啊?

A:看光标即可,如上图光标在左侧,即test.c文件中,此时你执行什么都是在对test.c执行

此时「Ctrl+w+w」则将光标转移到另一个文件中!

注意:「Ctrl+w+w」是在命令模式下进行,而不是底行模式!

4:不退出vim执行指令

执行指令】

1)「!+指令」:在不退出vim的情况下,可以在指令前面加上「!」就可以执行Linux的指令,例如查看目录、编译当前代码等。

**解释:**每次都退出vim,然后再在Linux下执行指令,过于麻烦,所以 底行模式下「!+指令」即可

例子:

我们在vim中进行ls指令的执行

会跳转到外面目录显式指令对应的内容

然后再按回车,则继续vim!

五:vim的配置

Q:哎,我觉得vim编辑代码是真的麻烦啊!又没缩进,又没符号补齐,又没提示,全靠手搓!

A:DIY配置一下vim即可

配置肯定是站在普通用户的角度进行配置的,你进公司也不可能直接就是root

1:创建.vimrc文件

每个普通用户的家目录下,需要创建一个.vimrc文件,是的,它是一个隐藏文件,如果有了,则不用再创建了,如下:

2:配置 .vimrc文件

用vim打开.vimrc文件,补上一个显示行号的指令:

然后wq退出,此时再去vim编辑任何一个文件,都会又行号了:

所以只要你想要什么,就在.vimrc文件中,进行相应的补充,不知道的指令就去网上查一查,但是想要配置出一个好用的vim是非常的不容易的,某些vim配置还需要使用插件,建议不要自己一个个去配置。

但是作为我的粉丝,博主已经准备好了❀(#^.^#):

直接执行以下指令(想在哪个用户下让vim配置生效,就在哪个用户下执行该指令,不推荐直接在root下执行):

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

注意:(centos 7 才能用这个指令 因为博主就是centos7哦)

然后按照提示输入root密码:

然后等待安装配置,最后手动执行source ~/.bashrc即可。

配置完成后,像什么自动补全、行号显示以及自动缩进什么的就都有了。

六:小技巧和易错点

1:批量注释和取消注释

①:Ctrl V

**解释:**左下角显式V-block 就对了

②:hjkl进行注释区域的选择

**解释:**博主j到了行号7的位置

③:输入大写I

**解释:**输入 I 之后呢,左下角回到插入模式,这就对了

④:输入//

⑤:点击Esc

**解释:**把所选区域都进行注释了

批量取消注释,类似道理,不再赘述

批量化取消注释:

1.ctrl v

2.hjkl

3.d

2:退出的方式

底行模式想保存退出的时候,记住是wq,而不是qw,否则会一直不让你退出,此时你qw!强行退出,下一次进来就会生成隐藏文件(交换文件)

另外 vim的时候,可以在命令模式下ZZ(两个大写的Z),也可以退出vim编辑,但是不推荐,还是老老实实的wq退出

七:操作汇总

vim命令模式各命令汇总

【移动光标】

1)按「k」:光标上移。

2)按「j」:光标下移。

3)按「h」:光标左移。

4)按「l」:光标右移。

5)按「$」:移动到光标所在行的行尾。

6)按「^」:移动到光标所在行的行首。

7)按「gg」:移动到文本开始。

8)按「Shift+g」:移动到文本末尾。

9)按「n+Shift+g」:移动到第n行行首。

10)按「n+Enter」:当前光标向下移动n行。

11)按「w」:光标从左到右,从上到下的跳到下一个字的开头。

12)按「e」:光标从左到右,从上到下的跳到下一个字的结尾。

12)按「b」:光标从右到左,从下到上的跳到上一个字的开头

【删除】

1)按「x」:删除光标所在位置的字符。

2)按「nx」:删除光标所在位置开始往后的n个字符。

3)按「X」:删除光标所在位置的前一个字符。

4)按「nX」:删除光标所在位置的前n个字符。

5)按「dd」:删除光标所在行。

6)按「ndd」:删除光标所在行开始往下的n行。

【复制粘贴】

1)按「yy」:复制光标所在行到缓冲区。

2)按「nyy」:复制光标所在行开始往下的n行到缓冲区。

3)按「yw」:将光标所在位置开始到字尾的字符复制到缓冲区。

4)按「nyw」:将光标所在位置开始往后的n个字复制到缓冲区。

5)按「p」:将已复制的内容在光标的下一行粘贴上。

6)按「np」:将已复制的内容在光标的下一行粘贴n次。

【剪切】

1)按「dd」:剪切光标所在行。

2)按「ndd」:剪切光标所在行开始往下的n行。

3)按「p」:将已剪切的内容在光标的下一行粘贴上。

4)按「np」:将已剪切的内容在光标的下一行粘贴n次。

【撤销】

1)按「u」:撤销。

2)按「Ctrl+r」:恢复刚刚的撤销。

【大小写切换】

1)按「~」:完成光标所在位置字符的大小写切换。

2)按「n~」:完成光标所在位置开始往后的n个字符的大小写切换。

【替换】

1)按「r」:替换光标所在位置的字符。

2)按「R」:替换光标所到位置的字符,直到按下「Esc」键为止。

【更改】

1)按「cw」:将光标所在位置开始到字尾的字符删除,并进入插入模式。

2)按「cnw」:将光标所在位置开始往后的n个字删除,并进入插入模式。

【翻页】

1)按「Ctrl+b」:上翻一页。

2)按「Ctrl+f」:下翻一页。

3)按「Ctrl+u」:上翻半页。

4)按「Ctrl+d」:下翻半页。

vim底行模式各命令汇总

在使用底行模式之前,记住先按「Esc」键确定你已经处于命令模式,再按「:」即可进入底行模式。

【行号设置】

1)「set nu」:显示行号。

2)「set nonu」:取消行号。

【保存退出】

1)「w」:保存文件。

2)「q」:退出vim,如果无法离开vim,可在「q」后面跟一个「!」表示强制退出。

3)「wq」:保存退出。

【分屏指令】

1)「vs 文件名」:实现多文件的编辑。

2)「Ctrl+w+w」:光标在多屏幕下进行切换。

【执行指令】

1)「!+指令」:在不退出vim的情况下,可以在指令前面加上「!」就可以执行Linux的指令,例如查看目录、编译当前代码等。

感谢该博客提供素材(#^.^#): Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)_yum install makefile-CSDN博客

相关推荐
南方以南_10 分钟前
CentOS相关操作hub(更新中)
linux·运维·centos
Clownseven1 小时前
[安全清单] Linux 服务器安全基线:一份可以照着做的加固 Checklist
linux·服务器·安全
熊猫在哪2 小时前
野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(一)conda环境搭建
linux·人工智能·python·嵌入式硬件·神经网络·机器学习·边缘计算
斯普润布特2 小时前
Centos系统资源镜像配置
linux·运维·centos
雨笋情缘2 小时前
【2025-05-22】XXL-JOB 的 8810 端口添加到 CentOS 6.5 的防火墙白名单
linux·运维·centos
xzl042 小时前
centos yum源,docker源
linux·docker·centos
力软快速开发平台2 小时前
流程自动化引擎:重塑企业数字神经回路
运维·自动化
看到我,请让我去学习2 小时前
LInux—shell编程
android·linux·chrome
孤寂大仙v2 小时前
【Linux笔记】——网络基础
linux·网络·笔记
Geek-SX3 小时前
Seata1.8.0安装部署流程linux
linux·运维·服务器