Vim命令收集
时间:2023-01-20 10:00:00
最近在看《Vim《实用技能》这本书,整理书中的命令:让你可以看到,有些错误,可以自己练习,不同的命令可以在不同的模式下使用,没有标记,注意!
命令 | 说明 | |
. | 重复上次修改的操作 | |
:h <关键字> | 查看帮助man | |
>G | 它将增加从当前到文档末尾的缩进级别 | |
$ | 光标移到行尾 | |
^ | 光标移动到行首,忽略空白 | |
% | ()、{}和[]可用于一组开闭括号间跳转 | |
0(数字) | 移动到实际行首 | |
H/M/L | 跳到屏幕顶部/中间/底部 | |
(/) | 跳转到上一句/下一句开头 | |
{/} | 跳转到上一段/下一段的开头 | |
- | 上一行行首 | |
+ | 下一行行首 | |
n | 跳至下一处匹配,保持查找方向与偏移不变 | |
N | 跳至上一处匹配,保持查找方向与偏移不变 | |
w | 正向移动到下一单词的开头 | 单词是由字母、数字、下划线,或其他非空白字符的序列组成 |
b | 反向移动到当前单词/上一单词的开头 | |
e | 正向移动到当前单词/下一单词的结尾 | |
ge | 反向移动到上一单词的结尾 | |
W/B/E/gE | 同上对应小写字母作用,但是是针对字串(非空白字符序列)作用 | |
c | 修改 | 此单元格背景色表示操作符 |
O(大写o) | 本行前追加空行并插入 | |
o | 普通模式:本行后追加空行并插入,可视模式:切换其活动的端点。 | |
A | 本行尾插入,等效命令:$a | |
s | 剪切一个字符并插入 | |
S | 剪切当前行并插入 | |
I | 行首插入 | |
i | 当前位置插入 | |
f{char} | 本行正向查找字符 | |
F{char} | 本行反向查找字符 | |
t{char} | 同f,但定位到前一个字符 | |
T{char} | 同F,但定位到后一个字符 | |
; | 正向重复 t/T/f/F | |
, | 反向重复 t/T/f/F | |
u | 撤消 | |
qx{changes}q | 录制执行一系列修改,重复操作:@x | |
@{register} | 执行指定寄存器的内容 | |
@@ | 重复最近调用过的宏 | |
:[range]s[ubstitute]/{pattern}/{string}/[flags] | 执行替换,重复操作:& | |
:s/target/replacement | 执行替换,重复操作:& | |
/pattern |
在文档中查找下一处匹配项,重复操作:n | |
?pattern |
在文档中查找上一处匹配项,重复操作:n | |
* | 正向搜索当前单词 | |
d | 剪切 | |
b | 词首 | |
daw | 删除一个单词,理解为delete a word | |
"_d{motion} | 黑洞寄存器,删除该文本且不保存任何副本 | |
对数字执行加操作,如果不是字符,则跳转到数字字符上,光标移到字符 5 上,执行 10 |
||
对数字执行减操作,如果不是字符,则跳转到数字字符上 | ||
y | 复制到寄存器(y是yank的缩写) | |
g~ | 反转大小写 | |
gu | 转换为小写 | |
gU | 转换为大写 | |
> | 增加缩进 | |
< | 减小缩进 | |
= | 自动缩进 | |
! | 使用外部程序过滤{motion}所跨越的行 | |
删除前一个字符(同退格键) | 在插入模式下使用 | |
删除前一个单词 | ||
删至行首 | ||
切换到普通模式,同 |
||
切换到插入-普通模式,执行一次普通模式下的命令立即进入插入模式 | ||
前进跳转位置 | ||
回退跳转位置 | ||
zz | 重绘屏幕,并把当前行显示在窗口正中 | |
K | 当前单词帮助 | |
J | 把当前行和下一行连接在一起 | |
在插入模式下把寄存器的内容插入 | ||
运算,= 符号指明使用表达式寄存器 | ||
插入模式下字符编码插入字符,{code}是要插入字符的编码(只能3位,超过使用 |
||
同 |
||
ga | 查看当前字符的编码 | |
插入以二合字母{char1}{char2}表示的字符,如½按键: |
||
:digraphs | 查看可用的二合字母列表,也可以使用 :h digraph-table 查看 | |
R | 由普通模式进入替换模式 | |
gR | 由普通模式进入虚拟替换模式 | |
r{char} 和 gr{char} | 单次切换到替换模式和虚拟替换模式 | |
可视模式及选择模式间切换 | ||
v | 激活面向字符的可视模式 | |
V | 激活面向行的可视模式 | |
激活面向列块的可视模式 | ||
gv | 重选上次的高亮选区 | |
gg/G | 跳至文件首行或尾行,前面加数字表示跳至相应行 | |
:[range]copy {address} | 简写形式 :t,一行或多行从文档的一部分复制到另一部分 | |
:[range]move {address} | 简写形式 :m,一行或多行移到文档的其他地方,常用命令: :'<,'>m$ | |
:[range]normal {commands} | 对指定范围内的每一行执行普通模式命令 {commands} | |
:[range]join | 连接指定范围内的行 | |
:[range]substitute/{pattern}/ {string}/[flags] |
把指定范围内出现{pattern}的地方替换为{string} | |
命令模式下显示可用的补全列表 | ||
:!{cmd} | 执行一次性shell命令 | |
:shell | 启动一个交互的 shell 会话,用 exit 命令可以退出此 shell 并返回 Vim | |
挂起 Vim 所属的进程,并把控制权交还给 bash,fg命令唤醒一个被挂起的作业 | ||
:read !{cmd} | 在 shell 中执行 {cmd} ,并把其标准输出插入到光标下方 | |
:[range]write !{cmd} | 在 shell 中执行 {cmd} ,以 [range] 作为其标准输入 | |
:[range]!{filter} | 使用外部程序 {filter} 过滤指定的 [range] | |
:ls | 列出所有被载入到内存中的缓冲区的列表 | |
:bnext | 切换到列表中的下一个缓冲区,类似命令::bprev,:bfirst,:blast | |
当前文件和轮换文件间快速切换 | ||
:buffer N | 直接凭编号跳转到一个缓冲区 | |
:buffer {bufname} | 直接凭唯一标识跳转到一个缓冲区,{bufname} 只需包含文件路径中 足以唯一标识此缓冲区的字符即可,多个使用Tab补全选择条目 |
|
:bufdo | 在 :ls 列出的所有缓冲区上执行 Ex 命令 | |
:bdelete N1 N2 | 删除缓冲区 简写::bd | |
:N,M bdelete | 删除缓冲区 | |
:args {arglist} | {arglist} 可以包括文件名、通配符,甚至是一条shell命令的输出结果,例如打开所有的js文件::args **/*.js, :args `cat .chapters`(使用反引号) | |
:w[rite] | 把缓冲区内容写入磁盘 | |
:e[dit]! | 把磁盘文件内容读入缓冲区(即回滚所做修改) | |
:qa[ll]! | 关闭所有窗口,摒弃修改而无需警告 | |
:wa[ll]! | 把所有改变的缓冲区写入磁盘 | |
水平切分窗口 | ||
垂直切分窗口 | ||
:edit | 通过文件的绝对路径或相对路径来打开文件,:edit %:h |
|
:find | 通过文件名打开文件,首先要配置‘path’选项(使用rails.vim插件可免去此设置),例::set path+=app/** | |
:w !sudo tee % | 提高写入文件的权限等级保存修改 | |
分隔符的文本对象选择(可视模式下面)motion | a) 或 ab 一对圆括号 (parentheses) | |
i) 或 ib 圆括号 (parentheses) 内部 | ||
a} 或 aB 一对花括号 {braces} | ||
i} 或 iB 花括号 {braces} 内部 | ||
a] 一对方括号 [brackets] | ||
i] 方括号 [brackets] 内部 | ||
a> 一对尖括号 |
||
i> 尖括号 |
||
a' 一对单引号 'single quotes' | ||
i' 单引号 'single quotes' 内部 | ||
a" 一对双引号 "double quotes" | ||
i" 双引号 "double quotes" 内部 | ||
a` 一对反引号 `backticks` | ||
i` 反引号 `backticks` 内部 | ||
at 一对 XML 标签 |
||
it XML 标签内部 | ||
用于操作文本块的文本对象选择motion | iw 当前单词 | |
aw 当前单词及一个空格 | ||
iW 当前字串 | ||
aW 当前字串及一个空格 | ||
is 当前句子 | ||
as 当前句子及一个空格 | ||
ip 当前段落 | ||
ap 当前段落及一个空行 | ||
m{letter} / `{letter} | 设置位置标记 {letter}/跳转到该标记 | |
`` | 当前文件中上次跳转动作之前的位置 | 位置标记动作 |
`. | 上次修改的地方 | |
`^ | 上次插入的地方 | |
`[ | 上次修改或复制的起始位置 | |
`] | 上次修改或复制的结束位置 | |
`< 相关文章
|