200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【二 玩转vim(vi)编辑器】三大模式及命令介绍 如何通过配置文件.vimrc配置vim编辑器

【二 玩转vim(vi)编辑器】三大模式及命令介绍 如何通过配置文件.vimrc配置vim编辑器

时间:2020-07-12 06:14:52

相关推荐

【二 玩转vim(vi)编辑器】三大模式及命令介绍 如何通过配置文件.vimrc配置vim编辑器

前言

vi编辑器是Linux下的标准编辑器,vi编辑器并非只是用来写程序,还可以用来对一些配置文件进行编辑。vim是vi的加强版,我们一般使用vim对文件进行编辑。本文介绍了vim编辑器的三大模式,以及相应的命令,最后介绍了如何通过vim编辑器的配置文件.vimrc根据自己的需求对vim进行配置。

目录

前言

一、vim三大模式的关系以及如何配置vim为默认编辑器

1. 三种模式的切换

2. 配置vim为默认编辑器

二、vim三种模式下的命令介绍

1. vim的命令模式(command mode)

(1)移动光标

(2)复制、粘贴、删除、剪切

(4)查找命令

(5)替换命令与替换模式

(6)可视化模式

(7)代码格式化

(8)切换到插入模式

(9)切换到末行模式

(9)其他操作命令(撤销反撤销、查看函数原型、保存退出)

2. vim的插入模式(Insert mode)

3. vim的末行模式(last line mode)

(1)保存与退出

(2)查找与替换

(3)vim分屏显示

(4)执行shell命令

(5)查看历史命令

三、vim配置文件.vimrc

1. 配置shell下使用vim快捷键

(1)直接输入shell命令

(2)修改配置文件.bashrc

2. 配置.vimrc实现类似于Visual Assist等功能

一、vim三大模式的关系以及如何配置vim为默认编辑器

1. 三种模式的切换

vim编辑器有三个模式:命令模式(command mode)、插入模式(Insert mode)也叫做编辑模式、末行模式(last line mode)也叫底行模式。我们在shell下输入命令vi或者vim加要编辑的文件名就可以进入vi或vim编辑器(我们一般使用vim,因为vim是vi的加强版,功能更为强大)。

我们在shell下初次进入vim是进入到vim的命令模式,在命令模式下按a/i/o/s等插入键进入插入模式,插入模式下按ESC回到命令模式。在命令模式下按 : 进入末行模式,末行模式下按两次ESC回到命令模式。末行模式和插入模式之间不能直接切换。

2. 配置vim为默认编辑器

我们在shell下敲击命令vim就可以进入vim编辑器,敲击vi默认是进入vi编辑器。我们也可以通过过配置,当输入vi的时候也进入vim编辑器,有两种方法。

① 通过别名设置

alias vi="vim"

非常简单,通过别名实现,一句话搞定。

② 执行下列指令

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 1sudo update-alternatives --set editor /usr/bin/vimsudo update-alternatives --install /usr/bin/vi vi /usr/bin/vim 1sudo update-alternatives --set vi /usr/bin/vim

二、vim三种模式下的命令介绍

学习vim可以使用官方的教程,在shell下输入命令就能查看vim教程

vimtutor

通过上下键就可以翻页学习。

1. vim的命令模式(command mode)

在shell下通过vim进入vim编辑器后就是命令模式,在命令模式下按下的键都会当作命令去执行,命令模式界面如下,最低下一行会显示文件名和当前光标所在行号。

(1)移动光标

最基本的上下左右移动,可以在教程中看到,四个方向键和k/h/j/l四个字母键。

光标移动相关的命令如下表所示:

(2)复制、粘贴、删除、剪切

① 删除与剪切

之所以把删除和剪切放在一起,是因为删除的内容会放在剪切板上,可以通过粘帖把剪切板(刚删除)的内容粘帖回来,这样删除就起到了和剪切一样的效果。其实,删除就是剪切,剪切就是删除,如果删除后不粘帖那就是删除,如果删除后进行粘贴操作,那就是剪切。

操作演示:

dw删除指令演示

ndd命令演示,先按数字键,然后快速按两次d键

② 复制与粘贴

粘贴操作既可以在复制后进行,也可以在删除(剪切)后进行

通过粘贴前后对比可以看到,粘贴会新开辟一行然后把剪切板内容复制到新开辟的这一行,而不会把原来的上一行或下一行覆盖掉,原来的下一行变为粘贴行的下一行。

(4)查找命令

比如要查找文件内所有的string

①/ 与 n 用法演示(?与N同理)

当我们按下 / 后,在最下面会变成这样

然后在 / 后面输入需要查找的字符串

按回车键可以看到,所有的printf都已经高亮显示了

按一下n可以发现,光标移动到下一个高亮显示的printf处了

② #用法演示

把光标停在要查找的字符串处,按#即可高亮选出所有,通过n和shift+n可以在被选出的字符串之间遍历。

(5)替换命令与替换模式

① 替换单个字符

找到要替换的字符,把光标停在字符前面,按r,在输入需要替换成的目标字符就可以替换成功。

② 进入替换模式

按 shift+r 也就是R就可以进入替换模式,这时会在最下面显示替换二字

现在就可以通过上下左右键来移动光标,并输入字符替换光标后面的字符,直到按Esc键退出替换模式。

(6)可视化模式

命令模式下按v就可以进入可视模式,我们在前面讲的复制粘贴删除等等操作只能是按行、按单词或者按字母操作,在可视模式下,我们可以通过选中来操作自己需要的任意个字符。可视模式的作用相当于Windows下,你按住鼠标左键并拖动,这样一个选中功能,然后在对选中的内容进行操作。

操作演示:

按下v的时候就相当于按下了鼠标的左键,通过方向键移动光标就相当于移动鼠标来选中内容,然后对选中的内容操作。

首先在命令模式下按一下v(按完就松开,不用像鼠标一样一直按着),然后按左键和下键选中几行内容

等需要的内容全部被选中后,按y进行复制,然后移动光标到需要粘贴的位置,按p

复制完成,如果需要再次操作,在按一下v,然后进行上面的操作。

(7)代码格式化

用法演示:

右移一个Tab键,按住shift,按两下>键

五行一块右移一个Tab,5>>命令,把光标移动到要右移的内容的第一行,先按一下数字5,按住shift连按两下>即可。

代码整体调整命令gg=G,按键顺序g g = shift+g

调整前代码

gg=G命令格式化之后代码

(8)切换到插入模式

s命令的演示

通过对比可以看到,竖条光标后面的字符没了,并且进入了插入模式,对应的块状光标应该是光标当前选中的字符被删除并进入插入模式。

(9)切换到末行模式

进入末行模式后,最下面会显示一个冒号:

(9)其他操作命令(撤销反撤销、查看函数原型、保存退出)

① 撤销与反撤销

② 进入man帮助手册

演示:

把光标移动到函数上,按shift+k,便可以进入man帮助手册

使用2 shift+k命令对scanf函数进入man帮助手册第二章,对库函数进入man手册第二章是进不去的,因为man的第二章是系统调用相关的,对某个函数进入man手册相应章节时应该对号入座,否则就直接shift+k不选章节。

使用3 shift+k 命令进入man手册第三章,成功进入,在左上角有数字3,F(3)表示这是man帮助手册的第三章。

③ 保存并退出

2. vim的插入模式(Insert mode)

插入模式就是编辑模式,没什么好讲的,就是开始对文件进行编辑,通过上下左右键可以移动光标,底部会有插入两个字提示当前在插入模式。但是,默认情况下编辑文件还是非常不方便的,比如不像集成开发环境那样可以自动补全括号,函数提示等,但是我们可以对vim进行配置,这些在后面一章讲解。

3. vim的末行模式(last line mode)

末行模式也叫底行模式,只能在命令模式下按冒号:进入,在插入模式下无法进入,进入末行后可以在最后一行冒号的后面输入命令。

(1)保存与退出

wq保存后退出是我们最常用的命令

(2)查找与替换

用法演示:

①s/src/des

因为这个命令是把光标所在行的第一个src替换为des,所以替换之前,一定要在命令模式下,把光标放到src处,否则执行会报错,比如要把某一行第一个int替换为char

命令模式下,先把光标移动到int处

冒号:进入末行模式,并输入命令 s/int/char,回车执行,可以看到第一个替换成char了,第二个没有替换。

② s/src/des/g

把一行所有int替换为char,同样需要在命令模式下把光标移动到相应行,否则vim不知道你要替换的字符串是哪一行的

③ %s/src/des

这个不需要在命令模式下设置光标位置,因为这个替换是对整个文件操作的,原始文件

把整个文件每一行第一个char换成int,%s/char/int,回车运行

④%s/src/des/g

整个文件所有char替换为int,最后还会提示替换了几次,替换了几行。

(3)vim分屏显示

用法演示:

① 横屏分屏

当前打开test.c,再打开文件hello.c和123.c,首先打开test.c

按:进入末行模式,输入sp hello.c

再次按:进入末行模式,输入sp不加任何文件名,它会默认打开当前光标所在的文件,也就是hello.c,光标所在的文件也就是被选中的文件,其文件名会有高亮的背光可以区分。

按住ctrl然后按两次w(Ctrl+ww)可以让光标在这三个文件中进行切换,以便于对某个文件进行修改。按一个q,会把当前选中的文件退出(文件名高亮显示、光标所在文件),qall关闭所有文件并进入shell。

② 竖屏分屏

原理和操作与横屏相同,这里只看效果,个人感觉竖屏视觉效果更好,且对比文件更方便。

(4)执行shell命令

输入!ls -l,相当于执行shell下的命令ls -l,同样可以删除文件,当我们在vim编辑器的末行模式下删除文件test后,再转到shell下查看,可以看到test文件已被删除。

(5)查看历史命令

和shell一样,在末行模式下可以通过上下键查看历史命令

三、vim配置文件.vimrc

1. 配置shell下使用vim快捷键

(1)直接输入shell命令

第一种方法直接在shell下输入命令

set -o vi

这样在shell下就可以使用vim编辑器的快捷键了,在shell下按Esc就能进入vim的命令模式,i/a/$/0等快捷键就可以使用并进入vim的插入模式,下面简单演示一下,比如我输入很长的一个命令,但是发现少写了sudo命令,如果没有vim的快捷键0(在行首插入),可能需要按好多下左键才能移到行首并添加sudo,现在我直接按Esc进入命令模式,按0就可以在行首插入。又比如我输入的命令有误,需要删除,在shell下需要一直按删除键,有了vim快捷键,直接Esc进入命令模式,然后dd删除一行。

按Esc进入命令模式(如果你按非进入插入模式的字母键没反应说明当前在命令模式了),按dd

一行命令直接被删除。

(2)修改配置文件.bashrc

使用第一种方法,每次重新开机命令就失效了,要想永久有效,可以修改配置文件.bashrc,其实我们每次开机进入shell之前,系统都会运行.bashrc这个文件,我们只要把上面的命令加到这个配置文件中,就相当于每次开机都执行了一次 set -o vi,这样就可以永久有效了。

.bashrc文件的位置,在~目录下,通过ls命令的-a选项可以看到(因为是隐藏文件),使用vim编辑器打开.bashrc并添加命令即可。

2. 配置.vimrc实现类似于Visual Assist等功能

.vimrc文件的位置在~目录,通过 ls -a 命令可以看到,使用vim编辑器打开即可编辑

vim ~/.vimrc

上面是最常用的几个配置,前三个是设置Tab缩进的距离,set nu 表示显示行号。这些都是很基本的,那么下面来点高级的,首先看下效果,我在shell下直接通过 vim 1.c 创建一个C文件

新创建的C文件直接包含了文件信息(文件名、作者、单位、时间),并且写好了main函数框架和头文件,如果你经常使用Visual Studio开发的话,应该用过Visual Assist插件吧(红苹果插件,如果你没用过的话一定要试试,非常强大,在我的资源有上传哦),这个功能有点像Visual Assist插件,非常方便,并且看起来很高级,其实这也是通过.vimrc配置出来的,具体内容如下

func SetTitle()if expand("%:e") == 'c'call setline(1,"/****************************************************************************")call append(line(".")," >File Name : ".expand("%"))call append(line(".")+1," >Author: QQ")call append(line(".")+2," >Company : QQ")call append(line(".")+3," >Create Time: ".strftime("%c"))call append(line(".")+4,"****************************************************************************/")call append(line(".")+5,"#include <stdio.h>")call append(line(".")+6,"#include <stdlib.h>")call append(line(".")+7,"int main()")call append(line(".")+8,"{")call append(line(".")+9,"")call append(line(".")+10,"return 0;")call append(line(".")+11,"}")endfunc

就是在.vimrc中加了一个函数,这个函数的功能是给新创建的C文件添加一些通用的内容。其实,这只是冰山一角,可以配置的内容非常多,如果你懒得动手,可以直接把我写好的配置文件.vimrc拷贝到你的~目录下把原来的覆盖掉即可,下面有我写好的.vimrc文件可以下载,请点链接vim编辑器配置文件.vimrc-CentOS文档类资源-CSDN下载该配置文件包含了设置行号、Tab缩进大小等基本配置,并且还有为新创建的C文件、C++文件、H头文件、更多下载资源、学习资料请访问CSDN下载频道./download/qq_43471489/85218977

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。