Vim常用操作

来源:互联网 发布:linux 驱动 编辑:程序博客网 时间:2024/04/30 05:13

按键        作用
<Esc>        切换到普通模式
<C-[>        切换到普通模式
<C-o>        切换到插入普通模式
<C-o>zz        从插入模式切换到插入普通模式(C-o),将当前光标到屏幕中央
<C-r>0        插入模式下的paste
<C-r>=6*35<CR>        执行6*36的计算,并将计算结果输入到光标位置
o        置换选择区域的开始和结尾
u        将选择的区域转换为小写
U        将选择的区域转换为大写
:2        移动到第二行
:2p        显示第二行
:$p        显示最后一行
:2,$p        显示第二行到最后一行的数据
:.,$p        显示当前行到最后一行的数据
:%p        显示所有行的数据
:%s/Practical/Pragmatic/        在所有行里面替换第一个Practical为Pragmatic
:/<html>/,/<\/html>/p        显示以<html>开始,以</html>结束的数据
:/<html>/+1,/<\/html>/-1p        显示以<html>开始的下一行,以</html>结束的上一行之间的数据
:.,.+3p        显示当前行以下3行的数据
:6t.        拷贝第6行到当前行下面
:t6        拷贝当前行到第6行下面
:t.        拷贝当前行到下一行
:t$        拷贝当前行到文件末尾
:'<,'>t0        拷贝选择区域到文件开始
yt,        在当前行,Copy光标到字符","中间的一段文字,不包含","
daw        删除光标所在位置的单词
dap        删除光标所在位置的段落
guu        将一行转换为小写
gUU        将一行转换为大写
gUit        将标签的内容转换为大写
guit        将标签的内容转换为小写
ga        显示当前字符的code
f.        向后定位到字符"."
F.        向前定位到字符"."
t.        向后定位到字符"."前
T.        向前定位到字符"."前
;        重复执行上次查找
,        重复执行上次查找(逆向)
.        重复执行上次改动
R        切换到替换模式
r        切换到替换模式,只对一个字符有效
c        复制并进入插入模式
caw        复制光标所在单词并进入插入模式
cap        复制光标所在段落并进入插入模式
gv        重新选择上一次选择区域
o        进入插入模式并在当前行后插入一行
O        进入插入模式并在当前行前插入一行
vit        选择标签的内容
3G        移动到第三行
v        进入字符可视模式
V        进入行可视模式
yyp        拷贝当前行到下一行
dGp        将选择区域移动到文件末尾
@:        重新执行上次命令
:normal        遍历指定行数执行特定操作
:%normalA;        在所有的行后面添加";"
:'<,'>normalA;        在选择区域之内的所有行后面添加";"
:%normali//        将所有的行注释
:%normal.        对所有行执行上一次操作
<C-o>        回到上一次操作的文件
<C-d>         显示可用命令列表
:colorscheme<C-d>        显示可用的主题列表
Tab        命令提示
*:%s//replacement/g        用*标出要被替换的单词,然后执行替换命令
q:        显示命令记录
:shell        打开外部shell,执行命令,可以用exit关闭
:read !{cmd}        执行外部命令,并将结果输出到当前正在编辑的文件光标位置
:write !{cmd}        将当前文件的内容作为外部命令执行
:1,$!sort        用外部命令sort执行从第一行到最后一行的排序
:1,$!grep -v "\#"        用外部命令去掉配置文件中的注释
!G        切换到命令模式,并打开range外部命令过滤模式
<C-^>        切换缓存文件
:bdelete N1 N2 N3        删除缓存文件
:1,$bdelete        删除所有缓存文件
:e!        将文件回复到原始改动之前状态
:qa!        取消保存,文件全部关闭
:wa        全部保存
<c-w>s        水平分割窗口
<c-w>v        垂直分割窗口
<C-w>w        窗口循环切换
<C-w>c        关闭当前激活窗口
<C-w>o        关闭其它窗口
<C-w>=        使所有窗口等高等宽
<C-w>_        当前窗口高度最大化
<C-w>|        当前窗口宽度最大化
[N]<C-w>_        设置当前窗口高度为N行
[N]<C-w>|        设置当前窗口宽度为N列
:tabe[dit]{filename}        在新标签页打开文件
:tabc[lose]        关闭当前标签页和所有子窗口
:tabo[nly]        关闭其它标签页及子窗口
gt        切换到下一个标签页
:tabn[ext]        
gT        切换到上一个标签页
:tabp[revious]        
{N}gt        切换到第N个标签页
:tabn[ext] {N}        
:set path+=**        配置查找路径
:find        查找文件
:!mkdir -p %:h        创建所需要文件夹
:w !sudo tee % >/dev/null        以超级用户权限保存
gj        光标向下移动一显示行
gk        光标向上移动一显示行
g0        光标到显示行的第一个字母
g^        光标到显示行的第一个非空字符
g$        光标到显示行的最后一个字符
w        光标到下一个字符起始位置
b        光标到上一个字符起始位置
e        光标到下一个字符结束位置
ge        光标到上一个字符结束位置
ea        到一个单词的最后位置并开始编辑
a)或者ab        选择()区域块
i)或者ib        选择()区域块的内容
a}或者aB        选择{}区域块
i}或者iB        选择{}区域块的内容
at        选择<…></…>区域块
it        选择<…></…>区域块的内容
a"        选择""区域块
i"        选择""区域块的内容
iw        Currentword
aw        Current word plus onespace
iW        CurrentWORD
aW        Current WORD plus onespace
is        Currentsentence
as        Current sentence plus onespace
ip        Currentparagraph
ap        Current paragraph plus oneblank line
m{a-zA-Z}         标记
’{mark}         定位到标记所在的行
`{mark}        定位到标记所在的行,所在的列
``        Position before the last jumpwithin currentfile
`.        Location of lastchange
`^        Location of lastinsertion
%        跳到配对字符,比如从"["跳到"]"
~     切换大小写,当前字符
g~iw    切换当前字的大小写
gg==G        全文自动缩进

"* 双引号+星号再加上复制或者粘贴命令,把内容复制到系统剪切板,
"*yy
 把当前行复制到系统剪切板
"*p
  从系统剪切板粘帖出来

:cd %:p:h 切换到当前文件所在目录,解释: %表示当前文件名,%:p表示包含文件名的全部路径,%:p:h表示文件所在路径(head ofthe full path)

0 0