vi常用命令
vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:
在该模式中,可以输入命令来执行许多种功能。控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
2、输入模式(Insert mode)—输入文本
vi被运行时,通常处在命令模式下,键入以下命令 可以使vi退出命令模式,进入输入模式:I(i)、A(a)、O(o)。
3、末行模式(last line mode)—执行待定命令
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。不过一般我们在使用时把vi简化成两个模式,就是将末行模式(last line mode)也算入命令行模式command mode)。
wq:保存并退出
q!:不保存退出
移动光标(命令模式使用)
k nk:向上移动n行
j nj:向下移动n行
h nh:向左移动n列
l nl:向右移动n列
gg 可以移到第一行
G 移到最后一行, nG: 移动到第n行上
w: 光标以单词向前移动 ,nw:光标向前移动n个单词 光标到单词的第一个字母上
b: 与w相反
e: 光标以单词向前移动 ,ne:光标向前移动n个单词 光标到单词的最后一个字母上
ge: 与e相反
$: 移动光标到行尾 n$:移动到第n行的行尾
0(Num):移动光标到行首
^: 移动光标到行首第一个非空字符上去
f: 移动光标到当前行的字符a上,nf: 移动光标到当前行的第n个a字符上
F: 相反
%: 移动到与制匹配的括号上去(),{},[],<>等。
CTRL+G 得到当前光标在文件中的位置
向前翻页:CTRL+F
向下移动半屏:CTRL+G
向后翻页:CTRL+B
删除操作(命令模式使用)
x删除光标处的单个字符
dd删除光标所在行
dw删除当前字符到单词尾包括空格的所有字符
#x 例如3x删除光标处向右的三个字符
#dd 例如3dd从当前行开始向下删除三行文本
撤销操作(命令模式使用)
u命令取消最近一次的操作,可以使用多次来恢复原有的操作
U取消所有操作
Ctrl+R可以恢复对使用u命令的操作
复制操作(命令模式使用)
yy命令复制当前整行的内容到vi缓冲区
yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
y$复制光标所在位置到行尾内容到缓存区
y^复制光标所在位置到行首内容到缓存区
#yy例如:5yy就是复制5行
#yw例如:2yw就是复制两个单词
p 在光标位置处粘贴
如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。
替换(末行模式下使用)
:s/old/new用new替换行中首次出现的old
: s/old/new/g 用new替换行中所有出现的old
:#,# s/old/new/g用new替换从第#行到第#行中出现的old
% s/old/new/g用new替换整篇中出现的old
(末行模式)
显示当前行行号:nu
显示所有行号 : set nu
取消显示行号 :set nonumber
命令前面加数字表示重复次数,加字母表示使用的缓冲区名称。
获取帮助,用:help [内容或命令]