130+vim基本命令
本文是国外站点catswhocode上的一个翻译版本,虽然vim是一个老生常谈的东西了 。不过总结的很简练干脆,挺有意思,我还是将其摘了过来,供自己玩味和学习。
一、基础
1:e filename 在编辑器中打开一个文件
2:w 保存文件
3:q 退出vim
4:q! 退出但不保存
5:x 写文件(如果有做修改)并退出
6:sav filename 保存为
7. 在正常模式中重复执行上一个变更
85. 重复五次
二、移动
1k or Up Arrow 上移一行
2j or Down Arrow 下移一行
3e 移动到单词末尾
4b 移动到单词开头
50 移动到行首
6G 移动到文件末尾
7gg 移动到文件开头
8L 移动到屏幕底
9:59 移动到59行
1020| 移动到第20列
11% 移动到匹配的括号
12[[ 到函数头
13[{ 到块开始位置
三、剪切,复制和粘贴
1y 拷贝选中部分到剪贴板
2p 粘贴剪贴板中内容
3dd 剪切当前行
4yy 拷贝当前行
5y$ 拷贝到行尾
6D 剪切到行尾
四、搜索
1/word 从开头到结尾搜索单词word
2?word 从结尾到卡头
3* 搜索光标下单词
4/cstring 搜索string或STRING, 大小写不敏感
5/jo[ha]n 搜索john 或 joan
6/< the 搜索以the开头的,the, theatre 或 then
7/the> 搜索以the结尾的,the 或 breathe
8/< the> 搜索the
9/< ¦.> 搜索所有含有四个字母的
10// 搜索fred 但不是alfred 或 frederick
11/fred|joe 搜索fred 或 joe
12/<dddd> 搜索仅有四个数字的
13/^n{3} 搜索连续3个空行的
14:bufdo /searchstr/ 在所有打开buf中搜索
15bufdo %s/something/somethingelse/g 在所有打开buf中搜索并替换
五、替换
1:%s/old/new/g 将所有出现的old替换为new
2:%s/onward/forward/gi 将所有onward替换为forward,大小写不敏感
3:%s/old/new/gc 替换前确认
4:2,35s/old/new/g 将第2行到第35行之间的old替换为new
5:5,$s/old/new/g 将第5行到文件结尾的old替换为new
6:%s/^/hello/g 在每一行开头加入hello
7:%s/$/Harry/g 在每一行结尾加入Harry
8:%s/ *$//g 删除每行末尾无用空格
9:g/string/d 删除所有包含string的行
10:v/string/d 删除所有不包含string的行
11:s/Bill/Steve/ 替换当前行第一个Bill为Steve
12:s/Bill/Steve/g 替换当前行中所有Bill
13:%s/Bill/Steve/g 替换文件中所有Bill
14:%s/^M//g 删掉DOS保存文件中(^M)
15:%s/r/r/g Transform DOS carriage returns in returns
16:%s#<[^>]+>##g 删除html标签但是保留文本
17:%s/^(.*)n1$/1/ 删除所有连续出现过两次的行,保留一行
18Ctrl+a 递增光标下的数字
19Ctrl+x 递减光标下的数字
20ggVGg? 文本转换为 Rot13
六、大小写
1Vu 整行小写
2VU 整行大写
3g~~ 整行大小写反转
4vEU 单词转为大写
5vE~ 单词大小写反转
6ggguG 所有文本小写
7gggUG 所有文本大写
8:set ignorecase 搜索中忽略大小写
9:set smartcase 搜索中忽略大小写,除非搜索词中存在大小写字母
10:%s/<./u&/g 将所有单词首字母大写
11:%s/<./l&/g 将所有单词首字母小写
12:%s/.*/u& 将每行第一个字母大写
13:%s/.*/l& 将每行第一个字母小写
七、读写文件
1:1,10 w outfile 1到10行内容写到outfile
2:1,10 w >> outfile 1到10行内容追加到outfile
3:r infile 插入文件内容
4:23r infile 插入文件23行的内容
八、文件浏览器
1:e . 打开完整文件浏览器
2:Sex 切分窗口,打开文件浏览器
3:Sex! 同上,垂直切分
4:browse e 图像化文件浏览器
5:ls 列出buffers
6:cd .. 移到上一层目录
7:args 列出文件
8:args *.php 打开文件列表
9:grep expression *.php 返回包含expression的php文件列表
10gf 打开光标下文件名对应的文件
九、和Unix交互
1:!pwd 执行pwd命令,返回结果
2!!pwd 执行命令并插入结果到文件中
3:sh 临时返回unix
4$exit 从unix中返回vim
十、对齐
1:%!fmt 所有行对齐
2!}fmt 当前位置所有行对齐
35!!fmt 后五行对齐
十一、Tabs和Windows
1:tabnew 创建一个新的tab
2gt 展示下一个tab
3:tabfirst 展示第一个tab
4:tablast 展示最后一个tag
5:tabm n(position) 重排tab
6:tabdo %s/foo/bar/g 在所有tab中执行一个命令
7:tab ball 将所有打开文件放入tab中
8:new abc.txt 在新window中编辑abc.txt
十二、窗口分屏
1:e filename 在当前窗口中编辑文件
2:split filename 切分当前窗口并打开文件(缩写 :sp filename)
3ctrl-w up arrow 移到上一个文件
4ctrl-w ctrl-w 移到下一个窗口
5ctrl-w_ 当前窗口垂直最大化
6ctrl-w| 当前窗口水平最大化
7ctrl-w= 所有窗口等大小
810 ctrl-w+ 当前窗口增加10行
9:vsplit file 竖直切分窗口
10:sview file 同:split, 只读模式
11:hide 关闭当前窗口
12:nly 关闭出了当前窗口之外的所有窗口
13:b 2 打开2号窗口
十三、自动补全
1Ctrl+n Ctrl+p (插入模式) 补全单词
2Ctrl+x Ctrl+l 补全行
3:set dictionary=dict 定义dict为dictionnary
4Ctrl+x Ctrl+k 用字典中内容补全
十四、标签
1m {a-z} 在当前位置做标签{a-z}
2' {a-z} 移动到标签位置
3'' 移动到上一个位置
十五、缩写
1:ab mail [email protected] 定义mail 作为 [email protected]的缩写
十六、文本缩进
1:set autoindent 打开自动缩进
2:set smartindent 打开自动智能缩进
3:set shiftwidth=4 缩进设为4个空格
4ctrl-t, ctrl-d 插入模式中缩进/去缩进
5>> 缩进
6<< 去缩进
7=% 缩进括号中的代码
81GVG= 缩进整个文件
十七、语法高亮
1:syntax on 打开语法高亮
2:syntax off 关闭语法高亮
3:set syntax=perl 强制语法高亮
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/130-essential-vim-commands/3200.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.