Vim命令收集

最近在看《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<CR>在文档中查找下一处匹配项,重复操作:n<CR>表示按Enter键
?pattern<CR>在文档中查找上一处匹配项,重复操作:n 
*正向搜索当前单词 
d剪切 
b词首 
daw删除一个单词,理解为delete a word 
"_d{motion}黑洞寄存器,删除该文本且不保存任何副本 
<C-a>对数字执行操作,如果不是字符,则跳转到数字字符上,光标移到字符 5 上,执行 10<C-a>就会把它变成 15<C-a>:Ctrl+a键,下类似
<C-x>对数字执行操作,如果不是字符,则跳转到数字字符上 
y复制到寄存器(y是yank的缩写) 
g~反转大小写 
gu转换为小写 
gU转换为大写 
>增加缩进 
<减小缩进 
=自动缩进 
使用外部程序过滤{motion}所跨越的行 
<C-h>删除前一个字符(同退格键)在插入模式下使用
<C-w>删除前一个单词
<C-u>删至行首
<C-[>切换到普通模式,同<Esc>
<C-o>切换到插入-普通模式,执行一次普通模式下的命令立即进入插入模式
<C-o>前进跳转位置 
<C-i>回退跳转位置 
zz重绘屏幕,并把当前行显示在窗口正中 
K当前单词帮助 
J把当前行和下一行连接在一起 
<C-r>{register}在插入模式下把寄存器的内容插入 
<C-r>=运算,= 符号指明使用表达式寄存器 
<C-v>{code}插入模式下字符编码插入字符,{code}是要插入字符的编码(只能3位,超过使用<C-v>u{1234}) 
<C-v>u{1234}同<C-v>{code} 
ga查看当前字符的编码 
<C-k>{char1}{char2}插入以二合字母{char1}{char2}表示的字符,如½按键:<C-k>12,可用于插入特殊字符 
:digraphs查看可用的二合字母列表,也可以使用 :h digraph-table 查看 
R由普通模式进入替换模式 
gR由普通模式进入虚拟替换模式 
r{char} 和 gr{char} 单次切换到替换模式和虚拟替换模式 
<C-g>可视模式及选择模式间切换 
v激活面向字符的可视模式 
V激活面向行的可视模式 
<C-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} 
<C-d>命令模式下显示可用的补全列表 
:!{cmd}执行一次性shell命令 
:shell启动一个交互的 shell 会话,用 exit 命令可以退出此 shell 并返回 Vim 
<C-z>挂起 Vim 所属的进程,并把控制权交还给 bash,fg命令唤醒一个被挂起的作业 
:read !{cmd}在 shell 中执行 {cmd} ,并把其标准输出插入到光标下方 
:[range]write !{cmd}在 shell 中执行 {cmd} ,以 [range] 作为其标准输入 
:[range]!{filter}使用外部程序 {filter} 过滤指定的 [range] 
:ls列出所有被载入到内存中的缓冲区的列表 
:bnext切换到列表中的下一个缓冲区,类似命令::bprev,:bfirst,:blast 
<C-^>当前文件和轮换文件间快速切换 
: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]!把所有改变的缓冲区写入磁盘 
<C-w>s水平切分窗口 
<C-w>v垂直切分窗口 
:edit通过文件的绝对路径或相对路径来打开文件,:edit %:h<Tab>被展开为当前文件所在目录的路径 
:find通过文件名打开文件,首先要配置‘path’选项(使用rails.vim插件可免去此设置),例::set path+=app/** 
:w !sudo tee %提高写入文件的权限等级保存修改 
分隔符的文本对象选择(可视模式下面)motiona) 或 ab        一对圆括号 (parentheses) 
i) 或 ib        圆括号 (parentheses) 内部 
a} 或 aB        一对花括号 {braces} 
i} 或 iB        花括号 {braces} 内部 
a]              一对方括号 [brackets] 
i]              方括号 [brackets] 内部 
a>              一对尖括号 <angle brackets> 
i>              尖括号 <angle brackets> 内部 
a'              一对单引号 'single quotes' 
i'              单引号 'single quotes' 内部 
a"              一对双引号 "double quotes" 
i"              双引号 "double quotes" 内部 
a`              一对反引号 `backticks` 
i`              反引号 `backticks` 内部 
at              一对 XML 标签 <xml>tags</xml> 
it              XML 标签内部 
用于操作文本块的文本对象选择motioniw              当前单词 
aw              当前单词及一个空格 
iW              当前字串 
aW              当前字串及一个空格 
is              当前句子 
as              当前句子及一个空格 
ip              当前段落 
ap              当前段落及一个空行 
m{letter} / `{letter}设置位置标记 {letter}/跳转到该标记 
``当前文件中上次跳转动作之前的位置位置标记动作
`.上次修改的地方
`^上次插入的地方
`[上次修改或复制的起始位置
`]上次修改或复制的结束位置
`<上次高亮选区的起始位置
`>上次高亮选区的结束位置
"+p系统剪贴板,插入模式下:<C-r>+ 
"*专用寄存器 
"_黑洞寄存器 
"0复制专用寄存器 
p/P后置粘贴/前置粘贴 
\zs 与 \ze模式匹配下界定匹配的边界 开始与结束,例:模式/Practical \zsVim<CR> 只会匹配Practical Vim中的Vim 
:%s///gn统计某个模式的匹配个数,注意不能丢任何字符 
:[range] global[!] /{pattern}/ [cmd]在某个指定模式的所有匹配行上运行 Ex 命令,简写::g 
:v/re/d只保留当前行,re是regular expression 
:g/re/d删除所有的匹配行 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值