基本操作
- 交换两个字符位置:
xp
- 上下两行调换:
ddp
- 把文件内容反转:
:g/^/m0/
- 解释:
xp
和ddp
应该理解为删除一个字符 (x) 和删除一行 (dd),然后再粘贴 (p),这样便不需记新命令了。
- 解释:
- 按行反转文件内容:
:g/^/m0/
- 解释:
m --> move0 --> line No 1
- 试想,从第1行开始,每一行依次放在文件的开头处,会有什么结果?
- 解释:
- 上下两行合并:
J
- 删除光标至文件尾所有行:
dG
- 从当前位置删除到行尾:
d$
- 从当前位置复制到行尾:
y$
- 粘贴到其他地方:
p
- 拷贝从光标行起的下 n 行内容:
nyy
- 单个字符替换:
r
- 覆盖多个字符:
R
- 用多个字符替换一个字符:
s
- 整行替换:
S
- 往右移动到 x 字符上:
fx
- 往左移动到 x 字符上:
Fx
- 往右移动到 x 字符前:
tx
- 往左移动到 x 字符后:
Tx
- 文件加密:
:X
- 解释: 对文件进行加密,有密码保护。加密后的脚本不能被解释执行!
- 取消密码:
:set key=
然后直接输入 Enter 并保存文件。
- **在行的首尾分别加上 == 和 **:
:s/^.*$/==>&<==/
- 解释:
.
重复上一次修改!
- 解释:
- 为文本搬入行号:
:g/^/ s//\=line('.').' '/
- 为文本末尾搬入行号*10:
:g/$/ s//\=','.line('.')*10/
- 删除当前文件中所有包含 test 的行:
:g/test/d
- 删除当前文件中所有不包含 test 的行:
:v/test/d
- 统计匹配次数:
%s/replace_with_your_keywords//gn
典型的操作: 0 <C-v> <C-d> I--
^
到行头<C-v>
开始块操作<C-d>
向下移动 (你也可以使用 hjkl 来移动光标,或是使用 %,或是别的)I--
插入“—”,按 ESC 键来为每一行生效。- 在 Windows 下的 vim,你需要使用
<C-q>
而不是<C-v>
,<C-v>
是拷贝剪贴板。
- 在 Windows 下的 vim,你需要使用
在 Insert 模式下,你可以输入一个词的开头,然后按 <C-p>
或 <C-n>
,自动补齐功能就出现了。
J
把所有的行连接起来(变成一行)<
或>
左右缩进=
自动给缩进gg=G
全部格式化缩进- 在 visual 模式下,选中要查字数的片段后,按
g
再按Ctrl+g
,然后在下面就会显示有多少个字节,有多少个字。