命令模式下还有其他的一些命令,了解下:
文本行移动:
>>: 文本行右移 <<: 文本行左移
可视模式:
v: 按字符移动,选中文本 V: 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动
两行合并:
J(大写): 将光标所在行与下一行的数据结合成同一行,小写j是光标往下的命令
这些命令楠神用的不多。接下我们学习尾行模式下的一些命令。
命令模式 进入 尾行模式:先要使用英文冒号(:)
文档编辑完,保存并离开vi,就必须要进入尾行模式。除了保存离开,在尾行模式下还可以做一些编辑型工作。
1)替换
命令模式下也有替换命令:r+字符,它这种只能替换单个字符。而尾行模式下的替换,可以把整个一块字符替换。类似于编辑器下的替换功能:
替换范围为一行:
: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
%表示所有行,g表示替换全部。命令输入完成,点击回车执行。
说明:尾行模式下的命令都需要点击回车执行。
2)退出
文档编辑完,需要保存并退出vi。一般退出命令有:
:w //对编辑后的文档进行保存 :w! //强制保存 :q //退出vi编辑器 :q! //强制退出(不保存) :wq //保存并退出编辑器 :wq! //强制保存退出
其中w是保存,q离开 ,!强制操作。
正常来说,我们编辑完一个文档,都是:wq这样操作,保存并退出。如果,当前账户编辑的文档只有读权限,不能写,那用wq操作是不成功的。
看演示:
ubuntu账户vi打开
vi /etc/debconf.conf
ubuntu账户只有读权限。使用i命令进入编辑模式,此时文档末行就会有一个警告提示:(正在修改一个只读的文档)
ubuntu账户可以对文档编辑内容的,当要保存(:w)时
报错了(设置“只读”选项,添加 ! 重新保存),如果强制保存呢(:w!)?
依然是不能保存。(无法打开文件进行写入)
提示:一文件属性为『只读』时,强制写入该档案。到底能不能写入, 跟权限、文件属主是否自己有关系。后面章节会做详细介绍。
既然保存不成功,ubuntu账户退出(:q)。
还是出现问题了。说:文档改变后还没有写入(保存),添加!重新保存。
也就是说,ubuntu账户用普通的退出是不行了,只能强退(:q!)
成功了。
总结:
w 保存,前提当前账户需要有对文档写的权限,不然普通保存是不会成功的。
q 退出 ,如果文档没有修改过,可直接退出。有修改过,要么保存退出,要么强退。
一文件,有写权限,修改过,不想保存,可强退。
3)其他命令
尾行模式下还有几个其他命令,
:set number 或 nu //给编辑器设置行号 :set nonumber 或 nonu //取消行号设置 :set fileencoding //查看文件编码 :n(数字) //光标定位到第n行 :/内容/ 或 /内容 //内容查找(n下一个 N上一个)
在尾行模式下可以把行号显示出来:
可移动光标,在命令模式的搜索功能,在尾行模式下一样可用。
总结:
用了6节内容,就把vi工具介绍完了。vi工具是非常实用的工具,需要掌握熟练。起码要会最基本的,能对文件做修改。