vi编辑器

vi编辑器简介:

vi是UNIX和Linux系统内嵌的标准正文编辑器,是一种交互类型的正文编辑器,是一种命令行方式的正文编辑器,可以在图形界面没有启动的情况下工作,是全屏幕正文编辑器,可以用来创建和修改正文文件,操作系统管理和维护时非常有用,vi是visual interface to the ex editor 的前两个单词的首字母。使用vi编辑一个正文文件时,vi将文件中的所有正文放入一个内存缓冲区,所有的操作都是在这个内存缓冲区中进行的,可以选择将所做的修改写到磁盘上,也可以放弃这些修改,在Red Hat Linux和Oracle Linux系统上的vi编辑器实际上是vim。vim是vi improved的缩写、是一种开源的vi编辑器而且加入了许多扩展的特性。

启动vi编辑器:

vi [选项] [文件名],两个比较重要的选项分别是-r和-R,使用-r选项来恢复这个文件: vi -r 文件名 -R选项以只读方式打开文件: vi -R 文件名,使用vi编辑器开启文件news:vi news

vi编辑器底部显示的信息:

在vi窗口的左下角开始从左到右顺序显示:

1.文件名news

2.3L表示这个文件中一共有3行

3.170C表示这个文件一共有170个字符

4. 1.1表示目前光标在第1行的第1个字符处,如果移动光标的位置,这个列号或字符也会随之而变

5.右下角的All表示目前显示的是文件的全部内容

要退出vi编辑器,可以输入冒号:之后再输入小写字母q并按Enter键。

vi编辑器的操作模式:

vi是一种由模式的编辑器:一种模式就像一个环境一样,在不同的模式下相同的键会被vi解释为不同的含义。vi具有以下三种模式:

1.命令行模式:默认模式、所有往一个文件中输入正文

2.编辑模式:可以往一个文件中输入正文

3.扩展模式:可以使用一些高级编辑命令。按Esc键将退出当前的vi模式,连续两次按Esc键总是返回命令行模式。

进入插入模式:

从vi命令行模式进入插入模式的命令行如下:

a:进入插入模式并在光标之后进行添加

i:进入插入模式并在光标之前进入插入

A:键入插入模式并在当前行之后进行添加

I:进入插入模式并在当前行之前插入

o:进入插入模式并在当前行之下开启新的一行

O:进入插入模式并在当前行之上开启新的一行

修改、删除与复制操作:

修改、删除和复制等操作只能在命令模式下进行,使用频率较高的一些编辑命令如下:

操作的第1个字母为命令、c是Change的第1个字母、d是Delete的第1个字母等,操作的第2个字母是要操作的对象、一般是所对应的第1列的第1个字母,但第1行为重复代表命令的字母。

编辑光标所在位置的命令:

编辑光标所处命令的含义(Yank是复制的意思)

cc:修改光标所在行(Change Line)、第2个c是代替Line

dd:删除光标所在行(Delete Line)、第二个d也是代替Line

yy:复制光标所在行(Yank Line)、第2个y也是代替Line

cl:修改光标所在字符(Change Letter)、l是Letter的第1个字符

dl:删除光标所在字符(Delete Letter)l是Letter第1个字符

yl:复制光标所在字符(Yank Letter)l是Letter的第1个字符

cw:修改光标所在字(Change Word),w是Word的第1个字符

dw:删除光标所在字(Delete Word)、w是Word的第1个字符

yw:复制光标所在字(Yank Word)、w是Word的第1个字符

操作句子的命令:

c):向前修改光标所在的句子

d):向前删除光标所在的句子

y):向前复制光标所在的句子

c(:向后修改光标所在的句子

d(:向后删除光标所在的句子

y(:向后复制光标所在的句子

操作段落的命令:

操作段落的命令如下:

c{:向上修改光标所在的段落

d{:向上删除光标所在的段落

y{:向上复制光标所在的段落

c}:向下修改光标所在的段落

d}:向下删除光标所在的段落

y}:向下复制光标所在的段落

vi的粘贴命令:

vi的粘贴命令是p(小写)或P(大写),p或P并不是paste的首字母而是put的首字母,如果之前删除、修改或复制的是数据行:p(小写)将数据放置(粘贴)在当前行之下,P(大写)将数据放置(粘贴)在当前行之上。如果之前删除、修改或复制的数据是字符:p(小写)将数据放置(粘贴)在光标之后,P(大写)将数据放置(粘贴)在光标之前。

复原和重做及vi可视模式,vi提供了如下复原和取消恢复命令:

u:复原最近一次失误变更、u是undo的第1个字母

Ctrl+R:取消最近一次复原、R是Redo的第1个字母

U:复原当前行(光标所在行)的所有变化

为了选择字符或字符串,首先由进入vi可视模式,可使用如下方式进入vi的可视模式:v:选择光标所在的字符并进入可视模式,V:选择光标所在的整行并进入可视模式。可视键可与光标移动键组合使用选择所需正文。

关键字的搜索:

vi提供了关键字搜索的方法来邦之用户快速而方便地找到所需的文件内容,其搜索命令如下:/关键字:向下搜索关键字(正文),?关键字:向上搜索关键字(正文)。使用以上之一的搜索命令搜索到关键字之后,可使用如下命令继续进行同方向或反方向的搜索:n:继续进行同方向的搜索,N:继续进行同反向的搜索。

常用编辑命令及编辑技巧:

常用加快编辑速度的命令如下:

dtc:删除从光标所在处到字符c的全部内容

rc:删除光标所在处的字符并以字符c取代、c是任意一个字符

cw:进入插入模式用输入覆盖光标处到该单字结尾所处有内容

x:删除光标所在处的字符

J:将当前行与之下的行合并

~:转换光标所在字母大小写

ndd:删除n行(从光标所在行算起)、n是自然数,如3、4、5

nyy:复制n行

nx:删除n个字符

R:以输入的字符替代原有的字符直到按Esc键为止

.:重复之前的命令

扩展模式与文件存储和退出:

vi的扩展模式也叫最后一行模式,在命令行模式下按冒号:键即可进入扩展模式,按Esc键重新返回命令模式。在扩展模式下可以使用的命令如下:

:w:将文件存入/写入(saves/writes)磁盘

:q:退出(quites)vi编辑器(并不存盘)

:wq:将文件存入/写入磁盘并退出(quits) vi

以上每个命令之后都可以加上!------ !是强制执行的意思。

快速移动光标:

适合长距离快速移动光标在文件中位置的命令:

G:跳转到文件的最后一行、G是go的第1个字母

nG:跳转到文件的第n行 ------ n为自然数1、2、3等

Ctrl+d:光标下移半屏幕、d是down的第1个字母

Ctrl+u:光标上移半屏幕、u是up的第1个字母

快速在屏幕中移动光标的位置的命令:

H(High):光标跳到屏幕第1行 ------ 即最上面一行

M(Middle):光标跳到屏幕正中间的那一行

L(Low):光标跳到屏幕最后一行 ------ 即最下面一行

z<Enter键>:使(光标所在)当前行变为屏幕第1行

vi的过滤功能:

vi中可直接使用Linux命令,这就是vi所谓过滤功能(Filtering)功能,利用这一功能可方便快捷的完成以下文件操作:将一个命令的输出结果存在编辑的文件,将正在编辑的文件中的数据作为一个命令的输入。在命令行模式按下!!,在vi窗口左下角将出现:.!的提示信息,这就表示可输入LInux命令了。

设置vi编辑器工作方式:通过设置vi编辑器的变量的方式来改变vI的显示或工作方式以适应实际工作环境的需要。当设置了一个vi变量的值时,实际上是用所设置的特性覆盖了vi默认的特性。在vi命令行模式下,输入:set命令可浏览常用的vi变量及其默认设定的值。在vi命令行模式下,输入:set all命令可浏览全部的vi变量及其默认设定值。

经常用到的vi变量:

可能经常会用到的vi变量如下:

:set nu:显示行号、nu为numbers的前两个字母

:set noun:隐藏(不显示)行号

:set ic: 指令中搜寻时忽略大小写

:set notc:指令中搜寻时区分大小写

:set list:显示不可见字符(如制表键和行结束符)

:set nolist:关闭显示(不显示)不可见字符

:set showmode:显示当前操作的模式

:set noshowmode:不显示当前操作的模式

永久设定变量的设置:

如每次开启vi是时都需某些变量的特定设置,可将这些变量的特定设置放在一个名为.exrc文件中,在一些Linux中该文件的名也可以是.vimrc。它存放在用户的家目录中,其操作步骤如下:1.在用户家目录中创建一个名为.exrc的文件2.将设置vi变量值的命令放入.exrc文件3.在输入set命令时没有前导的冒号4.文件中每一行只存放一条命令。每当用户开启一个vi会话时,无论当前目录是哪个,vi都度用户家目录中的.exrc文件。

搜寻和替代关键字:

vi中有自动查找并替代关键字的命令,查找和替代关键字必须在vi扩展模式下使用,这些命令是使用sed的方式进行查找和替代的。查找和替代命令指定搜寻和替代的范围:

不指定:仅为当前行

n1,n2:从n1到n2行,其中n1和n2都是自然数

1,$或%:整个文件

.,.+n:从当前行到当前行加n行

.,.-n:从当前行到当前行减n行

间接读写文件操作:

vi引入了一些同时编辑多个文件的命令,所有这些命令必须在扩展模式使用,常用读写不同文件的命令如下:

:r dog:将名为dog的文件的内容读入到当前文件中,:n1,n2w cat:将n1到n2的内容写入文件cat,1,$w wolf:将当前文件的全部内容写入文件.wolf    :n1,n2w >> fox:将n1到n2的内容加到文件fox末尾。

文件之间的切换:

在使用vi同时编辑器(开启)多个文件时,还可以使用如下vi命令在不同文件之间进行切换:

:n:从当前文件切换到下一个,n是next的第1个字母

:rew:倒转到第1个文件、rew是rewind的前3个字母

:n#:跳转到前一个文件、可用来在两个问价之间来回跳转。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 编辑器-vi、vim的使用

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    于小勇
  • tf.ones_initializer

    于小勇
  • Linux文件操作

    h:块特殊文件、一般是指块设备------如硬盘、字符特殊文件、一般是指字符设备-------如键盘

    于小勇
  • Linux 系统 vim 编辑器使用简明教程

    vi(vim)是上Linux非常常用的代码编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。v...

    Debian社区
  • Liunx命令行:vi详解

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + ...

    用户5640963
  • 设计进阶必读 | 如何提升界面设计的可读性?

    再动人心魄的故事,如果无法以清晰易懂的方式讲给读者,读者永远也不可能被你的故事吸引。同样地,对设计师而言,无论你的设计多么用心,如果可读性无法保障,用户也绝对不...

    用户5009027
  • Linux篇---Vi的使用

     1、打开文件 vim /path/to/somefile vim +# :打开文件,并定位于第#行 vim +:打开文件,定位至最后一行 vim +/PAT...

    LhWorld哥陪你聊算法
  • 初学者必会的Linux命令 - 基本操作篇

    聚沙成塔
  • 如何精准地找到问题答案

    搜索,是每个开发者必备功力。然而,在实际工作中,由于所用搜索引擎的限制,总是会遇到各种各样的坑。下面罗列几个,看看你是否遇到过。

    老齐
  • 已知线段上某点与起点的距离,求该点的坐标

    的位置。在方向向量由起止点确定,且点在线段内的情况下,t的取值范围为0到1:取值为0时就是起点

    charlee44

扫码关注云+社区

领取腾讯云代金券