目录
1、vi/vim键盘图
2、基本命令
i
:在当前光标位置插入文本。x
:删除当前光标所在位置的字符。:w
:保存文件。:q
:退出Vim编辑器。:q!
:强制退出Vim编辑器,不保存文件。:wq
:保存文件并退出Vim编辑器。
3、光标移动命令
在编辑文本时,移动光标是一个常见的操作。以下是一些常用的光标移动命令:
h
:将光标向左移动一个字符。j
:将光标向下移动一行。k
:将光标向上移动一行。l
:将光标向右移动一个字符。w
:将光标移动到下一个单词的开头。e
:将光标移动到当前单词的末尾。b
:将光标移动到上一个单词的开头。0
:将光标移动到当前行的开头。$
:将光标移动到当前行的末尾。G
:将光标移动到文件的末尾。gg
:将光标移动到文件的开头。/<pattern>
:向下搜索<pattern>
。
4、文本编辑命令
dd
:删除当前行。yy
:复制当前行。p
:粘贴已复制或删除的文本。u
:撤销上一次操作。Ctrl-r
:重做上一次操作。r
:替换当前光标所在位置的字符。c
:删除从当前光标位置到指定位置的文本并进入插入模式。v
:进入可视模式,选择文本。:s/<old>/<new>/g
:将当前行中的<old>
替换为<new>
。:%s/<old>/<new>/g
:将整个文件中的<old>
替换为<new>
。
5、插入模式命令
在插入模式中,您可以输入文本。以下是一些插入模式中的常用命令:
Esc
:退出插入模式。Ctrl-h
:删除光标左侧的字符。Ctrl-w
:删除光标左侧的单词。Ctrl-u
:删除当前行的所有文本。Ctrl-a
:插入文本到行首。Ctrl-e
:插入文本到行尾。Ctrl-t
:插入一个制表符。
6、宏命令
宏是一种将多个操作序列记录并重复执行的方法。以下是一些宏命令:
qa
:开始录制宏并将其存储在寄存器a
中。q
:停止录制宏。@a
:执行存储在寄存器a
中的宏。@@
:重复上一次执行的宏。
7、分屏命令
Vim可以在窗口中分屏显示文件。以下是一些分屏命令:
:sp
:水平分屏当前窗口。:vsp
:垂直分屏当前窗口。Ctrl-w h
:将光标移到左侧窗口。Ctrl-w j
:将光标移到下方窗口。Ctrl-w k
:将光标移到上方窗口。Ctrl-w l
:将光标移到右侧窗口。Ctrl-w +
:增加当前窗口的高度。Ctrl-w -
:减小当前窗口的高度。
8、多文件编辑命令
在Vim中,您可以编辑多个文件。以下是一些多文件编辑命令:
:e <filename>
:打开指定的文件。:tabnew <filename>
:在新选项卡中打开指定的文件。:tabnext
:切换到下一个选项卡。:tabprev
:切换到上一个选项卡。:tabclose
:关闭当前选项卡。
9、其他命令
以下是一些其他常用的Vim命令:
:set number
:显示行号。:set nonumber
:隐藏行号。:set expandtab
:使用空格代替制表符。:set tabstop=4
:设置制表符宽度为4个字符。:set hlsearch
:高亮显示搜索结果。:set nohlsearch
:取消高亮显示搜索结果。:set background=dark
:将背景设置为暗色。:set background=light
:将背景设置为亮色。
10、vim打开文件
Vi 使用的选项 | 说明 |
---|---|
vim filename | 打开或新建一个文件,并将光标置于第一行的首部 |
vim -r filename | 恢复上次 vim 打开时崩溃的文件 |
vim -R filename | 把指定的文件以只读方式放入 Vim 编辑器中 |
vim + filename | 打开文件,并将光标置于最后一行的首部 |
vi +n filename | 打开文件,并将光标置于第 n 行的首部 |
vi +/pattern filename | 打幵文件,并将光标置于第一个与 pattern 匹配的位置 |
vi -c command filename | 在对文件进行编辑前,先执行指定的命令 |
11、命令模式
1.光标移动
快捷键 | 功能描述 |
---|---|
jkhl | 基本上下左右 |
gg | 光标移动到文档首行 |
G | 光标移动到文档尾行 |
^或_ | 光标移动到行首第一个非空字符 |
home键或0或者g0 | 光标移动到行首第一个字符 |
g_ | 光标移动到行尾最后一个非空字符 |
end或或者 g | 光标移动到行尾最后一个字符 |
gm | 光标移动到当前行中间处 |
b/B | 光标向前移动一个单词(大写忽略/-等等特殊字符) |
w/W | 光标向后移动一个单词(大写忽略/-等等特殊字符) |
e/E | 移到单词结尾(大写忽略/-等等特殊字符) |
ctrl+b或pageUp键 | 翻屏操作,向上翻 |
ctrl+f或pageDn键 | 翻屏操作,向下翻 |
数字+G | 快速将光标移动到指定行 |
`. | 移动到上次编辑处 |
数字+上下方向键 | 以当前光标为准,向上/下移动n行 |
数字+左右方向键 | 以当前光标为准,向左/右移动n个字符 |
H | 移动到屏幕顶部 |
M | 移动到屏幕中间 |
L | 移动到屏幕尾部 |
z+Enter键 | 当前行在屏幕顶部 |
z+ . | 当前行在屏幕中间 |
z+ - | 当前行在屏幕底部 |
shift+6 | 光标移动到行首 |
shift+4 | 光标移动到行尾 |
- | 移动到上一行第一个非空字符 |
+ | 移动到下一行第一个非空字符 |
) | 向前移动一个句子 |
( | 向后移动一个句子 |
} | 向前移动一个段落 |
{ | 向前移动一个段落 |
count l | 移动到count 列 |
counth | 向左移动count 字符 |
countl | 向右移动count字符 |
countgo | 移动到count字符 |
2.选中内容
快捷键 | 功能描述 |
---|---|
v | 进行字符选中 |
V 或shift+v | 进行行选中 |
gv | 选中上一次选择的内容 |
o | 光标移动到选中内容另一处结尾 |
O | 光标移动到选中内容另一处角落 |
ctr + V | 进行块选中 |
3.复制(配合粘贴命令p使用)
快捷键 | 功能描述 |
---|---|
y | 复制已选中的文本到剪贴板 |
n+yy | 复制光标所在行,此命令前可以加数字 n,可复制多行 |
yw | 复制光标位置的单词 |
ctrl+v + 方向键+yy | ctrl+v,并按方向键选中区块,按下yy复制 |
4.剪切
快捷键 | 功能描述 |
---|---|
dd | 剪切光标所在行 |
数字+dd | 以光标所在行为准(包含当前行),向下剪切指定行数 |
D | 剪切光标所在行 |
5.粘贴
快捷键 | 功能描述 |
---|---|
p | 将剪贴板中的内容粘贴到光标后 |
P(大写) | 将剪贴板中的内容粘贴到光标前 |
6.删除
快捷键 | 功能描述 |
---|---|
x | 删除光标所在位置的字符 |
X(大写) | 删除光标前一个字符 |
dd | 删除光标所在行,删除之后,下一行上移 |
D | 删除光标位置到行尾的内容,删除之后,下一行不上移 |
ndd | 删除当前行(包括此行)后 n 行文本 |
dw | 移动光标到单词的开头以删除该单词 |
dG | 删除光标所在行一直到文件末尾的所有内容 |
:a1,a2d | 删除从 a1 行到 a2 行的文本内容 |
7.撤销/恢复
快捷键 | 功能描述 |
---|---|
u | 撤销 |
ctrl+r | 恢复 |
U(大写) | 撤销所有编辑 |
8.字符转换
快捷键 | 功能描述 |
---|---|
~ | 转换大小写 |
u | 变成小写 |
U | 变成大写 |
9.编辑命令的快捷键
快捷键 | 功能描述 |
---|---|
↑或ctr + p | 上一条命令 |
↓或ctr + n | 下一条命令 |
ctr + b | 移动到命令行开头 |
ctr + e | 移动到命令行结尾 |
ctr + ← | 向左一个单词 |
ctr + → | 向右一个单词 |
12、末行模式(: xxx命令)
1.保存/退出文件操作
命令 | 功能描述 |
---|---|
:wq | 保存并退出 Vim 编辑器 |
:wq! | 保存并强制退出 Vim 编辑器 |
:q | 不保存就退出 Vim 编辑器 |
:q! | 不保存,且强制退出 Vim 编辑器 |
:w | 保存但是不退出 Vim 编辑器 |
:w! | 强制保存文本 |
:w filename | 另存到 filename 文件 |
x! | 保存文本,并退出 Vim 编辑器 |
ZZ | 直接退出 Vim 编辑器 |
2.查找:“/关键词”
在查找结果中,用N
、n
可以切换上下结果;输入nohl
,可以取消高亮
快捷键 | 功能描述 |
---|---|
/abc | 从光标所在位置向前查找字符串 abc |
/^abc | 查找以 abc 为行首的行 |
/abc$ | 查找以 abc 为行尾的行 |
?abc | 从光标所在位置向后查找字符串 abc |
n或; | 向同一方向重复上次的查找指令 |
N或, | 向相反方向重复上次的查找指定 |
3.替换
快捷键 | 功能描述 |
---|---|
r | 替换光标所在位置的字符 |
R | 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按“Esc”可以结束 |
:s/a1/a2 | 替换当前光标所在行第一处符合条件的内容 |
:s/a1/a2/g | 替换当前光标所在行所有的 a1 都用 a2 替换 |
:%s/a1/a2 | 替换所有行中,第一处符合条件的内容 |
:%s/a1/a2/g | 替换所有行中,所有符合条件的内容 |
:n1,n2 s/a1/a2 | 将文件中 n1 到 n2 行中第一处 a1 都用 a2 替换 |
:n1,n2 s/a1/a2/g | 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换 |
4.行号显示
“: set nu”;
行号显示:set nu
取消行号显示::set nonu
5.文件切换
使用vim打开多个文件后,在末行模式下可以进行切换。
查看当前已经打开的所有文件::files(%a表示激活状态,#表示上一个打开的文件)
切换到指定文件::open 文件名
切换到上一个文(back previous)::bp
切换到下一个文件(back next)::bn
13、编辑模式
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入,光标后的文本相应向右移动 |
I | 在光标所在行的行首插入,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令 |
o | 在光标所在行的下插入新的一行。光标停在空行首,等待输入文本 |
O(大写) | 在光标所在行的上插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入 |
A | 在光标所在行的行尾插入,相当于光标移动到行尾再执行 a 命令 |
esc键 | 退出编辑模式 |
14、扩展
1.代码颜色显示:“:syntax on/off”
2.vim内置计算器:
a.进入编辑模式
b.按“ctrl+r,光标变成引号,,输入=,光标转到最后一行
c.输入需要计算的内容,按下enter后,计算结果回替代上一步中的引号,光标恢复
3.vim的配置
a.文件打开时,末行模式下输入的配置为临时配置,关闭文件后配置无效
b.修改个人配置文件,可以永久保存个人配置(~/.vimrc,如果没有可以自行创建)
c.修改全局配置文件,对每个用户生效(vim自带,/etc/vimrc)
注:个人配置文件优先级更高,当个人配置和全局配置发生冲突时,系统以当前用户的个人配置文件为准
4.异常退出
在编辑文件后,未正常保存退出时,会产生异常退出交换文件(.原文件名.swp)
将交换文件删除后,再次打开文件时,无提示:“#rm -f .原文件名.swp”
5.别名机制:自定义指令
Linux中,存在一个别名映射文件: ~/.bashrc
修改文件内容,可以自定义指令,重新登录账号后生效
15、文件快捷方式
对于深层文件,可以创建文件快捷方式,便于后续操作:#ln -s 源路径 新路径
16、 退出方式
(1)在vim中退出文件编辑模式,可以使用:q或者:wq
(2)建议使用:x:使用效果等同于wq,如果文件有改动则先保存后退出;但是如果文件没有做修改,会直接退出,不会修改文件更新时间,避免用户混淆文件的修改时间