Linux大师的秘密武器:掌握VI编辑器

本文详细介绍了Linux系统中vi编辑器的关键作用,包括其内置性、与其他软件的交互、编程能力,以及vi的三种模式(一般指令模式、编辑模式和命令模式)的操作指南。还涵盖了vi的缓存机制、区块选择、多文件编辑、多窗口编辑、动作记录以及环境配置等内容。
摘要由CSDN通过智能技术生成

 Linux 系统中使用vi的重要性

1.所有的 Unix Like 系统都会内置 vi 文书编辑器,其他的文书编辑器则不一定会存在;

2.很多个别软件的编辑接口都会主动调用 vi;

3.vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;

4.因为程序简单,编辑速度相当快速

vi 三种模式 一般指令模式 编辑模式 指令列命令模式

一般指令模式 (command mode)

以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式)。在这个模式中, 可以使用“上下左右”按键来移动光标,可以使用“删除字符”或“删除整列”来处理文件内容, 也可以使用“复制、贴上”来处理你的文件数据。

编辑模式 (insert mode)

在一般指令模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到按下“i, I, o, O, a, A, r, R”等任何一个字母之后才会进入编辑模式。在画面的左下方会出现“ INSERT 或 REPLACE ”的字样,此时才可以进行编辑。而如果要回到一般指令模式时, 则必须要按下“Esc”这个按键即可退出编辑模式。

指令列命令模式 (command-line mode)

在一般模式当中,输入“ : / ? ”三个中的任何一个按钮,就可以将光标移动到最下面那一列。在这个模式当中, 可以提供“搜寻数据”的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的

bab550000cd147d3a9f48b7a2d4c5981.png

三种模式

常用按键说明

想多次移动的例如向下移动 30 列,可以使用 "30↓" 组合按键

20<space> 则光标会向后面移动 20 个字符距离

0 或功能键[Home] 这是数字“ 0 ”:移动到这一列的最前面字符处

$ 或功能键[End] 移动到这一列的最后面字符处

G 移动到这个文件的最后一列

nG n 为数字。移动到这个文件的第 n 列。例如 20G 则会移动到这个文件的第 20 列

gg 移动到这个文件的第一列,相当于 1G

n<Enter> n 为数字。光标向下移动 n 列

/word 向光标之下寻找一个名称为 word 的字串

?word 向光标之上寻找一个字串名称为 word 的字串

n 代表“重复前一个搜寻的动作”

N 与 n 刚好相反,为“反向”进行前一个搜寻动作

n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 列之间寻找 word1 这个字串,并将该字串取代为 word2

dd 删除光标所在的那一整列

yy 复制光标所在的那一列

p 为将已复制的数据在光标下一列贴上,P 则为贴在光标上一列

u 复原前一个动作

[Ctrl]重做上一个动作

:w 将编辑的数据写入硬盘文件中

:w! 若文件属性为“只读”时,强制写入该文件

:wq! 则为强制储存后离开

:set nu 显示行号,设置之后,会在每一列的字首显示该列的行号

:set nonu 与 set nu 相反,为取消行号

vi的缓存

在使用 vi 编辑时, vi 会在与被编辑的文件的目录下,再创建一个名为 .filename.swp 的文件。

由于 vim 的工作被不正常的中断,导致暂存盘无法借由正常流程来结束, 所以暂存盘就不会消失,而继续保留下来。此时如果继续编辑,如果之前man_db.conf的 vim处理动作尚未储存,此时应该要按下“R”,亦即使用 (R)ecover 的项目, 此时 vim会载入 .man_db.conf.swp的内容,让自己来决定要不要储存!这样就能够救回来之前未储存的工作。 不过那个 .man_db.conf.swp 并不会在结束 vim后自动删除,所以离开 vim 后还得要自行删除 .man_db.conf.swp 才能避免每次打开这个文件都会出现这样的警告!如果确定这个暂存盘是没有用的,可以直接按下“D”删除掉这个暂存盘,亦即 (D)elete it 这个项目即可。 此时 vim 会载入 man_db.conf ,并且将旧的 .man_db.conf.swp 删除后,创建这次会使用的新的 .man_db.conf.swp

vim的额外功能

目前大部分的 distributions 都以 vim 取代 vi 的功能了!如果使用 vi 后,却看到画面的右下角有显示目前光标所在的行列号码,那么 vi 已经被 vim 所取代。为什么要用 vim 呢?因为 vim 具有颜色显示的功能,并且还支持许多的程序语法

如果你在文字模式下,输入 alias 时,出现这样的画面:

$ alias alias vi='vim' 这表示使用 vi 这个指令时,其实就是执行 vim

区块选择

110e84ee8b674427be10842eb9e9b642.png

区块选择

通过上述的功能,可以复制一个区块,并且是贴在某个“区块的范围”内,而不是以列为单位来处理整份文件

多文件编辑和多窗口编辑

很快速的就将需要的数据复制到正确的文件内

c6f940cab6e64aadab3455893f48aa7e.png

多文件编辑

1e613737eadd489d9bce43f4001ca1e1.png

多窗口编辑

vi的动作记录

如果以 vim 软件来搜寻一个文件内部的某个字串时,这个字串会被反白,再次以 vim 编辑这个文件时,该搜寻的字串反白情况还是存在!当我们重复编辑同一个文件时,当第二次进入该文件时, 光标竟然就在上次离开的那一列上头。记录动作的文件就是: ~/.viminfo

5410200aac9142578a7f42250bd9c74d.png

~/.viminfo

vi的环境配置

环境设置参数有很多,如果想要知道目前的设置值,可以在一般指令模式时输入“ :set all ” 来查阅。整体 vim 的设置值一般是放置在 /etc/vimrc 这个文件

4ff9efaf0c624191aff5753464c383d4.png

环境设置参数

671360a1e1be4469af0135378a266395.png

/etc/vimrc

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值