Inline Code
进入vim引导教程
shell:vimtutor zh
SharpKey 改键 CopLock => Esc
光标移动
| |
---|
旧的光标位置 | ctrl_o |
新的光标位置 | ctlr_i |
| |
上一个编辑位置 | g; |
下一个编辑位置 | g, |
| |
移动到行首 | 0 |
移动到行尾 | $ |
| |
---|
上一个单词词尾 | ge |
下一个单词词首 | w |
下一个词段(下一个空格后的第一个词词首) | W |
当前(已在词首则为上一个)单词词首 | b |
上一个词段(上一个空格后第一个词词首) | B |
当前(已在词尾则为下一个)单词词尾 | e |
下一个词段(下一个空格前一个单词词尾) | E |
| |
---|
% | 反复横跳 |
[{ | 移动到(当前{} 块)的开符号{ |
]{ | 移动到闭符号} |
[( | 移动到(当前() 块)的开符号( |
[( | 移动到闭符号) |
| |
---|
f<a> | 下一个匹配字符 |
F<a> | 上一个匹配字符 |
t | |
t<a> | 下一个匹配字符的前一个字符 |
T<a> | 上一个匹配字符的前一个字符 |
| |
---|
向前移动一个句子 (实际表现一般是标签之间) | ( |
向后移动一个句子
| ) |
向前移动一个段落(实际表现是标签之间的空行) | { |
向后移动一个段落(实际表现是标签之间的空行) | } |
选择
v_标定词
V 整行
参考删除
删除
"dl" delete character (alias: "x") dl
"diw" delete inner word diw
"daw" delete a word daw
"diW" delete inner WORD (see WORD) diW
"daW" delete a WORD (see WORD) daW
"dgn" delete the next search pattern match dgn
dd delete one line
dis 删除一段句子
das 删除句子和前后隔行
dib 删除(' ')内的内容
dab 删除'()'和里面的内容
dip 删除一个段落
dap 删除一个段落和前后的换行
diB 删除{''}内的内容
daB 删除'{}'和里面的内容
ds{ 删除对应'{'括号
插入
I 行首插入
A 行尾插入
修改
| |
---|
c+标定词 | 剪切到 |
C | 剪切到行尾 |
s | 修改当前光标单字 |
S | 修改整行 |
替换
:{作用范围}s/{目标}/{替换}/{替换标志}
| |
---|
:%s/a/b/options | a被替换词,b替换词,options替换方式 |
suround plugin
| |
---|
ys | 开始表示在两边添加符号,如: ysw) ,yse( 等,一般左符号表示内部带空格,右符号表示内部不带空格。 |
ds | 开始表示删除两边的符号,如:ds] ,ds{ 等。 |
cs | 开始表示替换两边的符号,如: cs{[ ,cs(} 等,注意依旧有左符号和右符号的空格区别。 |
重复
.
编辑类操作重复
排版
| |
---|
`z<c | C>` |
za | 打开或关闭折叠 |
<< >> | 前后缩进 |
粘贴
| |
---|
p | 粘贴到光标前 |
P | 粘贴到光标后 |
"*p | 首选系统剪切板内容粘贴 |
查找
正向查找:
命令: /keyword
描述: 在 Normal 模式下,输入 /,然后输入要查找的关键字(单词),按下 Enter。光标会跳转到第一个匹配的位置,按 n 键可以继续查找下一个匹配。
反向查找:
命令: ?keyword
描述: 与正向查找类似,但是使用 ? 开始,查找方向是反向的。按 N 键可以继续查找上一个匹配。
全词匹配查找:
命令: /<keyword>
描述: 使用 < 和 > 将关键字包裹起来,表示全词匹配。例如,/<word> 会匹配单独的 "word",而不是包含在其他单词中的部分。
光标下单词匹配:
命令: * 或 #
描述: 在 Normal 模式下,将光标移动到要查找的单词上,然后按下 * 查找下一个匹配,按 # 查找上一个匹配。
高亮所有匹配:
命令: hlsearch,然后正向或反向查找。
描述: 使用 hlsearch 命令启用搜索高亮。搜索结果将在屏幕上突出显示。
窗口操作
| |
---|
<c-w>w | 切换窗口 |
<c-w>{h,j,k,l} | 向上下左右切换窗口 |
<c-w>{H,J,K,L} | 向上下左右移动窗口 |
`{width} | ` |
<c-w>{height}_ | 调整当前窗口高度比例为 height/100*n (n为垂直窗口个数) |
视口操作
| |
---|
<c-y> | 上移一行(光标不移动 编辑器窗口移动) |
c-e | 下移一行(光标不移动 编辑器窗口移动) |
c-u | 上翻半页(up) |
c-d | 下翻半页(down) |
c-f | 相对视图页面向前滑动一页(forward) |
c-b | 相对视图页面向后滑动一页(backward) |
tabline
| |
---|
标签间切换 | |
:tabnew | 打开一个新的标签页,并在其中显示当前缓冲区。 |
:tabnew filename | 打开file到新标签 |
gt :tabnext 或 :tabn | 切换到下一个标签页。 |
gT :tabprevious 或 :tabp | 切换到上一个标签页。 |
gf | 打开光标所在位置同名文件到新标签 |
CTRL-T | 跳转到标签列表的第 N 个较老的标签 (Tag) |
:tabfirst | 切换到第一个标签页。 |
:tablast | 切换到最后一个标签页。 |
:tabm <n> | 将当前标签页移动到索引为 <n>的位置(从 0 开始计数)。 |
关闭标签页 | |
:tabclose 或 :tabc | 关闭当前标签页。 |
:tabonly | 关闭所有非当前标签页,保留当前标签页。 |
:tabcloseall | 关闭所有标签页,包括当前标签页。 |
查看标签页列表 | |
:tabs 或 :tabm | 列出所有当前打开的标签页。 |
在指定标签页中打开文件 | |
:tabedit <文件路径> 或 :tabe <文件路径> | 在新标签页中打开指定文件。 |
:tabfind <文件名> | 在新标签页中查找指定文件。 |
buffer
| |
---|
| buffer list |
index/name | go to buffer index/name |
index/name | ^^ |
插件检查
:checkheath
宏
| |
---|
q @reg | 开始录制名为reg的宏 按q结束录制 |
@reg | 运行一次宏 reg |
n @reg | 运行n次 reg |
多行选择和“选后操作”
v
V
选择多行后
| |
---|
:normal 操作 | 对选定的多行执行特定的普通模式命令,也就是同时对多行执行“操作”,比如 :normal $x 删除行尾字符 |
ctrl+v
进入可视块模式,和 vscode 的鼠标中间选择一样