mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
1077 字
3 分钟
Vim Docs
2023-08-26

Vim Docs#

Unix-style 系统中,shell 的光标默认是色块,而不是 Windows 中的 | 。因此讨论光标位置时,要严格区分光标前、光标所在位置与光标后。

命令模式#

命令模式切换到底线命令模式:

常规输入#

命令作用
i切换到输入模式,从当前光标位置开始输入
a切换到输入模式,从光标位置后一位开始输入
o当前行下方插入新行,并进入输入模式
O在当前行上方插入新行,并进入输入模式
v切换到选择模式,类似于鼠标框选文本

光标移动#

以下命令输入后,按 Enter 触发

命令作用
<num> + ↑↓←→光标向上/下/左/右移动 num 位,例如 30↑ 。左右移动时不会超过行首/行尾
ctrl + u/d屏幕向上/下移动半页
<num> + Space光标向后移动 num 位(可换行
0/$光标移动到行首/行尾Home/End 也行 )
G光标移动到文件最后一行
gg光标移动到文件第一行
<num> + G光标移动到 num 行
<num> + Enter光标向下移动 num 行

查找替换#

命令作用
/word向光标后寻找 word 字符串
?word向光标前寻找 word 字符串
n重复前一个查找动作(等价于查找下一个/上一个
N反向进行前一个查找动作(向前变向后,向后变向前
:<num1>,<num2>s/word1/word2/g在 num1 行到 num2 行之间搜索字符串 word1 ,将其替换为 word2
:<num1>,<num2>s/word1/word2/gc跟上面效果一样,但是替换时会请求确认 (confirm)
:%s/word1/word2/g在所有行进行上述操作
:%s/word1/word2/gc同理

批量操作#

命令作用
x删除光标所在处的字符(后面的会自动向前缩进)
X删除光标前一个字符
<num>x从光标所在处开始, 向后删除 num 个字符
dd剪切当前行 (带换行符)
<num>dd从光标所在行开始, 向下剪切 num 行
d0剪切光标前一位到行首
d$剪切光标所在处到行尾 (不带换行符)
d<num>G从光标所在行开始, 剪切到 num 行
yy复制当前行
<num>yy复制光标所在的向下 num 行
y0复制光标前一位到行首
y$复制光标所在处到行尾 (不带换行符)
y<num>G从光标所在行开始, 复制到 num 行
小写 p粘贴到光标(若带有换行符, 则粘贴到下一行)
大写 P粘贴到光标(若带有换行符, 则粘贴到上一行)
J将光标下一行合并到光标所在行, 用空格隔开
u撤销上一次操作
ctrl + r重做被撤销的操作
小数点 .重复上一个操作
"+y双引号 + 加号 + y,将 visual 模式中的内容复制到系统剪切板(不是 vim 的默认缓冲区)
"+p将系统剪切板中的内容粘贴到 vim
> / <向前或向后缩进光标选中的文本d

底线命令#

底线命令模式切换到命令模式ESC

命令作用
:w保存文件
:wq保存文件,并退出 Vim 编辑器
:q退出 Vim 编辑器
:q!强制退出 Vim 编辑器,不保存修改
:w <file_name>将编辑的数据另存为新文件
:r <file_name>在编辑的数据中,读入另一个文件(即将新文件内容添加到光标后)
:<num1>,<num2> w <file_name>将 num1 到 num2 行的内容另存为新文件
! <command>暂且离开 vi/vim 环境,执行 command 并显示结果

输入模式#

按键作用
Enter换行
Backspace删除光标前字符
Del删除光标后字符
Home/End光标移动到行首/行尾
Page Up/Down上/下翻页

配置文件#

vim 的配置文件位于 ~/.vimrc。配置文件中的 set 指令可以在 vim 窗口中通过 : 底线命令模式直接执行,当然也就只会在当前窗口中生效。写入配置文件时则会在每次编辑前默认加载。

字符集#

set encoding=utf-8

缩进#

set autoindent expandtab tabstop=2 shiftwidth=2
  • autoindent:换行时自动缩进
  • expandtab:按下 Tab 键时插入空格而不是制表符
  • tabstop=2:设置 tab 键的宽度为 2 个空格
  • shiftwidth:使用 << 和 >> 命令缩进或移动文本时的宽度为 2 个空格

行号#

# 显示行号
set nu
# 取消显示行号
set nonu
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Vim Docs
https://blog.085404.xyz/posts/vim/
作者
sun2ot
发布于
2023-08-26
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录