操作模式

一般vim有三种模式

vim modes


正常模式

此模式下你的输入不会写入文件, 而是读为命令

快捷键(光标定位)解释 (参照光标位置)
h
l
水平向左移动
水平向右移动
j
k
垂直向上移动
垂直向下移动
w
W
移动到下一个单词的首字符处
移动到下一个长单词的首字符处
e
E
移动到下一个单词的结尾字符处
移动到下一个长单词的结尾字符处
b
B
移动到前一个单词的首字符处
移动到前一个长单词的首字符处
0
$
移动到行首
移动到行尾
(
)
移动到句首
移动到句尾
{
}
移动到段首
移动到段尾
gg
G
到第一行
到最后一行
<n>G
:<n>
跳转到第n行
如11G和:11(命令模式)
Ctrl+B/Page Up
Ctrl+F/Page Down
翻到上一页
翻到下一页
快捷键 (删除)解释 (参照光标位置)
x
<n>x
删除(剪切)当前字符
删除(剪切)后面n个字符
dd
<n>dd
删除(剪切)当行
删除(剪切)n行
dG
D
从当行删除到文件尾
从当前位置删除到行尾
:<n1>,<n2>d从n1行删除到n2行(如:566,666d,命令模式)
ZZ保存退出
快捷键 (复制剪切)解释 (参照光标位置)
yy
nyy
复制当前行
复制下面n行
dd
ndd
剪切当前行
剪切下面n行
p
P
粘贴在下一行
粘贴在上一行
快捷键(覆盖)解释 (参照光标位置)
r取代光标所在处字符
R覆盖模式,按Esc退出
u撤销上一步操作
快捷键 (查找替换)解释 (参照光标位置)
/ keyword
n
N
搜索关键字
下一个
上一个
:%s/oldworld/newworld/g
范围: %s 或者 n1,n2s
选项: c/g
:范围/被替换词/替换词/选项
全文范围/两行之间
每个询问/不询问
一些举例
:1,4s/^/#/g          1-4行添加行首注释
:1,4/^#//g           1-4删除行首注释
:1,4/^/[\\/\\/]/g    1-4行添加//注释(\\表示转义)
:1,4/^[\\/\\/]//g    1-4删除//注释

自定义快捷键

nmap(普通模式)
vmap(可视模式)
imap(插入模式)
cmap(命令行模式)

快捷键设置解释
:map <C-/> 0i#<ESC>Ctrl+/: 行首添加 #
:map <C-b> 0xCtrl+b: 删除行首字符
:map <C-S-p> pCtrl+Shift+p: 粘贴当前行
:map <A-S> :wq<CR>Alt+S: 保存并推出
C, S, A, F Ctrl, Shift, Alt , Fn 键
永久快捷键请创建~/.vimrc文件,直接写命令不需要写冒号:

进入插入模式

在正常模式下按:

操作符命令解释(参照光标位置)
a在下一个位置追加
A在行尾追加
i在光标处插入
I在行首插入
o在下方另起一行
O在上方另起一行

命令模式(底行模式)

命令解释
:w
:q
写入更改,或者另存文件:w newfile
退出vim
:[w/q/wq]!强制 (写入保存/不保存退出/保存并推出)
:! [commd]感叹号单独使用时可以临时执行外部命令行命令
:/[keyword]
:?[keyword]
查找下文关键词
查找上文关键词
:set nu 
:set nonu
显示行号
不显示行号
:set ic
:set noic
不区分大小写
区分大小写
:r [file]
:r ![commd]
导入文件内容到光标处
将命令执行结果写入光标处
:ab mail xiaomin@abc.com为长文本添加别名
#编辑一些配置文件后可以使用source命令刷新
$ vim /etc/locale.conf
LANG="zh_CN.UTF-8"
$ source /etc/locale.conf