Linux常用命令总结——vi编辑器


vilinux系统命令行界面下的一个强大的编辑器。

Vi的三种模式

命令模式:可通过vi命令来管理文件,如光标的移动,字符、行的删除移动等;

插入模式:可对文件进行编辑;

末行模式:可保存、退出、设置编辑环境等;

进入vi的命令 

vi filename :打开或新建文件,并将光标置于第一行首 
vi +n filename :打开文件,并将光标置于第n行首 
vi + filename :打开文件,并将光标置于最后一行首 
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename 
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 (RHEL5中测试没有用)

vi filename....filename :打开多个文件,依次进行编辑 (RHEL5中测试没有用)

退出vi的命令

:w  保存

:w filename  另存为filename文件中

:q  退出vi,若文件被修改过,则提示要保存

:wq  保存并退出,wq合成一步,先wq

:x  保存当前文件并退出,和wq等价
:q  退出vi 
:q!  不保存文件并退出vi 

移动光标命令

以下的光标移动都是在命令模式下起作用的。

space  光标左移一个字符 
Backspace  光标右移一个字符 

kCtrl+p  光标上移一行 
jCtrl+n   光标下移一行

光标移所在行的

光标移所在行的行尾

光标移屏幕顶行的首字符处

光标移屏幕的尾字符处

Ctrl+b 屏幕往后移一屏

Ctrl+f 屏幕往前移一屏

Ctrl+u 屏幕往后移半屏

Ctrl+d 屏幕往前移半屏

:光标移至屏幕中间行 


Enter :光标下移一行 
w:光标右移到下一个字至字首 
b:光标左移到前一个字至字首 
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用即将输入的内容替换整行

替换从光标到末尾的所有内容

cb 替换从开始到光标处的内容。
cw 替换光标所在的字

[rang] s /pattern/string [选项]

Rang指查找的范围,默认是全部文本。如2,4表示对2行到的行的内容进行替换。

Pattern用来指定需要被替换的内容,可以是正则表达式

Stirng 是用来替换pattern的字符串

[选项]

c  每次替换前都进行询问,要求用户确认

e  不显示错误

g  对指定范围中的字符完成替换,替换时不进行询问

i  替换时不区分大小写


【例】在Test.java中将Test替换成test

[root@localhost 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”即可。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值