Linux常用命令总结——vi编辑器
vi是linux系统命令行界面下的一个强大的编辑器。
Vi的三种模式
命令模式:可通过vi命令来管理文件,如光标的移动,字符、行的删除移动等;
插入模式:可对文件进行编辑;
末行模式:可保存、退出、设置编辑环境等;
进入vi的命令
vifilename:打开或新建文件,并将光标置于第一行首
vi+nfilename:打开文件,并将光标置于第n行首
vi+filename:打开文件,并将光标置于最后一行首
vi-rfilename:在上次正用vi编辑时发生系统崩溃,恢复filename
vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处(在RHEL5中测试没有用)
vifilename....filename:打开多个文件,依次进行编辑(在RHEL5中测试没有用)
退出vi的命令
:w保存
:wfilename另存为filename文件中
:q退出vi,若文件被修改过,则提示要保存
:wq保存并退出,即w和q合成一步,先w后q
:x保存当前文件并退出,和wq等价
:q退出vi
:q!不保存文件并退出vi
移动光标命令
以下的光标移动都是在命令模式下起作用的。
h或space光标左移一个字符
l或Backspace光标右移一个字符
k或Ctrl+p光标上移一行
j或Ctrl+n光标下移一行
$将光标移动到所在行的行尾
H把光标移到屏幕顶行的首字符处
L把光标移到屏幕末行的尾字符处
Ctrl+b屏幕往后移一屏
Ctrl+f屏幕往前移一屏
Ctrl+u屏幕往后移半屏
Ctrl+d屏幕往前移半屏
M:光标移至屏幕中间行
Enter:光标下移一行
w或W:光标右移到下一个字至字首
b或B:光标左移到前一个字至字首
e或E:光标右移到下一个字至字尾
fc把光标移到同一行的下一个c字符处(c可以是任何一个字符)
Fc把光标移到同一行的前一个c字符处
tc把光标移到同一行的下一个c字符的前一格
Tc把光标移到同一行的前一个c字符的后一格
*|把光标移到第*列上(“|”是与符号的竖线,*代表一个整数)
*l把光标往右移动*个字符(“l”是与字符L的小字,*代表一个整数)
*h把光标向左移动*个字符
*k把光标向上移动*个字符
*j把光标向下移动*个字符
)把光标移至句尾
(把光标移至句首
}把光标移至段落开头
{把光标移至段落结尾
*G:光标移至第*行首
*+:光标下移*行
*-:光标上移*行
*$:光标移至第*行尾
插入文本命令
命令 |
描述 |
i |
在当前字符前插入文本 |
I |
在行首插入文本 |
a |
在当前字符后添加文本 |
A |
在行末添加文本 |
o |
在当前行后面插入一空行 |
O |
在当前行前面插入一空行 |
R |
以改写方式输入文本 |
删除文件命令
命令 |
描述 |
x |
删除光标所在位置的字符 |
X |
删除光标所在位置的前一个字符 |
*x |
删除*个字符,从当前光标开始的*个字符 |
d$ |
删除从当前光标到行末的内容 |
d^ |
删除从当前光标到行首的内容 |
dd |
删除当前所在的一行 |
*d |
删除*行,当前所在的一行和后*-1行 |
dw |
删除一个字 |
*dw |
删除*个单词 |
文本替换命令
R替换当前字符
*r用输入的字符取代从当前光标处开开始的*字符
R替换当前字符及其后的字符,直至按ESC键
*R新输入的文本出现*处,如3Rab,将用”ababab”替代.
cc用即将输入的内容替换整行
C替换从光标到末尾的所有内容
cb替换从开始到光标处的内容。
cw替换光标所在的字
[rang]s/pattern/string[选项]
Rang指查找的范围,默认是全部文本。如2,4表示对2行到的行的内容进行替换。
Pattern用来指定需要被替换的内容,可以是正则表达式
Stirng是用来替换pattern的字符串
[选项]:
c每次替换前都进行询问,要求用户确认
e不显示错误
g对指定范围中的字符完成替换,替换时不进行询问
i替换时不区分大小写
【例】在Test.java中将Test替换成test
[aaa@qq.com rootfile]# vi Test.java
public class Test {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
s /Test/test
结果为
public class Test {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
查找命令
在命令模式下输入“/”或“?”,切换到末行模式。
/pattern光标开始处向文件尾搜索pattern,若遇到文件尾,则从文件头开始
?pattern光标开始处向文件首搜索pattern,若遇到文件头,则从文件尾开始
/pattern/+*将光标停在包含pattern的行的后面第*行上
/pattern/-*将光标停在包含pattern的行的前面第*行上
n按原搜索方向重复上一次搜索命令
N按相反方向重复上一次搜索命令
复制和粘贴
yw将光标所在处的字复制到缓冲区
*yw复制从当前字开始的*个字到绥冲区
yy复制光标所在的行到缓冲区
*yy复制光标所在行的*行到缓冲区
y$复制光标所在处到本行末尾的内容到缓冲区
y^复制光标所在处前一个字符到本行开头的内容到缓冲区
yG复制当前光标所在的行到文件尾的内容到缓冲区
lyG复制当前光标所在的行到文件头的内容到缓冲区
p将缓冲区的内容粘贴到当前光标的右侧,如果缓冲区内容为一行,则复制到光标下面一行
P将缓冲区的内容粘贴到当前光标的左侧,如果缓冲区内容为一行,则复制到光标上面一行
重复命令
在用vi编辑文本内容时经常会有一些重复操作,这时就要用到重复命令。重复命令只需要在命令模式下按下“.”即可,基操作是针对光标当前位置进行的。
撤消命令
撤消命令用于取消一次错误的操作,使之回到命令之前的状态。重复命令只需要在命令模式下按下“u”或“U”即可。
上一篇: Android跳转到应用商店的APP详情页面实现方案
下一篇: 平衡 balance