第十七章:第16节Linux vi工具——尾行模式下替换、退出等命令

更新于:2019-01-13 17:31:12

命令模式下还有其他的一些命令,了解下:


文本行移动:

>>: 文本行右移
<<: 文本行左移


可视模式:

v: 按字符移动,选中文本
V: 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动


两行合并:

J(大写): 将光标所在行与下一行的数据结合成同一行,小写j是光标往下的命令


这些命令楠神用的不多。接下我们学习尾行模式下的一些命令。


命令模式 进入 尾行模式:先要使用英文冒号(:)


文档编辑完,保存并离开vi,就必须要进入尾行模式。除了保存离开,在尾行模式下还可以做一些编辑型工作。


1)替换


命令模式下也有替换命令:r+字符,它这种只能替换单个字符。而尾行模式下的替换,可以把整个一块字符替换。类似于编辑器下的替换功能:


1.png


替换范围为一行:

:s/abc/123 -> 将当前行中的第一个abc替换为123
:s/abc/123/g -> 将当前行中的abc全部替换为123


替换范围为全部:

:%s/abc/123 -> 将所有行中的第一个abc替换为123
:%s/abc/123/g -> 将所有行中的abc全部替换为123


替换范围为指定行:

:10,30s/abc/123/g -> 将10-30行中的abc全部替换为123

1.png


%表示所有行,g表示替换全部。命令输入完成,点击回车执行。


说明:尾行模式下的命令都需要点击回车执行。


2)退出


文档编辑完,需要保存并退出vi。一般退出命令有:

    :w      //对编辑后的文档进行保存
    :w!     //强制保存
    :q      //退出vi编辑器
    :q!     //强制退出(不保存)
    :wq     //保存并退出编辑器
    :wq!    //强制保存退出


其中w是保存,q离开 ,!强制操作。


正常来说,我们编辑完一个文档,都是:wq这样操作,保存并退出。如果,当前账户编辑的文档只有读权限,不能写,那用wq操作是不成功的。


看演示:


ubuntu账户vi打开

vi /etc/debconf.conf


ubuntu账户只有读权限。使用i命令进入编辑模式,此时文档末行就会有一个警告提示:(正在修改一个只读的文档)


1.png


ubuntu账户可以对文档编辑内容的,当要保存(:w)时


1.png


报错了(设置“只读”选项,添加 ! 重新保存),如果强制保存呢(:w!)?


1.png


依然是不能保存。(无法打开文件进行写入)


提示:一文件属性为『只读』时,强制写入该档案。到底能不能写入, 跟权限、文件属主是否自己有关系。后面章节会做详细介绍。


既然保存不成功,ubuntu账户退出(:q)。


1.png


还是出现问题了。说:文档改变后还没有写入(保存),添加!重新保存。

也就是说,ubuntu账户用普通的退出是不行了,只能强退(:q!)


1.png


成功了。


总结:


w 保存,前提当前账户需要有对文档写的权限,不然普通保存是不会成功的。

q 退出 ,如果文档没有修改过,可直接退出。有修改过,要么保存退出,要么强退。

一文件,有写权限,修改过,不想保存,可强退。


3)其他命令


尾行模式下还有几个其他命令,


    :set number  或 nu      //给编辑器设置行号
    :set nonumber  或 nonu  //取消行号设置
    :set fileencoding     //查看文件编码
    :n(数字)    //光标定位到第n行
    :/内容/    或  /内容      //内容查找(n下一个 N上一个)


在尾行模式下可以把行号显示出来:

1.png


可移动光标,在命令模式的搜索功能,在尾行模式下一样可用。


总结:


用了6节内容,就把vi工具介绍完了。vi工具是非常实用的工具,需要掌握熟练。起码要会最基本的,能对文件做修改。