Unix及Linux系统常用的文本编辑器有两种,一种是 vi ,另一种是 vim 。vim (vi iMprove的缩写)编辑器是 vi 是(Visual Interface的缩写)编辑器的增强版,其实作为标准文本编辑器的 vi 非常优秀,使用 Unix 和 Linux 系统不可或缺的工具,而 vim 在他的基础上增加了字体颜色和语法判断,可以用多种颜色的方式来显示一些特殊的信息,方便设计,具有程序编辑能力。vim 的最大亮点有三个:

  • vim 以不同字体颜色识别语法正确性的程序编辑能力。
  • vim 会依据文件扩展名或者是文件内的开头信息, 自动判断并用颜色来显示程序代码与一般信息。
  • vim 支持正则表达式的搜索、多文件编辑、块复制等,方便运维人员快速修改配置文件。

学习 vi / vim 编辑器使用过程中,童鞋们要注意以下几点:

  • 命令大小写的含义是不一样的。
  • 必须在编辑模式下才能输入内容。

vi / vim 的认识

vi / vim 都具有三种编辑模式:

命令模式(默认):刚进入vim的时候,默认就是 命令模式,可以复制行,删除行等。

编辑模式:编辑模式可以输入内容、编辑文件、修改打开的文件。

末行模式:在最下边,除编辑模式,可以输入诸多管理员命令。

vi / vim 的模式转换方法

命令模式转换为编辑模式按 i 键在当前光标所在字符的前面,转为输入模式
按 I 键在当前光标所在行的行首转换为输入模式
按 a 键在当前光标所在字符的后面,转为输入模式
按 A 键在光标所在行的行尾,转换为输入模式
按 o 键在当前光标所在行的下方,新建一行,并转为输入模式
按 O 键在当前光标所在行的上方,新建一行,并转为输入模式
按 s 键删除光标所在字符
按 r 键替换光标处字符
编辑模式转换命令模式按 ESC 键进入命令模式,复制行,删除行等
命令模式转换末行模式输入 : 号进入末行模式,进行保存、退出等
末行模式转换命令模式按 ESC 键进入命令模式

vi / vim 基本操作示例

vi 文本编辑器和 vim 文本编辑器的使用方法基本相同,本文以 vim 文本编辑器为例。如果想使用 vi 编辑器,只需要在输入命令时把 vim 换成 vi 即可。

打开和新建文件

1、vim /path/filename :vim后跟文件路径及文件名 ,如果文件存在,则打开编辑文件窗口,如果文件不存在,则创建文件

[root@libaoliang ~]# vim /etc/inittab

2、 vim + # :打开文件,并定位到第#行,#代表数字

[root@libaoliang ~]# vim +3 /etc/inittab

3、 vim + :打开文件,定位到最后一行

[root@libaoliang ~]# vim + /etc/inittab

4、 vim +/PATTERN:打开文件,定位到第一次被PATTERN匹配到的行的行首

[root@libaoliang ~]# vim +/start /etc/inittab

关闭文件

  • 如果在命令模式下进行保存退出,按 ZZ (注意,这里是大写字母)保存并退出。
  • 如果要在末行模式关闭文件,按照下表的说明完成,(注意,如果您现在不在末行模式,根据您现在所处的模式,用上面的方式切换到末行模式,即可进行文件关闭操作)。
1输入 w 回车保存
2输入 q 回车退出
3输入 wq  回车保存退出,wq 和 x 都是保存退出
4输入 x 回车保存退出,wq 和 x 都是保存退出
5输入 q! 回车强制退出
6输入 w! 回车强制保存,管理员才有权限

移动光标(命令模式下)

序号类别命令说明
1逐字符移动k向上移动光标(移动一行)
2j向下移动光标(移动一行)
3h向左移动光标(移动一个字符)
4l向右移动光标(移动一个字符)
5#h移动#个字符
6按单词移动w移到下一个单词的词首
7e跳至当前或下一个单词的词尾
8b跳至当前或上一个单词的词首
9#w表示移动#个单词
10行内行间跳转0绝对行首
11^行首第一个非空白字符
12$绝对行尾
13#G跳转到第#行
14G最后一行

翻屏(命令模式下)

序号命令说明
1Ctrl+f向下翻一屏
2Ctrl+b向上翻一屏
3Ctrl+d向下翻半屏
4Ctrl+u向上翻半屏

删除(命令模式下)

序号命令说明
1x删除光标所在处单个字符
2#x:除光标所在处及向后共#个字符
3dd删除当前光标所在行
4#dd:除包含当前光标所在行内的#行

复制粘贴(命令模式下)

序号命令说明
1yy复制当前行
2nyy复制n行
3yw复制一个字(单词)
4nyw复制n行
5p将复制的文本粘贴到光标后面
6P将复制的文本粘贴到光标前面

文本查找

如果希望进行全文件搜索,可以在普通模式(按两次 Esc 键)下输入 / 命令,这时状态栏(最后一行)出现”/”并提示输入要查找的字符串,回车即可。

  • / 命令是向下查找,如果希望向上查找,可以使用 ? 命令。查找完成后,输入 n 命令可以按相同的方向继续查找,输入 N 命令可以按相反的方向继续查找。
  • 搜索的字符串中可以包含一些有特殊含义的字符,如果希望搜索这些字符本身,需要在前面加反斜杠(\),特殊字符如下表所示。
序号特殊字符说明
1^匹配一行的开头
2.匹配一个字符
3*匹配0个或多个字符
4$匹配一行的结尾
5[ ]匹配一组字符

vi / vim编辑器设置(命令行模式)

序号命令说明
1:set ic搜索时忽略大小写。
2:set ai设置自动缩进(自动对齐)。
3:set noai取消自动缩进(自动对齐)。
4:set nu显示行号。
5:set sw设置缩进的空格数,例如,将缩进空格数设置为4::set sw=4。
6:set ws循环搜索:如果直到文件末尾也没有查找到指定字符,那么会回到开头继续查找。
7:set wm设置自动换行,例如,设置距离边际2个字符时换行::set wm=2 。
8:set ro将文件类型改为只读。
9:set term输出终端类型。
10:set bf忽略输入的控制字符,如 BEL(响铃)、BS(退格)、CR(回车)等。

vi / vim高级命令(命令行模式)

序号命令说明
1J将当前行和下一行连接为一行
2<<将当前行左移一个单位(一个缩进宽度)
3>>将当前行右移一个单位(一个缩进宽度)
4~改变当前字符的大小写
5^GCtrl+G组合键可以显示当前文件名和状态
6U撤销对当前行所做的修改
7u撤销上次操作,再次按 ‘u’ 恢复该次操作
8:f以百分号(%)的形式显示当前光标在文件中的位置、文件名和文件的总行数
9:f filename将文件重命名为 filename
10:w filename保存修改到 filename
11:e filename打开另一个文件名为 filename 的文件
12:cd dirname改变当前工作目录到 dirname
13:e #在两个打开的文件之间进行切换
14:n如果用 vi 打开了多个文件,可以使用 :n 切换到下一个文件
15:p如果用 vi 打开了多个文件,可以使用 :n 切换到上一个文件
16:N如果用 vi 打开了多个文件,可以使用 :n 切换到上一个文件
17:r file读取文件并在当前行的后边插入
18:nr file读取文件并在第 n 行后边插入

 

聚云网旨在收集阿里云、腾讯云、百度云等云计算产品的行业资讯,最新优惠信息,提供代金券、优惠券领取,让用户以最低的价格购买服务器,享受优质的产品服务。聚云网提供免费服务器购买咨询,科技前沿资讯,互联网行业动态,软件开发及服务器运维教程,竭全力为用户提供优质服务。

如果您有任何疑问,请在页面右侧点击联系聚云网客服,第一时间为您服务。如果您有教程需求,可以在我们的社区中留言。如果您有经验要分享,我们欢迎您的到来。文章中有什么问题,也欢迎留言指正,我们共同创建一个服务平台。