vim 入门命令


下面列取的命令是我最常用到到,但只是vim支持命令的一部分。


1. 模式

  • normal (esc) : 其它模式下按 esc 键可以切换到 normal 模式
  • i nsert :在 normal 模式或 visual 模式下,按 i/I/a/A/c 等等一些键可以切换到 insert 模式
  • v isual : 在 normal 模式下按 v 切换到 visual 模式
  • r eplace :在 normal 模式下按 r/R 切换到 replace 模式
    综上可以看出,normal 模式是基本模式,可以方便到切换到另外到三种模式。

2. 移动

h或退格: 左移一个字符;
l或空格: 右移一个字符;
j: 下移一行;
k: 上移一行;

[Word]
w: 前移一个单词,光标停在下一个单词开头;
W: 移动下一个单词开头,但忽略一些标点;

[End]
e: 前移一个单词,光标停在下一个单词末尾;
E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点;

[Back]
b: 后移一个单词,光标停在上一个单词开头;
B: 移动到上一个单词开头,忽略一些标点;

(: 前移1句。
): 后移1句。
{: 前移1段。
}: 后移1段。

[Find]
fc: 把光标移到同一行的下一个c字符处
Fc: 把光标移到同一行的上一个c字符处
tc: 把光标移到同一行的下一个c字符前
Tc: 把光标移到同一行的上一个c字符后

;: 配合f & t使用,重复一次
,: 配合f & t使用,反向重复一次

0: 移动到行首。
^: 移动到本行第一个非空白字符。
$: 移动到行尾。

n|: 把光标移到n列上。
nG: 到文件第n行。

H: [high]把光标移到屏幕最顶端一行。
M: [middle]把光标移到屏幕中间一行。
L: [low]把光标移到屏幕最底端一行。

gg: 到文件头部。
G: 到文件尾部。

3 翻屏

ctrl+f: [forward]下翻一屏。
ctrl+b: [back]上翻一屏。
ctrl+d: [down]下翻半屏。
ctrl+u: [up]上翻半屏。

zz: 将当前行移动到屏幕中央。
zt: [top]将当前行移动到屏幕顶端。
zb: [botom]将当前行移动到屏幕底端。

4 标记[mark]

m{a-z}: 标记光标所在位置,局部标记,只用于当前文件。
m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。`{a-z}: 移动到标记位置。
'{a-z}: 移动到标记行的行首。
`{0-9}:回到上\[2-10\]次关闭vim时最后离开的位置。
``: 移动到上次编辑的位置。
:marks 显示所有标记。
:delmarks a b -- 删除标记a和b。
:delmarks a-c -- 删除标记a、b和c。
:delmarks! -- 删除当前缓冲区的所有标记。

5 插入

!!插入命令配合数字,可以成倍执行。

[insert]
i: 在光标前插入;
I: 在当前行第一个非空字符前插入;
gI: 在当前行第一列插入;

[add]
a: 在光标后插入;
A: 在当前行最后插入;

[open]
o: 在下面新建一行插入;
O: 在上面新建一行插入;

[replace]
:r filename在当前位置插入另一个文件的内容。
:r !date 在光标处插入当前日期与时间。
:r !command可以将其它shell命令的输出插入当前文档。

[change]
c\[n\]w: 改写光标后1(n)个词。
c\[n\]l: 改写光标后n个字母。
c\[n\]h: 改写光标前n个字母。
\[n\]cc: 修改当前\[n\]行。
ci{: [change in]对{}内的所有词改写。'{'可以更换为其它成对的符号,例如'"','('等。
caw: [change a word]改变光标所在单词。

[switch]
\[n\]s: 以输入的文本替代光标之后1(n)个字符,相当于c\[n\]l。
\[n\]S: 删除指定数目的行,并以所输入文本代替之。

6 剪切/粘贴/拷贝

[ctrl + x]
\[n\]x: 剪切光标右边n个字符,相当于d\[n\]l。
\[n\]X: 剪切光标左边n个字符,相当于d\[n\]h。

[yank]
y: 复制在可视模式下选中的文本。
yy: 复制整行文本。
y\[n\]w: 复制一(n)个词。
y\[n\]l: 复制光标右边1(n)个字符。
y\[n\]h: 复制光标左边1(n)个字符。
y\$: 从光标当前位置复制到行尾。
y0: 从光标当前位置复制到行首。
ygg: 复制光标以上的所有行。
yG: 复制光标以下的所有行。
yaw和yas:复制一个词和复制一个句子,即使光标不在词首和句首也没关系。

[delete]
d: 删除(剪切)在可视模式下选中的文本。
d$ or D: 删除(剪切)当前位置到行尾的内容。
d\[n\]w: 删除(剪切)1(n)个单词。
d\[n\]l: 删除(剪切)光标右边1(n)个字符。
d\[n\]h: 删除(剪切)光标左边1(n)个字符。
d0: 删除(剪切)当前位置到行首的内容。
\[n\] dd: 删除1(n)行。
d1G或dgg: 剪切光标以上的所有行。
dG: 剪切光标以下的所有行。
daw和das:剪切一个词和剪切一个句子,即使光标不在词首和句首也没关系。

[paste]
p: 在光标之后粘贴。
P: 在光标之前粘贴。

7 文本对象

aw:[a word]一个词。
as:[a sentence]一句。
ap:[a paragraph]一段。
ab:[a block]一块(包含在圆括号中的)。

y/d/c/v 都可以接一个对象。此外还能接f/F/t/T等查找命令。

8 寄存器

a-z:都可以用作寄存器名。
"ayy把当前行的内容放入a寄存器。
A-Z:用大写字母索引寄存器,可以在寄存器中追加内容。 如"Ayy把当前行的内容追加到a寄存器中。
:reg 显示所有寄存器的内容。
"+:系统剪贴板。
"+yy:把当前行的内容放入系统剪贴板。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值