Vim的常用指令
2021-10-08 本文已影响0人
缘木与鱼
Vim的常用指令
1.移动
h 左移一格
l 右移一格
j 下移一格
k 上移一格
w 移动到下一个单词的首字符
b 移动到上一个单词的首字符
2.插入
2.1 普通模式进入插入模式
以下指令可以从普通模式进入插入模式,并会在相应的位置输入编辑。
i 在光标处编辑
I 在行首编辑输入
A 在行尾编辑输入
a 在光标后输入编辑
o 在当前行的后面插入一个新行
O 在当前行的前面插入一个新行
cw 替换从光标所在位置后到一个单词结尾的字符
2.2 普通模式进入命令行模式
普通模式输入 : 进入命令行模式, 输入 w 回车,保存退出。
:wq 保存并退出
:q! 强制退出,不保存
:wq! 强制保存并退出
:q 退出
:w <文件路径> 另存为,且不退出当前文件
:saveas <文件路径> 另存为,且不退出当前文件
:x 保存并退出
普通模式退出vim
shift + zz 直接保存退出。
3 删除
普通模式下删除 vim 文本信息
x 删除游标所在的字符
X 删除游标所在的前一个字符
Delete键 删除游标所在的字符
dd 删除一行
dw 删除一个单词
d$ 删除至行尾
D 删除至行尾
d^ 删除至行首
dG 删除至文档结尾
d1G 删除至文档首部
命令前加上数字,表示删除多个。 如 2dd:一次删除两行; 2dw: 一次删除两个单词。
普通模式下 . 表示重复上次的操作。
如,上次执行了 dd 指令,删除行操作, . 按键可以重复执行上次的 dd 操作。
4. 游标的快速跳转
:set nu 显示行号
gg 游标移动到第一行
G 游标移动到最后一行
nG 游标移动到第n行
ctrl + o 回到光标跳转之前的位置
w 跳到下一个单词的开头
e 跳到当前单词的结尾
b 跳到前一个单词的开头
ge 跳到前一个单词的结尾
0(零) 跳到当前行的行头
^ 跳到当前行的行头
$ 跳到当前行的行尾
5. 快速查找
/字符串 向下查找字符串
?字符串 向上查找字符串
匹配之后:
n 继续查
N 反向继续查
:noh 取消查找
高级查找
\* 查找光标所在的单词,向下找
\# 查找光标所在的单词,向上找
g\* 查找光标所在的单词,向上找 部分符合即可, 模糊查找
g\# 查找光标所在的单词,向下找 部分符合即可, 模糊查找
f<字母> 向后搜索<字母>并跳转到第一个匹配到的位置
F<字母> 向前搜索<字母>并跳转到第一个匹配到的位置
6.复制粘贴
复制
yy 复制一行 3yy 复制3行
y^ 复制到行首(不含光标)
y0(零) 复制到行首(不含光标)
y$ 复制到行尾(含光标)
yw 复制一个单词
y2w 复制两个单词
yG 复制到文本末尾
y1G 复制到文本开头
粘贴
p(小写) 粘贴到光标后(下)
P(大写) 粘贴到光标前(上)
剪切
dd 剪切一行
ddp 交换上下行
7. 替换撤销
替换
r + <待替换字母> 将游标所在的字母替换,只能替换一个字母
R + <待替换字母> 从游标所在的字母开始进行替换,可替换多个字母
cc 替换整行
cw 替换一个单词
C(大写) 替换游标之后到行末
~ 反转游标所在的字母大小写
撤销
u{n} 撤销之前的n次操作
U(大写) 撤销当前行多有的操作
ctrl + r redo,撤销undo的操作(撤销撤销的内容)
8.执行外部命令
:!ls 用于显示当前文件所在目录下的内容
:!rm filename 删除名为filename的文件
:w filename 将正在编辑的文件另存为filename的文件
创建加密文件
vim -x filename
9. 恢复文件
因断电等因素造成文档未保存,可以使用一下方式恢复:
vim -r 1.txt
:ewcover 1.txt
10.多文件编辑
vim 编辑多个文件
vim 1.txt 2.txt # 默认进入 1.txt 的编辑页面
:n! # 文件切换(不保存之前文件的内容)
:N! # 文件切换(不保存之前文件的内容)
也可以 :
vim # 打开编辑器
:e 3.txt # 新建一个3.txt的文件
:e# # 回到前一个文件
:ls # 列出编辑过的文件
:b 2.txt # 直接进入文件 2.txt 编辑
:bd 2.txt # 删除编辑过的文件项目
:e! 4.txt # 新打开4.txt,放弃正在编辑的文件
:f # 显示正在编辑的文件名
:f new.txt # 修改正在编辑的文件名字为 new.txt
11.功能设定
:set nu 显示行数
获取目前的设定
:set 或 :se 显示所有修改过的配置
:set all 显示所有的设定值
:set option ? 显示option的设定值
:set nooption 取消当前的设定值
set功能
:set background=dark 或 light 设置背景风格。