vim命令整理

来源:互联网 发布:java爬虫框架jsoup 编辑:程序博客网 时间:2024/05/23 10:57

以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。

在vim窗口中打开一个新文件

:open file

在新窗口中打开文件

:split file

切换到下一个文件

:bn

切换到上一个文件

:bp

i 在当前位置前插入

I 在当前行首插入

a 在当前位置后插入

A 在当前行尾插入

o 在当前行之后插入一行

O 在当前行之前插入一行

/text  查找text,按n健查找下一个,按N健查找前一个。

?text  查找text,反向查找,按n健查找下一个,按N健查找前一个。

vim中有一些特殊字符在查找时需要转义  .*[]^%/?~$

查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索,相当于/搜索。而#命令相当于?搜索。


r  将当前字符替换,当期字符即光标所在字符。

s/old/new/ 用old替换new,替换当前行的第一个匹配

s/old/new/g 用old替换new,替换当前行的所有匹配

%s/old/new/ 用old替换new,替换所有行的第一个匹配

%s/old/new/g 用old替换new,替换整个文件的所有匹配


h 左移一个字符
l 右移一个字符,这个命令很少用,一般用w代替。
k 上移一个字符
j 下移一个字符
以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入3个!,3a!<Esc>,这里的Esc是必须的,否则命令不生效。


w      向后移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令,可以代替l命令。

b       向前移动一个单词 2b 向后移动2个单词

e       同w,只不过是光标停在单词尾部

ge     同b,光标停在单词尾部


^                移动到本行第一个非空白字符上

数字0        移动到本行第一个字符上

$                移动到行尾 3$ 移动到下面3行的行尾

gg              移动到文件头

G                移动到文件尾(比较有用)


f         将找到(本行)光标后第一个为x的字符,3fd将找到第三个为d的字符

:n       跳到第n行


u        撤销(Undo)
U       撤销对整行的操作


x         删除当前字符

3x       删除当前光标开始向后三个字符

X         删除当前字符的前一个字符

dd       删除当前行

dj        删除上一行

dk       删除下一行

10d    删除当前行开始的10行。

D        删除当前字符至行尾

:1,10d 删除1-10行

:11,$d 删除11行及以后所有的行

yy        拷贝当前行

nyy      拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行

p          在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴


:wq      保存并退出

ZZ        保存并退出

:q!         强制退出并忽略所有更改

:e!         放弃所有修改,并打开原来文件。




2 0