命令模式
光标移动
h
j
k
l
:左下右上w
:移到下一词首b
:移到上一词首e
:移到下一词尾
以上支持前加数字组合操作
- 5w:向后移5个单词
gg
:移到首行G
:移到尾行^
:移到行首非空字符0
:移到行首$
:移到行尾nG
:移到第n行H
:移到当前屏首行M
:移到当前屏中间行L
:移到当前屏尾行%
:匹配光标所在单词,移动到下一个相同单词#
:匹配光标所在单词,移动到上一个相同单词
翻屏
ctrl+f
:向后翻一屏ctrl+b
:向前翻一屏ctrl+d
:向后翻半屏ctrl+u
:向前翻半屏
删除剪切
x
:删除光标所在单个字符dd
:删除光标所在行dw
:删除光标所在的词,不包括光标处及之前
以上支持加数字组合
- 5dw:向后删5个词
da{
: 删除当前光标所在的最近一对大括号(包括括号)的内容ya[
: 复制当前光标所在的最近一对中括号(包括括号)的内容
- 大括号,中括号和小括号都适用
d$
:删除光标到行尾dgg
:删除光标所在行至首行dG
:删除光标所在行至尾行c
:改变命令,作用等同于d
再切换插入模式
cc
:删除当前行并切换插入模式c$
:删到行尾并切换插入模式c0
,c^
,cw
,cb
….
复制粘贴
yy
:复制光标所在行,5yy
复制5行p
:在光标下行粘贴P
:在光标上行粘贴
撤销
u
:撤销上一次操作,3u
撤销3次ctrl+r
:反撤销一次
查找
/STR
:向下查找STR字符/\CSTR
:不区分大小写向下查,下同?STR
:向前查找STR字符
n
:下一个查找结果,?STR
时向前查找N
:上一个查找结果,?STR
时向后查找
切换插入模式
i
:光标前a
:光标后o
:下一行I
:行首A
:行尾O
:上一行
切换可视化模式
进入可视化模式后通过上下左右选择内容后,可进行复制,剪切等操作
v
:按字符选择V
:按行选择ctrl+v
:按块选择
批量操作
- 在首行批量加#注释:
v
=>选择行
=>ctrl+v
=>I
=>#+ESC+ESC
- 取消首行#操作:
ctrl+v
=>选择行
=>d
寄存器
相当于剪切板,linux上有a-z及一个未命名共27个寄存器
3
"a
yy:复制3行存放开a寄存器"a
p:粘贴寄存器上的内容
小技巧
~
:大小写转换.
:重复上次操作r
:进入替换状态,再按替换当前字符R
:切换替换模式,再输入替换多个字符ZZ
:保存退出,同:wq
20iSTR
+ESC
:输入20个STR
末行模式
末行模式下输入完后按ENTER
执行,在末行模式中
.
:当前行$
:最后一行+n
:向下n行%
:全文
地址定界
:.,$
:当前行到尾行:%
:全文,等同:1,$
查找替换
有关正则表达式内容见grep用法篇
:m,ns/old/new/gic
:m,ns@old@new@gic
m,n:第m行到n行
s:替换
g:全文
i:忽略大小写
c:替换时一个一个确认
1 | :1,10s/old/new/g # 替换1到10行的old为new |
配置
:set nu
:显示行号,:set nonu
:set ic
:忽略大小写,:set noic
:set hlsearch
:搜索高亮,:set nohlsearch
:set ai
:按回车自动缩进,:set ai
:syntax on
:语法颜色开,:syntax on
:set ts=4
:设定TAB
为4空格:set list
:显示制表符和换行符
- 以上设置只对当前窗口生效,如需一直生效,则将设置写入
~/.vimrc
,此文件需手工创建
保存退出
:q
:不保存退出:q!
:强制不保存退出:w
:保存不退出:w!
:强制保存:wq
:保存退出 ,等同x
:wq!
:强制保存退出:e!
:恢复原样
小技巧
:w filename
:另存为filename:r filename
:将filename文件内容粘到光标下一行:!<命令>
:在不退出情况下执行<命令>操作:r!<命令>
:将<命令>执行结果插入到光标下一行
多文件多窗口
vim -[o|O] file1 file2...
可实现开多个文件多窗口模式
- -o:水平叠放
- -O:垂直
:next
:下一文件:prev
:上一文件:first
:第一个文件:last
:最后一个文件:qall
:退出所有不保存:wall
:保存所有:wqall
:保存退出所有
- 单文件也可以打开多窗口
ctrl+w
,s
:水平ctrl+w
,v
:垂直ctrl+w
,hjkl
:切换
其它
~/.viminfo
:记录vim操作历史./.filename.swp
:当前目录下,记录当前vim操作,如果正常退出则自动删除,不正常退出时需手动删除才能正常打开原文件
以上为vim常用的技巧,但vim的功能远不止此,有兴趣可自行google,也可vimtutor
打开官方提供的练习