vim命令速记


vim命令速记…

使用方法

三种模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
编辑模式 ↔ 一般模式 ↔ 命令行模式
一般模式与另外两种可以相互切换,另外两种之间无法直接切换
一般模式→编辑模式:i I a A o O r R
i 光标在当前位置编辑
I 行首编辑
a 光标的下一个字符处编辑
A 行尾编辑
o 当前行的下一行开始编辑
O 上一行开始编辑
r 对当前字符进行替换
R 对光标处之后的本行字符替换
编辑模式→一般模式: [ESC]
一般模式→命令行模式: : / ?
命令行模式→一般模式: [ESC]

一般模式下光标移动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
j 向下一行
k 向上一行
h 向左一个字符
l 向右一个
3j 向下3行
20l 向右20个字符
20[space] 向右20个字符,与上

ctrl+f 向下一页
ctrl+b 向上一页

0或^或[end] 到本行第一个字符处
$或[home] 到本行最后一个字符

G 到最后一行
30G 到第30行
gg 到第一行
n[enter] 向下n行

一般模式下查找替换

1
2
3
4
5
6
7
/word 向下寻找名为word的单词
?word 向上寻找名为word的单词
n 重复前一个查找动作,向下查找
N 重复前一个查找动作,向上查找
:n1,n2s/word1/word2/g n1行与n2行之间查找word1,替换为word2
:1,$s/word1/word2/g 1到最后一行...
:1,$s/word1/word2/gc 提示用户对每一个替换进行确认

删除/剪切& 复制 & 粘贴

1
2
3
4
5
6
7
8
9
10
11
12
13
14
x 向后删除一个字符
X 向前删除一个字符
3x 向后删除3个字符
dd 删除/剪切当前行
ndd 向下删除/剪切n行
dnG 删除/剪切光标所在行到第n行
d$ 删除/剪切光标到该行最后一个字符
d0 删除/剪切光标到该行第一个字符
yy 复制当前行
nyy 复制往下n行
ynG 复制光标所在行到第n行
... y的与d类似
p 粘贴到下一行
P 粘贴到上一行

撤销 & 还原撤销

1
2
u 撤销相当于windows下ctrl+z
ctrl+r 还原撤销 相当于ctrl+y

选中 & 复制 & 粘贴

1
2
3
4
5
6
7
8
9
v 进入visual模式,即文本选择模式
ctrl+v 进入块选择模式,可选中一列数据
v+ j/k/h/l 进行文本选中
对于选中的文本进行如下按键:
d:剪切操作
y:复制操作
p:粘贴操作
^:选中当前行,光标位置到行首(或者使用键盘的HOME键)
$:选中当前行,光标位置到行尾(或者使用键盘的END键)

命令行模式

1
2
3
4
5
6
7
8
9
10
:w 写入硬盘≈ctrl+s,write的首字母
:q 退出
:q! 强制退出
:wq 保存并退出
: w[filename] 另存为名为filename的文件
:n1,n2 w [filename] n1行到n2行的内容另存为filename文件
:! command command代表想要执行的命令
:set nu 显示行号
:set nonu 取消显示行号
:

  • 一般小写是往后,对应大写是往前。
  • 活用数字,比如33j是光标向下移动33行。

多窗口功能

1
2
3
4
:sp [filename]  再打开一个窗口,显示filename文件内容。不加文件名,显示同一文件内容。
ctrl+w+j 切换到下一个窗口
ctrl+w+k 上一个窗口
ctrl+w+q 退出当前窗口

常用配置

1
2
3
vim /etc/vim/vimc 或者 vim ~/.vimrc (本文件默认不存在)
set set ts=4 #设置tab键为四个空格
set autoindent #自动缩排

其他问题

编码问题

遇到时再说…

相关资料

欢迎与我分享你的看法。
转载请注明出处:http://taowusheng.cn/