Vim 基础使用教程
vi & vim
vi (visual)是一个经典且强大的文本编辑器,所有的UNIX-like系统都会内置vi
Vim (vi improved)是vi的升级版。其代码补全、编译及错误跳转等方便编程的功能特别丰富,在编程中十分好用
yum -y install vim
Vim 有Normal, Visual, Insert 和 Command-line四种模式
普通模式
普通模式又称命令模式,通过按下功能按键进行编辑
移动光标:
hjkl(←↓↑→),以及数字 0 (Home), $ (End)
w 跳转到下个单词 b 跳转到上个单词
f+字母 找到下一个该字母并跳转到此
多次移动:
30j (或30Enter或30↓),向下30行
10Space (或10l或10→)向右10字符
G(移动到最后一行)、20G(第20行),gg(即1G,第一行)
翻页
Ctrl+fbdu
即 front back down up
分别是向下一页(PgDn)、向上一页(PgUp)、向下半页、向上半页
复制
yy复制当前行
yaw: 复制当前单词(yank all word)
y4j 复制下四行 y8l复制右8格
yfr 复制到下一个r为止的内容
粘贴:
p贴在后面(下面),P贴在前面(上面)
删除:
d 与 y 命令非常相似,可以配合hjkl, G, 0, $, f+字母 等使用
例如 d8j, dfw
dd删除当前行
x向后删除,X向前删除,10x删除后面的10个字符
撤销 u,Ctrl+r重做上一个动作
.重复前一个动作
插入模式
iIoOaArRc
c --change
caw删除当前单词进入插入模式
cc删除当前行进入输入模式
c4j删除下4行进入输入模式
代码补全 | |
---|---|
Ctrl+x -> Ctrl+n | 使用当前文件内的单词来补全 |
Ctrl+x -> Ctrl+f | 使用当前目录的文件名来补全 |
Ctrl+x -> Ctrl+o | vim根据扩展名使用内置策略来补全 |
可视模式
vV^V
选中之后可以使用y d c等复制、删除、改变
缩进:
- 输入V进入可视行模式
- 按<或>向前或向后缩进
多行注释:
- Ctrl+v进入可视块模式,移动光标选中要注释的行
- 按I (insert)行首插入注释符(如#),如果插入空格则可以缩进
- 按Esc
取消多行注释:可视块模式选中注释符号按d删除
命令行模式
普通模式按下:, /或?进入命令行模式
: | |
---|---|
:set nu / nonu | 是否显示行号 |
:set autoindent / noautoindent | 是否自动缩进,即继承上一行的缩进量 |
:wq | 保存退出 |
:q! | 强制退出 |
:w [filename] | 另存为 |
:r [filename] | 将另外的文件读取到游标所在行后面 |
:n1,n2 w [filename] | 将两行之间的内容另存为新文件 |
:! [command] | 执行命令,例如:! ls/home |
查找 | |
---|---|
/关键字 | 回车 查找下一个,按n继续查找下一个,N查找上一个 |
?关键字 | 往上查找 |
查找支持正则表达式,例如
/^waline
匹配行首的单词"waline"
,如果要查找特殊字符则需要转义\
加入
\c
表示不区分大小写,\C
表示区分大小写。例如/foo\c
能匹配"FOO"
,"Foo"
等字符串编辑
~/.vimrc
可以配置大小写敏感性:
1 |
|
- 查找当前单词:在普通模式下按
*
即可查找光标所在单词。例如当前为foo
,则可匹配foo bar
中的foo
,但不会匹配foobar
中的foo
。按g*
则foo bar
和foobar
都能匹配。
替换 | :{范围}s/{目标}/{替换}/{选项} |
---|---|
:10,20s/word1/word2/g | 在10行20行之间替换word1为word2 |
:.,+2s/word1/word2/i | 在当前行与下两行之间替换,且忽略大小写 |
:%s/word1/word2/gc | 全文寻找和替换,且每个替换前询问(confirm) |
分屏 | |
---|---|
:sp [filename] | 分屏打开文件,默认是当前文件 |
Ctrl+W | 管理窗口,再按 j,k或方向键切换窗口,q关闭 |