Vi常用命令

在linux系统中,常用的文本编译器有三种 ,vi,emacs和gedit。vi是应用最广的文本编译器。emacs和gedit都是图形化的文本编译工具,但是emacs的应用越来越少。不管是嵌入式系统还是在linux服务器系统中,不管是本地操作还是网络终端控制,vi都是最方便的编辑工具。

Vi是visual interface的简称。vi是一个功能强大的文本编辑工具,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。

打开和退出

如果要启动vi,直接使用"vi 文件名"即可,例如要打开hello.c文件,则输入下面的命令即可,

vi hello.c

如果hello.c不在当前目录下,就创建该文件 。启动vi时还有一个中看不中用的功能:如果输入 vi +2 hello.c ,则启动之后就自动跳转文件的第二行。这个其实没什么用,除非你对要操作的文件非常熟悉。但是还有一个不过的用法

vi +/int hello.c
此时,vi打开文件之后将自动跳转到第一个出现int的位置。


如果要退出vi时,可以使用以下几种方法:

1.简单退出

在命令模式下,连按两次大写字母Z,或者在末行模式下输入命令:

:x

这两种方式实现的功能相同,若当前编辑的文件曾被修改过,则vi保存该文件后退出;如果当前编辑的文件没有被修改过,则vi直接退出。

2.保存新文件退出

 在末行模式下输入命令

:w

vi保存当前编辑的文件,但并不退出,而是继续等待用户输入命令。在使用w命令是,可以再给编辑文件起一个新的文件名,例如

:w newfile

此时,vi将把当前文件的内容保存到指定的newfile中,而原有的文件保持不变。

如果newfile是一个已经存在的文件,则上面会出现“文件已经存在”错误提示,此时可以使用下面的命令来覆盖newfile文件,或者更换新名称:

:w! newfile

3.直接退出

如果文件没有编辑过,在末行模式下输入下面的命令就可以直接退出。

:q

如果文件已经修改过,现在要放弃修改,直接退出,则可以使用下面的命令。对于初学者,这个命令很管用,因为如果你把文件改乱了时,使用该命令可以保证已有文件不会变,从而可以重新编辑一次。

:q!
4.保存退出

在末行模式下输入下面的命令,则可以保存文件并退出

vi的三种模式

vi有三种模式,或者说三种状态,命令模式,文本输入模式和末行模式。其实给了这样三个名字更容易让人糊涂,下面举一个例子,

vi hello.c,此时打开了文件 hello.c文件,但此时确不能输入需要的文本信息;输入i,再输入经典的hello world 程序就能输入进去了,这就是文本输入模式,文件输入完毕后,按[ESC]键就退出编辑状态。如果想保存信息并退出,则输入:wq,你会发现输入的这几个字符跳到终端最后一行,然后敲击“enter”键就退出了,上述三种状态其实就分别对应了命令模式、文本输入模式和末行模式。

1.命令模式

在vi中,无论用户处于何种状态,按下[ESC]键就使vi进入了命令模式。shell环境下启动vi编辑器时,也处于命令模式下。

在命令模式下,用户可以根据输入各种合法的vi命令,管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释。如果输入的字符是合法的字符,则vi在接收之后就完成相应的动作,例如,假如此时输入i则进入了文本输入模式,而如果输入:wq就将当前内容保存并退出了,如下图所示。

2.文本输入模式

  文本输入模式就是接收用户输入的字符的意思。对于用惯了图形化文本编辑器的人而言,刚开始使用vi的确是一大痛苦。如果要掌握linux系统,这是必须要过的坎。


在命令模式下切换到文本输入模式的方法有三种:

(1)新增内容的命令(append)

 按下字母a:从光标所在的位置后面开始新增内容,光标后的内容随着新增内容向后移动。

 按下字母A:从光标所在行最后面的地方开始新增内容。

(2)插入内容的命令(insert)

 按下字母i键,从光标所在位置前面开始插入内容 ,光标后的内容随着改变。

 按下字母I键:从光标所在行的第一个非空白字前面开始插入内容。

(3)开始(打开)命令(open)

按下字母o键:在光标所在行的下方新增一行并进入文本输入模式。

按下字母O键:在光标所在行的上方新增一行并进入文本输入模式。

(4)删除文本

如果在输入过程中出现错误,想输入删除命令,则必须先按[Ecs]退到命令行模式,输入删除的命令,完成删除之后再进入文本输入模式操作,否则vi会变成不听话的狗。删除的命令有:

删除单个字符:

  x:删除光标处的字符。若在x前加上一个数字n,则删除从光标所在位置开始向右的n个字符。

  X:删除光标前面的那个字符,若在X之前加上一个数字n,则删除从光标前面那个字符开始向左的n个字符。

删除多个字符:

 dd:删除光标所在的整行

D或d$:删除从光标所在处开始到行尾的内容。

(5)取消修改或删除

取消上一条命令是非常有用的命令,它可以取消上一次的误操作或者不合适的操作对文件造成的影响,使之恢复到之前的状态。命令模式下键入字符“u”或“U”,不同之处是U仅仅取消前一步的操作, 如果按了两次U,相当于什么都没做。而u则是把当前行恢复成被编辑前的状态,而不管此行被编辑了多少次。


除此之外,通过修改命令c,取代命令r,替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被vi当做文件内容保存下来,并显示在屏幕上,如果要退出,直接按[ESC]键。

正是因为很多字母有其特殊的含义,如果打开文件之后就急着输入内容,可以看不到自己想要的结果,vi终端会和你急的。

3.末行模式(last line mode )

在命令模式下,用户按下“:”就进入了末行模式。此时vi会显示窗口的最后一行,通常也是在屏幕或者终端的最后一行。显示一个“:”作为末行的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的。如上图所示

如果要从命令模式切换到文本输入模式,可以根据上面(2)中的说明键入相应的命令即可。如果要从文本模式提出,按[Esc]键。

另外还有三个非常有用的命令:

:set nu 显示行号
:set nonu 取消行号
:/待查找的字符串,可以自动定位到要查找的

 






 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纵横千里,捭阖四方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值