文章目录

 前言

一、Linux开发工具

二、vim的基本概念

三、vim的基本操作

四、vim正常模式命令集

1.进入/退出插入模式

2.移动光标

3.删除文字

4.复制粘贴

5.替换

6.撤销与恢复

7.更改

8.跳转

9.批量注释与删除

五、vim底行模式命令集

☘️1.温馨提示

☘️2.列出与取消行号

☘️3.跳转

☘️4.查找

☘️5.替换字符

☘️6.分屏操作

☘️7.不退出vim执行其他命令

☘️8.保存退出

六、vim操作总结

七、简单vim配置

1.简单介绍

2.配置原理

3.快速配置vim的安装包

八、vim高清键盘图

1.英文版

2.中文版

总结

 前言

大家好啊,我是不一样的烟火a,今天我将为大家讲解一下Linux中不得不掌握的开发工具 —— vim。文章将会为大家详细讲解vim中常用的命令,相信看完的小伙伴都能快速掌握vim的使用,由于vim的命令比较多,所以建议大家收藏反复观看。那么废话不多说,开始我们今天的内容。

一、Linux开发工具

小故事:

        在开始讲之前,先给大家讲个故事。从前有个人叫张三,他是刚接触计算机不久的一个小白,他平时写C/C++代码都是在vs2019这个软件上写的。一天,他的学长问他,张三啊,你平时写C/C++代码一般都是在什么环境下写的啊,张三毫不犹豫的回答说是vs2019;学长又问他,那你调试代码一般用的什么工具呢?张三想了想说,不就是vs2019吗;于是学长又问,那你一般编译代码用什么工具呢?张三这时心里想,这学长脑子不是被门夹了吧,这不还是vs2019吗;当学长又问,那你编译链接用的......,学长这时话还没说完,张三就抢先说vs2019,并告诉学长说都是vs2019,别再问了,于是张三用看傻子的目光送走了学长。(但是张三殊不知,学长这时也把张三当傻子在看了)

其实像vs2019这样的程序被叫做集成开发环境。

集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。

虽然集成开发环境能让我们用起来更舒服,但是它给我们带来好处的同时也带来了很多问题,比如我们下载安装的时候特别慢,有可能我们下载的一些组件到我们电脑报废了都没用过一次。所以Linux下就是把这些工具都裁开,一个工具只负责一个功能。所以在Linux下编写代码就用vim,编译代码就用gcc/g++,调试代码就用gdb,运行或者自动化构建程序就用make和makefile。(这些软件我后面的文章里面都会一一讲解,今天主要讲解编写代码的工具——vim)

二、vim的基本概念

简单介绍:vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。

强调:vim是一个编辑器,意思就是说vim只能写代码,其他的什么都干不了。所以vim工具的功能重点就是如何让我们能更快更好的写出代码。至于这个代码在编译时能否通过,就跟vim没有任何关系了。

vim下最重要的三种模式:

正常/普通/命令模式(Normal mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode插入模式(Insert mode):只有在Insert mode下,才可以做文字输入,按 [ESC ] 键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。底行模式(last line mode):文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift + " : " 即可进入该模式。如果要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes

查看vim所有的模式:

先输入命令进入vim。

命令:vim

如果你出现跟我一样的界面,那么就说明,你的Linux下是存在vim的,vim一般都会被默认安装。

我们在底行模式下输入下面指令。

命令:help vim-modes

在这里就可以查看所有的模式了。后面我会教大家如何退出vim,这里先不急。

三、vim的基本操作

进入vim:在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面。

命令:vim [文件名]

提示:如果要用vim进入的文件不存在的话,vim会自动帮你创建这个文件。

进入vim后就是这样的界面。不过有一点要特别注意,就是你进入vim之后,是处于 [正常模式],你要切换到 [插入模式] 才能够输入文字。

[正常模式] 切换至 [插入模式]:

输入a 输入i 输入o按下这几个字母中任意一个就可以进入 [插入模式]。

我们按下i后就进入了[插入模式]。

在插入模式下我们就可以写代码了。

[插入模式] 切换至 [正常模式]:

目前处于 [插入模式],就只能一直输入或者删除文字,如果想要转到[正常模式],只用按一下 [ ESC ] 键即可。

  

[正常模式] 切换至 [底行模式]:

[shift + ;], 其实就是输入 [:]

退出vim并保存文件,在 [正常模式] 下,按一下 [:] 冒号键进入 [Last line mode] ,输入:

: w (保存当前文件):q(退出当前文件):wq  (输入 [wq] ,存盘并退出vim):q!  (输入q!,不存盘强制退出vim)这里的!表示强制的意思,如果是w!,就表示强制保存。

我们这里输入 :wq 回车一下,保存并退出文件。

我们用cat命令打印出文件内容,证明保存成功。(并且,vim自动为我们创建了这个文件)

四、vim正常模式命令集

1.进入/退出插入模式

提示:进入vim,默认处于正常模式。

插入模式:

按 [ i ] 切换进入插入模式 [ insert mode ],按“i”进入插入模式后是从光标当前位置开始输入文件。按 [ a ] 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字。按 [ o ] 进入插入模式后,是插入新的一行,从行首开始输入文字。

从插入模式切换为命令模式:

按 [ ESC ] 键。

2.移动光标

移动光标:

vim 可以直接用键盘来上下左右移动,但是正规的 vim  是用小写英文字母 [ h ]、[ j ]、[ k ]、 [ l ],分别控制光标左、下、上、右移一格。但是要注意,只有在普通模式下才可以通过字母来移动光标哦。(这里提供一个记忆方法, [ h ]、[ j ]、[ k ]、 [ l ] 这四个字母是顺序排列在一行的,[ h ]是最左边的那个字母,所以就对应左移;[ l ]是最右边的那个字母,所以就对应右移;[ j ]可以看成单词jump(跳)的首字母,而跳是往下跳,所以就对应下移;[ k ]可以看成单词king(国王)的首字母,而国王是高高在上的,所以就对应上移)按 [ G ]:移动到文章的最后。按 [ $ ]:移动到光标所在行的“行尾”。按「^」:移动到光标所在行的“行首”。按「w」:光标跳到下个字的开头。按「e」:光标跳到下个字的字尾。按「b」:光标回到上个字的开头。按「#l」:光标移到该行的第#个位置,如:5l按[gg]:进入到文本开始。按[shift+g]:进入文本末端。按 [ ctrl ] + [ b ] :屏幕往“后”移动一页。按 [ ctrl ] + [ f ] :屏幕往“前”移动一页。按 [ ctrl ] + [ u ] :屏幕往“后”移动半页。按 [ ctrl ] + [ d ] :屏幕往“前”移动半页。提示:一定要看清是大写还是小写字母哦。

3.删除文字

删除文字 :

[ x ]:每按一次,删除光标所在位置的一个字符。[ #x ]:例如,[ 6x ] 表示删除光标所在位置的“后面(包含自己在内)”6个字符。[ X ]:大写的X,每按一次,删除光标所在位置的“前面”一个字符。[ #X ]:例如,[ 20X ] 表示删除光标所在位置的“前面”20个字符。[ dd ]:删除光标所在行。[ #dd ]:从光标所在行开始删除#行。

4.复制粘贴

复制:

[ yw ]:将光标所在之处到字尾的字符复制到缓冲区中。

举例:

我在这个位置按下yw,就可以复制printf这个字了。

然后我们粘贴,就把我们复制的printf粘贴出来了。

[ #yw ]:复制#个字到缓冲区。

举例:

我们在这个位置按下2yw,就可以复制 hello 和 vim 这2个字了。

 

然后粘贴。

[ yy ]:复制光标所在行到缓冲区。[ #yy ]:例如,[ 6yy ] 表示拷贝从光标所在的该行“往下数”6行文字。[ p ]:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。[ #p ]:例如,[ 100p ] 表示将缓冲区内的所有内容粘贴100次到光标位置。

5.替换

替换:

[ r ]:替换光标所在处的字符。

举例:

我们在光标这个位置先按下r,再按下w,就可以把字符p替换成字符w。

替换完成。

 

[ R ]:替换光标所到之处的字符,直到按下 [ ESC ] 键为止。(按下 [ R ] 进入替换模式,只要不退出就可以一直替换,按下 [ ESC ] 退出替换模式)

举例:

我们这个位置按下 [ R ] 就可以开始替换。

进入替换模式。

 替换完成,按下 [ ESC ] 返回普通模式。

[ shift + ~ ]:大小写相互转换,将光标位置当前的字母进行大小写转换,可以快速的转换大小写字母。

6.撤销与恢复

撤销上一次操作:

[ u ]:如果您误执行一个命令,可以马上按下 [ u ],回到上一个操作。按多次“u”可以执行多次恢复。[ ctrl + r ]: 撤销恢复。

注意:如果保存退出vim后,下次再进来就撤销不了上次的操作了,只能撤销当前进入vim的所有操作。

7.更改

更改:

[ cw ]:更改光标所在处的字到字尾处。

举例:

在此处按下 [ cw ],vim就会把当前字删除,并且进入插入模式。

删除当前字,进入插入模式。

[ c#w ]:例如,[ c2w ] 表示更改2个字。

举例:

在此处按下 [ c2w ],vim就会删除2个字(包括当前字),并且进入插入模式。

删除2个字,进入插入模式。

8.跳转

跳至指定的行:

[ #G ]:例如,[ 15G ],表示移动光标至文章的第15行行首。

9.批量注释与删除

如何批量注释:

Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的 I 进入行首插入模式输入注释符号,如 // 或 #,输入完毕之后,按两下 ESC,Vim 会自动将你选中的所有行首都加上注释,保存退出完成注释。

举例:

先Ctrl + v 进入块选择模式。

移动光标选择要注释的行。

按下大写的i进入行首插入模式。

输入注释符号。

按下两下ESC。

取消注释:

Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意 // 要选中两个,选好之后按 d 即可删除注释,ESC 保存退出。

Ctrl + v 进入块选择模式。

 

选中你要删除的行首的注释符号。

按 d 删除注释。

五、vim底行模式命令集

☘️1.温馨提示

提示:在使用底行模式之前,请记住先按 [ ESC ] 键确定您已经处于正常模式,再按 [ : ]冒号即可进入底行模式。

☘️2.列出与取消行号

列出行号:

[ set nu ]:输入 [ set nu ] 后,会在文件中的每一行前面列出行号。

举例:

在底行输入 [ set nu ] 后,按下回车即可设置行号。

取消行号:

[ set nonu ]:输入 [ set nonu ] 后,将会取消设置的行号。

举例:

在底行输入 [ set nonu ] 后,按下回车即可取消设置的行号。

☘️3.跳转

跳到文件中的某一行:

[ # ]:[ # ] 号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字12, 再回车,就会跳到文章的第12行。

举例:

光标初始位置在第三行。

我们在底行输入12,即可将光标跳转到12行。

☘️4.查找

查找字符:

[ /关键字 ]:先按 [ / ] 键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按  [ n ] 会往后寻找到您要的关键字为止。[ ?关键字 ]:先按 [ ? ] 键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直 按 [ n ] 会往前寻找到您要的关键字为止。

☘️5.替换字符

替换字符:

格式:[ range ] [ s ] [ / ] [ pattern ] [ / ] [ string ] [ / ] [flags] [count]

解释:

[range] 表示区间,% 用于表示全文;2,3 表示从第2行开始到第3行。[ s ] 表示substitute,也就是替换的意思。[ / ] 表示分隔符。[ pattern ] 表示字符串匹配规则,要匹配什么样的字符串 , 比如^a 表示以a字符起始的字符串。[ string ] 表示要将匹配到的字符串替换为的新的string字符串。[flags] s_flags中,g比较常用,通常使用g表示全部替换,默认如果不给的话,表示只替换一次。[count] 表示在一行中匹配多少次,很少会用到....如果想要将文件中所有 Hello 替换为 abcdef 则命令为: %s/Hello/abcdef/g

举例:

初始状态。

将文件中第11行~12行的所有 Hello 替换为 abcdef。

 

如果想要将文件中所有 Hello 替换为 abcdef。则用%即可表示全文范围。

命令:%s/Hello/abcdef/g

☘️6.分屏操作

分屏操作:

[ vs ] [ 文件名 ]:在底行模式下输入[ vs ] [ 文件名 ],就可以实现分屏操作了。分屏后光标在哪个文件,就进行对哪个文件的操作分屏后进入底行,光标在哪个文件,就处于哪个文件的底行。如何切换屏幕(文件):[ctrl + 按2下w] 

举例:

底行输入要添加的文件。

实现分屏,如果file.c文件不存在,vim将会自动创建这个文件。

[ctrl + 按2下w] 切换文件。

还可以用 [#yy] 复制test.c文件的内容,然后切换文件,用 [p] 复制到file,c文件上。

 想要退出哪个文件就在哪个文件的底行输入 [wq] 即可保存退出。

☘️7.不退出vim执行其他命令

不退出vim执行其他命令:

[! + 对应命令]:可以不用退出vim就执行其他命令。按回车,即可快速重新回到vim。常见情形:执行命令行命令、编译、运行、查看man等。注意:这里的 [ ! ] 与强制符号 [ ! ] 不一样,这里的 [ ! ] 是放在命令首位,而强制符号是放在命令末尾。

举例:

查看man手册。

 按q退出man手册。

按下回车快速返回vim。

不退出vim,编译当前代码。

不退出vim,用ls查看当前目录下的文件。

发现当前目录下存在,刚才编译好的可执行文件。

不退出vim,运行编译好的可执行文件。

成功运行。

按下回车,快速返回vim。

☘️8.保存退出

[底行模式] 切换至 [正常模式]:

按2下ESC。或者删除 [ : ] 冒号。执行完一条命令后自动返回正常模式。

保存文件:

[ w ]: 在冒号输入字母 [ w ] 就可以将文件保存起来。

离开vim:

[ q ]:按 [ q ] 就是退出,如果无法离开vim,可以在 [ q ] 后跟一个 [ ! ] 强制离开vim。[ wq ]:一般建议离开时,[ q ] 搭配 [ w ] 一起使用,这样在退出的时候还可以保存文件。

六、vim操作总结

最主要的三种模式

正常模式 插入模式 底行模式一共有12种总模式,其他模式大家可以自信查阅,因为用得不多,这里就不过多讲述。

简略汇总图:

温馨提示:

vim的操作太多,我们是不可能完全记住,想要记住的话,只有我们每天不断的用vim,才能更好的让我们熟悉vim的操作。

七、简单vim配置

1.简单介绍

其实我们上面讲的这些都是在没有配置的vim下讲的,细心的小伙伴一定会发现,其实在这样的vim跟在记事本上写代码没有多大区别,既没有自动对齐,也没有自动补全功能。如果你想要让你的vim拥有这些功能,就必须给vim配置一下。

2.配置原理

配置的时候我们需要在自己的用户家目录下创建一个 " .vimrc " 文件。

进入用户家目录命令:

命令:cd ~

一般没有配置过vim的用户,家目录下都没有 " .vimrc " 这个文件。所以需要我们自己创建一个。

       

 配置原理就是:当我们打开vim的时候,vim就会自动读取你配置的这个 " .vimrc " 这个文件,然后就可以实现你想要的效果了。

在我们配置之前先看看我们vim原始的效果。

下面我们开始配置我们的vim。

这是我提供给大家的一些简单的配置,需要哪个就把该命令复制到你的 " .vimrc " 文件,然后保存即可。(如果需要更多的配置命令,大家可以在网上搜索一下)

syntax on "高亮代码"

set nu "显示行号"

set relativenumber "以当前行号为基准显示行号"

set cursorline "在当前光标位置显示一条线

set tabstop=4 "tab长度设置为4"

""set softtabstop=4

set shiftwidth=4 "设置缩进空格数为4"

set autoindent "设置自动缩进,每行缩进值与上一行相等"

set nobackup "覆盖文件时不备份"

set cursorline "突出显示当前行"

set ruler "在右下角显示光标位置的状态行"

set autoindent "自动缩进"

set noexpandtab " 不要用空格代替制表符

set hlsearch "搜索逐字符高亮

set foldmethod=marker "代码折叠

set cmdheight " 命令行(在状态行下)的高度,默认为1,这里是2

set mouse=a " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)

set showmatch " 高亮显示匹配的括号

set enc=utf-8 "编码设置

set langmenu=zh_CN.UTF-8 "语言设置

set helpheight=15 "帮助的行高

set helplang=cn "帮助语言

set fillchars=vert:\ ,stl:\ ,stlnc:\ " 在被分割的窗口间显示空白,便于阅读

set showmatch " 高亮显示匹配的括号

set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离

set smartindent " 为C程序提供自动缩进

我们这里先来配置一下行号。

配置完后,从新进入vim,就可以自动显示行号了。

 如果还想配置其他的功能,只用把需要的功能对应的命令复制粘贴到你的 " .vimrc " 文件上,然后保存即可。这里就不过多讲解了。

如果你还想要让自己vim功能更加的强大,那么还需要再创建一个 " .vim " 目录,用于存放各种的插件。你可以在网上把你想要的插件下下来,然后放进 " .vim " 目录,就可以拥有对应的功能了。

3.快速配置vim的安装包

虽然上面讲了vim配置的原理,也讲了该如何配置。但是如果自己去配置的话始终还是太麻烦了,自己需要的功能对应的命令还要一个一个的复制粘贴过来;如果你还要下插件的话,有可能你自己在网上找的插件下下来后,你自己都找不到它在哪。以至于让自己在配置vim上花费很多时间。

于是,我为了帮助大家节省时间,不想让大家花费太多的时间用在vim配置上,于是我花了3天3夜的时间在gitee上面帮大家找到了一个十分美观简洁,且方便好用的vim配置安装包(支持显示行号、自动补全、自动对齐等常用功能)

配置前的效果:

配置后的效果:

 如何安装:

在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 "不推荐" 直接在 root 下执行)

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

注意:此安装包目前只支持 Centos7 x86_64,不支持Ubuntu。

举例:

复制上面的命令,粘贴到命令行,然后按回车,最后输入你的root密码后即可开始安装。

正在安装中。

安装完成。

安装完成后,执行以下命令后,配置就可以生效了。

命令;source ~/.bashrc

安装完后,用户家目录下就会多出这几个文件和目录。 其中install.sh是使用这些功能需要的脚本,不想用的时候删去即可。

如何卸载:

在安装了 VimForCpp 的用户执行以下命令即可卸载。

命令:bash ~/.VimForCpp/uninstall.sh

额外补充:

这个安装包里面vim的配置,默认是将缩进设置为2的,如果觉得用起来不习惯可以自己改成4。

下面为步骤:

还是在家目录下进入" .vimrc " 这个文件,安装包里面自己就会帮你创建。

找到第50行,将这三行的2都改成4即可。

更改完后保存退出即可。

安装包来源:VimForCpp: 快速将vim打造成c++ IDE (gitee.com)

安装包里面的详细内容和所有功能可以在这里查看。

总结:

vim的具体配置我们不关心,因为比较麻烦。但是我们需要一个不错的配置,所以需要稍微了解一下vim配置的原理。一般在配置的时候,是你自己配置你自己的,在当前用户下配置完成后,只有在当前用户下能起作用,对其他用户是没有影响的。但是强烈建议不要在root用户下配置,因为如果在普通用户下配置错了,我们可以直接把普通用户删掉即可;但是如果在root下配置错了后,就会很麻烦了。

八、vim高清键盘图

1.英文版

2.中文版

总结

到这里我们vim的讲解就结束了,相信大家都能够看懂,希望大家在学习vim的期间里一定要多使用vim,这样才能更快的让自己掌握vim的使用。如果大家有什么解决不了的问题,欢迎大家评论区留言或者私信告诉我。如果感觉对自己有用的话,可以点个赞或关注鼓励一下博主,我会越做越好的,感谢各位的支持。

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: