vim常用命令

详细命令列表可在线查阅:

http://wiki.ubuntu.org.cn/index.php?title=UbuntuSkills&variant=zh-cn

vim:

进入vim

%vim test 此刻屏幕上会出现 vim 的编辑视窗,同时 vim 会将文件复制一份至记忆体中的缓冲区 (buffer) vim会保留在磁盘中的文件不变,而先对缓冲区的文件作编辑,编辑完成后,使用者可决定是否要取代原来旧有的文件。

离开vim 若在输入模式下,则先利用《ESC》进入指令模式,而后即可选用下列指令离开vim

q! 离开vim,并放弃刚在缓冲区内编辑的内容。

wq 将缓冲区内的资料写入磁盘中,并离开vim

ZZ wq

x wq

w 将缓冲区内的资料写入磁盘中,但并不离开vim

q 离开vim,若文件被修改过,则会被要求确认是否放弃修改的内容。

vim 的操作模式

vim 提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。当使用者进入 vim 后,即处在指令模式下,此刻键入之任何字符皆被视为指令。在此模式下可进行删除、修改等动作。若要输入资料,则需进入输入模式。

输入模式

如何进入输入模式

a (append) 由光标之后加入资料。

A 由该行之末加入资料。

i (insert) 由光标之前加入资料。

I 由该行之首加入资料。

o (open) 新增一行于该行之下供输入资料之用。

O 新增一行于该行之上供输入资料之用。

 

如何离开输入模式

ESC》 结束输入模式。

 

指令模式

光标之移动

h 向左移一个字符。

J 向上移一个字符。

K 向下移一个字符。

L 向右移一个字符。

移至该行之首

$ 移至该行之末。

^ 移至该行的第一个字符处。

H 移至视窗的第一列。

M 移至视窗的中间那列。

L 移至视窗的最后一列。

G 移至该文件的最后一列。

+ 移至下一列的第一个字符处。

- 移至上一列的第一个字符处。

( 移至该句之首。 (注一)

) 移至该句之末。

{ 移至该段落之首。 (注二)

} 移至该段落之末。

nG 移至该文件的第 n 列。

n+ 移至光标所在位置之后的第 n 列。

n-  移至光标所在位置之前的第 n 列。

注一:句子(sentence)vim中是指以『!』、『.』或『?』结束的一串字。

注二:段落(paragraph)vim中是指以空白行隔开的文字.

视窗的移动

^F 视窗往下卷一页(front)

^B 视窗往上卷一页(back)

^D 视窗往下卷半页(down)

^U 视窗往上卷半页(up)

^E 视窗往下卷一行

^Y 视窗往上卷一行

^表示Ctrl

Operator + Scope command

运算子:

d 删除指令。删除资料,但会将删除资料复制到记忆体缓冲区。

y 将资料(字组、行列、句子或段落)复制到缓冲区。

p 放置(put)指令,与 d y 配和使用。可将最后deleteyank的资料放置于光标所在位置之行列下。

c 修改(change)指令,类似deleteinsert的组和。删除一个字组、句子等之资料,并插入新键资料。

 

范围:

e 由光标所在位置至该字串的最后一个字符。

w 由光标所在位置至下一个字串的第一个字符。

b 由光标所在位置至前一个字串的第一个字符。

$ 由光标所在位置至该行的最后一个字符。

由光标所在位置至该行的第一个字符。

) 由光标所在位置至下一个句子的第一个字符。

( 由光标所在位置至该句子的第一个字符。

{ 由光标所在位置至该段落的最后一个字符。

} 由光标所在位置至该段落的第一个字符。

 

整行动作:

dd 删除整行。

D 以行为单位,删除光标后之所有字符。

cc 修改整行的内容。

yy yank整行,使光标所在该行复制到记忆体缓冲区。

 

删除与修改

x 删除光标所在该字符。

X 删除光标所在之前一字符。

dd 删除光标所在该行。

r 用接于此指令之后的字符取代(replace)光标所在字符。如: ra 将光标所在字符以 a 取代之。

R 进入取代状态,直到《ESC》为止。

s 删除光标所在之字符,并进入输入模式直到《ESC》。

S 删除光标所在之该行资料,并进入输入模式直到《ESC》。

 

取消前一动作(Undo) 即复原执行上一指令前的内容。

u 恢复最后一个指令之前的结果。

U 恢复光标该行之所有改变。

搜寻 vim中可搜寻某一字串,使光标移至该处。

/字串 往光标之后寻找该字串。

?字串 往光标之前寻找该字串。

n 往下继续寻找下一个相同的字串。

N 往上继续寻找下一个相同的字串。

 

环境的设定

set nu 设定资料的行号。

set nonu 取消行号设定。

set ai 自动内缩。

set noai 取消自动内缩。

自动内缩(automatic indentation)

删除、复制及移动

10,20d 删除第10行至第20行的资料。

10d 删除第10行的资料。

%d 删除整个编辑缓冲区。

10,20co30 将第10行至第20行的资料复制至第30行之后。

10,20mo30 将第10行至第20行的资料移动至第30行之后。

 

详细命令列表可在线查阅:

http://wiki.ubuntu.org.cn/index.php?title=UbuntuSkills&variant=zh-cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值