5.vim

发布时间 2023-08-08 14:19:40作者: CodeMagicianT

1.vim简单介绍

vi是”visual interface”的简称,它在Linux上的地位就仿佛Windows中的记事本一样。它可以执行编辑、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。vi是一个文本编辑程序,没有菜单,只有命令。

vim更高级一些,可以理解是vi的高级版本。

vim需要自行安装,在shell中输入vimtutor命令可以查看相关的帮助文档。

2.vim的三种模式

Vi有三种基本工作模式: 命令模式、文本输入模式、末行模式。

三种工作模式的切换如图所示,从下图中可以看出编辑模式和末行模式之间不能相互切换,必须经过命令模式。

image-20230807144405232

3.vim基本操作

3.1命令模式下的操作

用户按下esc键,就可以使vi进入命令模式下;当使用vi打开一个新文件开始也是进入命令模式下。

保存退出

快捷键 操作
ZZ 保存退出

代码格式化

快捷键 操作
gg=G 代码的格式化

光标移动

快捷键 操作
k 光标上移
j 光标下移
h 光标左移
l 光标右移
w 移动一个单词
gg 光标移动到文件开头
G 光标移动到文件末尾
0 光标移到到行首
$ 光标移到到行尾
nG 行跳转,例12G,跳到12行处

删除命令

快捷键 操作
x 删除光标后一个字符,相当于 Del
X 删除光标前一个字符,相当于Backspace
dw 删除光标前一个字符,相当于 Backspace
d0 删除光标前本行所有内容,不包含光标所在字符
D[d$] 删除光标后本行所有内容,包含光标所在字符
dd 删除光标所在行(本质其实是剪切)
ndd 从光标当前行向下删除指定的行数,如15dd
v/ctrl+v 使用h、j、k、l移动选择内容,然后按d删除其中ctrl+v是列模式,v为非列模式

撤销和反撤销命令

快捷键 操作
u 一步一步撤销,相当于word文档的ctrl+z
ctrl-r 反撤销,相当于word文档的ctrl+y

复制粘贴

快捷键 操作
yy 复制当前行
nyy 复制n行,如10yy
p 在光标所在位置向下新开辟一行,粘贴
P 在光标所在位置向上新开辟一行,粘贴
剪切操作 按dd或者ndd删除,将删除的行保存到剪贴板中,然后按p/P就可以粘贴了

可视模式

快捷键 操作
v/ctrl+v 使用h、j、k、l移动选择内容;
使用d删除
使用y复制
使用p粘贴到光标的后面
使用P粘贴到光标的前面

替换操作

快捷键 操作
r 替换当前字符
R 替换当前行光标后的字符

查找命令

快捷键 操作
/ /xxxx,从光标所在的位置开始搜索,按n向下搜索,按N向上搜索
? ?xxxx, 从光标所在的位置开始搜索, 按n向上搜索, 按N向下搜索
# 将光标移动到待搜索的字符串上, 然后按n向上搜索,但N向下搜索
shift+k 在待搜索的字符串上按shift+k或者K,可以查看相关的帮助文档

3.2切换到文本输入模式

从命令模式切换到文本输入模式只需输入如下命令:

快捷键 操作
i 在光标前插入
a 在光标后插入
I 在光标所在行的行首插入
A 在光标所在行的行尾插入
o 在光标所在的行的下面新创建一行,行首插入
O 在光标所在的行的上面新创建一行,行首插入
s 删除光标后边的字符,从光标当前位置插入
S 删除光标所在当前行,从行首插入
按列模式插入 先按ctrl+v进入列模式,按hjkl移动选定某列,按I或者shift+i向前插入,然后插入字符,最后按两次esc

3.3末行模式下的操作

从命令模式切换到末行模式, 输入冒号(?

保存退出

快捷键 操作
q 退出
q! 强制退出,不保存修改内容
w 保存修改内容, 不退出
wq 保存并退出
x 相当于wq

替换操作

下面表格中old表示原字符串, new表示新字符串

快捷键 操作
?/old/new/ 光标所在行的第一个old替换为new
?/old/new/g 光标所在行的所有old替换为new
:m, ns/old/new/g 将第m行至第n行之间的old全部替换成new
:%s/old/new/g 当前文件的所有old替换为new
:1,$s/old/new/g 当前文件的所有old替换为new
:%s/old/new/gc 同上,但是每次替换需要用户确认

快速翻屏

快捷键 操作
ctrl + u 向下翻半屏(up)--光标向上移动
ctrl + d 向上翻半屏(down)--光标向下移动
ctrl + f 向上翻一屏(front)
ctrl + b 向后翻一屏(back)

在末行模式下执行shell命令

!shell命令

按下两次esc可以回到命令模式

分屏操作

■在打开文件之后分屏:

快捷键 操作
sp 当前文件水平分屏
vsp 当前文件垂直分屏
sp 文件名 当前文件和另一个文件水平分屏
vsp 文件名 当前文件和另一个文件垂直分屏
ctrl-w-w 在多个窗口切换光标
wall/wqall/xall/qall/qall! 保存/保存退出/保存退出/退出/强制退出分屏窗口

■在打开文件之前分屏:

分屏: vim -on file1 file2 …

垂直分屏: vim -On file1 file2…

注意: n可以省略,有几个文件就分几屏

从末行模式切换回命令模式

按两次ESC,退格(backspace)或者回车键

3.4vim的配置文件

用户级别配置文件

~/.vimrc, 修改用户级别的配置文件只会影响当前用户,不会影响其他的用户。

例如: 在用户的家目录下的.vimrc文件中添加

set tabstop=4 ----设置缩进4个空格

set nu ----设置行号

set shiftwidth=4 ---设置gg=G缩进4个空格, 默认是缩进8个空格

系统级别配置文件

/etc/vim/vimrc,修改了系统级别的配置文件将影响系统下的所有用户。

说明: 由于linux是多用户操作系统,建议只在用户级别的配置文件下进行修改,不要影响其他用户。