晓风博客

一片荒芜的地方

Vim快键键备忘录

不支持Vim快键键的编辑器不是好记事本…目测一大波Emacs人士正在狂奔而来。。。

虽说没必要太过于纠结某个IDE或者编辑器,但是配置一个舒心应手的编辑器还是十分有必要的。用了两天Vim模式,感觉似乎开始慢慢接受了。网上各种快捷键的文章,但是为了保证不入坑还是放上一篇觉得不错的备忘吧。

注:(摘自《鸟哥的Linux私房菜》)

vim的三种模式:

一般模式 —i|o(新增一行)|a(插入)|R(替换)—> 编辑模式 —ESC—> 一般模式

一般模式 —:|/|?—> 命令行模式 —ESC—> 一般模式

常用快捷键 * 一般模式

按键 说明
h或← 光标左移一个字符。如果是30h,表示左移30个字符,下同
j或↓ 光标下移一个字符
k或↑ 光标上移一个字符
l或→ 光标右移一个字符
[Ctrl]+[f] 屏幕向下移动一页
[Ctrl]+[b] 屏幕向上移动一页
0或[Home] 移动到此行最前面字符处
H 光标移到当前屏幕最上方行的第一个字符
M 光标移到当前屏幕最中间行的第一个字符
L 光标移到当前屏幕最下方行第一个字符
G 到此文件最后一行
nG 移动到第n行
gg 相当于1G,即到行首
n[Enter] 光标下移n行
/word 向下查找单词“word”
?word 向上查找单词“word”
n 英文按键,表示重复前一个查找操作
N 与n相反
:s/word1/word2/g 在当前行查找word1替换成word2
:%s/word1/word2/g 在当前文件查找word1替换成word2
:n1,n2s/word1/word2/g 在n1到n2行查找word1替换成word2
:1,$s/word1/word2/g 在1到最后一行查找word1替换成word2
:1,$s/word1/word2/gc 同上,在替换前confirm用户是否替换
x 向后删除一个字符
nx 向后删除n个字符
X 向前删除一个字符
dd 删除光标所在行
ndd 删除光标所在行以下n行
d1G 删除光标所在行到第一行所有数据
dG 删除光标所在行到最后一行所有数据
d$ 删除光标所在处到同行最后一个字符
d0 删除光标所在处到同行第一个字符
yy 复制光标所在行
nyy 复制光标所在向下n行
y1G 复制光标所在行到第一行所有数据
yG 复制光标所在行到最后一行所有数据
y$ 复制光标所在处到同行最后一个字符
y0 复制光标所在处到同行第一个字符
p 将已复制的数据粘贴到光标所在下一行
P 同上,粘贴到上一行
u 复原前一个操作
[Ctrl]+r 重做上一个操作
. 重复前一个操作
按键 说明
i 从光标所在处插入
l 在所在行第一个非空白字符处插入
a 从光标所在下一个字符处插入
A 从光标所在行最后一个字符处插入
o 在光标所在处下一行插入新的一行
O 在光标所在处上一行插入新的一行
r 替换光标所在处字符一次
R 一直替换光标所在处文字知道Esc
按键 说明
:w[filename] 另存为filename
:r[filename] 读取filename到光标所在行后面
:n1,n2 w[filename] 将n1到n2行另存为filename
:! command 临时切换到命令行模式下执行command,如::! ls /tmp
:set nu 显示行号
:set nonu 取消显示行号

块选择

按键 说明
V 开始块选择,光标移过的行将会被选择
[Ctrl]+v 块选择,开始选择矩形区域
y 将所选区域复制
d 将所选区域删除

多文件编辑 使用vim file1 file2开始多文件编辑

按键 说明
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出打开的所有文件

多窗口 在命令行模式输入:sp[filename]即可打开多个窗口,输入filename则会打开另一个文件,否则只是切割当前文件。

按键 说明
[ctrl]+w+j或[ctrl]+w+↓ 光标移到下方窗口
[ctrl]+w+k或[ctrl]+w+↑ 光标移到上方窗口
[ctrl]+w+q 上下切换窗口

注:这里所有的组合键都是先按住ctrl再按w然后再按下最后一个。

vim设置

配置文件:vim ~/.vimrc

阅读更多