vim命令详解

2017-08-04  本文已影响13人  IT教程

欢迎访问我的个人博客网站:http://www.yanmin99.com/

一、vim模式

编辑模式(命令模式)
输入模式
末行模式
替换模式(正常模式下,按R进入)

二、模式转换

i: 在当前光标所在字符的前面,转为输入模式;
a: 在当前光标所在字符的后面,转为输入模式;
o: 在当前光标所在行的下方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式;
ESC
:
ESC, ESC

三、打开文件

vim +# :打开文件,并定位于第#行
vim +:打开文件,定位至最后一行
vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首

四、关闭文件

ZZ: 保存并退出

五、移动光标

h: 左
l: 右
j: 下
k: 上
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首

六、翻屏幕

Ctrl+f: 向下翻一屏 
Ctrl+b: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
ctrl+e: 向下滚动一行
ctrl+y: 向上滚动一行

七、剪切和复制、粘贴

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

d$ or D: 删除(剪切)当前位置到行尾的内容。
d[n]w: 删除(剪切)1(n)个单词
d[n]l: 删除(剪切)光标右边1(n)个字符。
d[n]h: 删除(剪切)光标左边1(n)个字符。
d0: 删除(剪切)当前位置到行首的内容
[n] dd: 删除(剪切)1(n)行。
:m,nd<cr> 剪切m行到n行的内容。
d1G或dgg: 剪切光标以上的所有行。
dG: 剪切光标以下的所有行。
y: 复制在可视模式下选中的文本。
yy or Y: 复制整行文本。
y[n]w: 复制一(n)个词。
y[n]l: 复制光标右边1(n)个字符。
y[n]h: 复制光标左边1(n)个字符。
y$: 从光标当前位置复制到行尾。
y^: 从光标当前位置复制到行首。
y0: 从光标当前位置复制到行首。
:m,ny<cr> 复制m行到n行的内容。
y1G或ygg: 复制光标以上的所有行。
yG: 复制光标以下的所有行。

3、粘贴

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

八、查找、替换

/something: 在后面的文本中查找something。
?something: 在前面的文本中查找something。
/pattern/+number: 将光标停在包含pattern的行后面第number行上。
/pattern/-number: 将光标停在包含pattern的行前面第number行上。
n: 向后查找下一个。
N: 向前查找下一个。
:s/old/new - 用new替换当前行第一个old。
:s/old/new/g - 用new替换当前行所有的old。
:n1,n2s/old/new/g - 用new替换文件n1行到n2行所有的old。
:%s/old/new/g - 用new替换文件中所有的old。
:%s/^/xxx/g - 在每一行的行首插入xxx,^表示行首。
:%s/$/xxx/g - 在每一行的行尾插入xxx,$表示行尾。
所有替换命令末尾加上c,每个替换都将需要用户确认。 如:%s/old/new/gc,加上i则忽略大小写(ignore)

九、排版

<< 向左缩进一个shiftwidth
>> 向右缩进一个shiftwidth
:ce(nter) 本行文字居中
:le(ft) 本行文字靠左
:ri(ght) 本行文字靠右

十、快速编辑

~: 反转光标所在字符的大小写。
可视模式下的U或u:把选中的文本变为大写或小写
r: 替换光标处的字符,同样支持汉字。
R: 进入替换模式,按esc回到正常模式
[n] u: 取消一(n)个改动。
:undo 5 -- 撤销5个改变。
:undolist -- 你的撤销历史
v: 按字符选取
V:按矩形选取

十一、配置文件

/etc/vimrc    针对所有用户
~/.vimrc    针对当前用户

十二、高级话题

:set nu
:set nonu
:set hlsearch
:set nohlsearch
:syntax on
:syntax off
:set ic
:set noic
上一篇 下一篇

猜你喜欢

热点阅读