转载自https://developer.aliyun.com/article/1154538

一、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"

 

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

 

② 执行下列指令

 

1. sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 1
2. sudo update-alternatives --set editor /usr/bin/vim
3. sudo update-alternatives --install /usr/bin/vi vi /usr/bin/vim 1
4. sudo update-alternatives --set vi /usr/bin/vim

 

 

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

 

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

 

vimtutor

 

 

 

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

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

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

 

(1)移动光标

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

 

 

 

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

命令 作用
h/左键 光标左移一个字符
j/下键 光标下移一个字符
k/上键 光标上移一行
l(小写L)/右键 光标下移一行
0 (数字0) 移动到光标所在行行首
$ (shit + 4) 移动到光标所在行行尾
gg 移动到整个文件的首部(文件的第一个字符处)
shift+g   (G)

移动到整个文件的尾部

(G可以是shift+g,也可以是CapsLk开启大写键后直接按G键)

n shift+g   (nG)

移动到第n行

(先按数字键指定n,然后按住shift键不放,同时按g键)

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

① 删除与剪切

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

命令 作用

x  (小写x)

删除光标后面的字符
d+l(小写L)/右键
shift+x (大写X)

删除光标前面的字符

(X可以是shift+x,也可以是CapsLk开启大写键后直接按X键)

d+h/左键
d+方向键(箭头或hjkl) 删除相应方向的字符或行(不建议用)
dw 删除光标所在位置到光标所在单词的尾部
d shift+4  (d+$)

删除光标所在位置一直到行尾

(D可以是shift+d,也可以是CapsLk开启大写键后直接按D键)

shift+d  (D)
dd 删除一整行
ndd 删除光标所在行开始的n行

操作演示:

dw删除指令演示

 

 

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

 

 

   

 

 

② 复制与粘贴

 

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

 

命令 作用
yy 复制光标所在行到剪切板
p (小写p) 将剪切板内容粘贴到光标所在位置的下一行
P (大写P) 将剪切板内容粘贴到光标所在位置的上一行

 

 

 

 

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

(4)查找命令

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

命令 用法及解释
/ 命令模式下,直接输入 /string ,回车,从文件顶部开始查找文件内所有string并高亮显示
? (shift+/) 命令模式下,直接输入?string,回车,从文件底部开始查找文件内所有string并高亮显示
# 把光标移动到要查找的字符串string上,按#便可以查找所有string并高亮显示
n 向下遍历查找到的字符串(依次选中下一个高亮显示的string)
N (shift+n) 向上遍历查找到的字符串(依次选中上一个高亮显示的string)

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

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

 

 

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

 

 

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

 

 

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

 

 

 

② #用法演示

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

 

 

 

 

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

命令 作用
r 在输入一个字符c,就可以将光标后面的一个字符替换为c
shift+r (R) 进入替换模式
Esc 退出替换模式

① 替换单个字符

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

 

 

 

 

 

② 进入替换模式

 

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

 

 

 

 

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

(6)可视化模式

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

命令 作用
v 命令模式下按v进入可视模式,通过移动光标来选中内容
y 复制
d 删除(剪切)
p 在光标位置后面粘贴
P (shift+p) 在光标位置前面粘贴

操作演示:

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

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

 

 

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

 

 

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

 

 

 

 

 

 

..................

 posted on 2024-06-25 16:22  哦吼厉害哟  阅读(24)  评论(0编辑  收藏  举报