乱七八糟:Vim编辑器速查
前言 Vim 是从早期的 vi 编辑器发展而来的增强版,其名称代表“Vi IMproved”。由荷兰程序员 Bram Moolenaar 于 1991 年首次发布。Vim 是开源软件,支持多种操作系统,包括 Unix、Linux、Windows 和 macOS 等。
一份优秀的 Vim 速查表
翻译自
https://vimsheet.com/
我整理了一份我每天使用的 Vim 基本命令列表,并提供了一些配置建议,使 Vim 更加实用。因为没有配置的 Vim 使用起来会比较痛苦。
基础命令
光标移动(普通模式/可视模式)
h
j
k
l
:左、下、上、右移动w
/b
:下一个/上一个单词W
/B
:下一个/上一个以空格分隔的单词e
/ge
:下一个/上一个单词的结尾0
/$
:行首/行尾^
:行首第一个非空白字符(等同于0w
)
编辑文本
i
/a
:在光标处/之后进入插入模式I
/A
:在行首/行尾进入插入模式o
/O
:在当前行下方/上方插入空行Esc
或Ctrl+[
:退出插入模式d
:删除dd
:删除整行c
:删除并进入插入模式cc
:删除整行并进入插入模式
操作符
- 操作符也适用于可视模式
d
:从光标处删除到移动目标c
:从光标处删除到移动目标,并进入插入模式y
:从光标处复制到移动目标>
:缩进一级<
:取消缩进一级- 操作符可与移动命令组合使用,例如:
d$
删除从光标到行尾的内容
标记文本(可视模式)
v
:进入可视模式V
:进入行可视模式Ctrl+v
:进入块可视模式Esc
或Ctrl+[
:退出可视模式
剪贴板操作
yy
:复制整行p
:在光标后粘贴P
:在光标前粘贴dd
:剪切整行x
:删除当前字符X
:删除前一个字符- 默认情况下,
d
/c
会将删除的内容复制到剪贴板
退出
:w
:保存文件但不退出:wq
:保存并退出:q
:退出(如果有修改会失败):q!
:强制退出并放弃修改
搜索/替换
/pattern
:搜索 pattern?pattern
:向上搜索 patternn
:重复上一次搜索(同方向)N
:重复上一次搜索(反方向):%s/old/new/g
:全文件替换 old 为 new:%s/old/new/gc
:全文件替换 old 为 new,并逐个确认
常规命令
u
:撤销Ctrl+r
:重做
高级命令
光标移动
Ctrl+d
:向下移动半页Ctrl+u
:向上移动半页}
:跳转到下一个段落(空行){
:跳转到上一个段落(空行)gg
:跳转到文件顶部G
:跳转到文件底部:[num]
:跳转到指定行号Ctrl+e
/Ctrl+y
:向下/向上滚动一行
字符搜索
f [char]
:向前移动到指定字符F [char]
:向后移动到指定字符t [char]
:向前移动到指定字符之前T [char]
:向后移动到指定字符之前;
/,
:重复上一次字符搜索(正向/反向)
编辑文本
J
:将下一行合并到当前行r [char]
:用指定字符替换当前字符(不进入插入模式)
可视模式
O
:移动到块的另一个角o
:移动到标记区域的另一端
文件标签
:e filename
:编辑文件:tabe
:打开新标签页gt
:切换到下一个标签页gT
:切换到上一个标签页:vsp
:垂直分割窗口Ctrl+ws
:水平分割窗口Ctrl+wv
:垂直分割窗口Ctrl+ww
:在窗口间切换Ctrl+wq
:关闭当前窗口
标记
- 标记允许你跳转到代码中的指定位置
m{a-z}
:在光标位置设置标记 {a-z}- 大写标记 {A-Z} 是全局标记,可跨文件使用
'{a-z}
:跳转到设置标记的行首''
:返回上一个跳转位置
文本对象
- 例如:
def (arg1, arg2, arg3)
,光标在括号内 di(
:删除括号内的内容,即“删除最近括号内的内容”- 如果没有文本对象,你需要使用
T(dt)
来实现相同的功能
常规命令
.
:重复上一次命令- 在插入模式下,
Ctrl+r 0
:插入最近复制的文本 gv
:重新选择上一次选中的文本块%
:在匹配的()
或{}
之间跳转
如果你希望将此速查表保存为 PDF 或打印出来,可以使用 Markdown 编辑器(如 Typora)或在线工具(如 Dillinger)进行导出。
此外,Vim 的默认配置可能不够友好,建议你参考以下资源进行配置优化:
- vim-sensible:提供一套合理的默认配置
- vim-pathogen:插件管理工具
- ag.vim:快速全局搜索插件
- ctrlp.vim:文件和缓冲区快速切换插件
- nerdcommenter:代码注释插件
这些插件可以显著提升 Vim 的功能,使其更接近一个完整的 IDE。
Done.
Thanks for reading! Read other posts?