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 | 向上移动光标(移动一行) |
2 | j | 向下移动光标(移动一行) | |
3 | h | 向左移动光标(移动一个字符) | |
4 | l | 向右移动光标(移动一个字符) | |
5 | #h | 移动#个字符 | |
6 | 按单词移动 | w | 移到下一个单词的词首 |
7 | e | 跳至当前或下一个单词的词尾 | |
8 | b | 跳至当前或上一个单词的词首 | |
9 | #w | 表示移动#个单词 | |
10 | 行内行间跳转 | 0 | 绝对行首 |
11 | ^ | 行首第一个非空白字符 | |
12 | $ | 绝对行尾 | |
13 | #G | 跳转到第#行 | |
14 | G | 最后一行 |
翻屏(命令模式下)
序号 | 命令 | 说明 |
1 | Ctrl+f | 向下翻一屏 |
2 | Ctrl+b | 向上翻一屏 |
3 | Ctrl+d | 向下翻半屏 |
4 | Ctrl+u | 向上翻半屏 |
删除(命令模式下)
序号 | 命令 | 说明 |
1 | x | 删除光标所在处单个字符 |
2 | #x: | 除光标所在处及向后共#个字符 |
3 | dd | 删除当前光标所在行 |
4 | #dd: | 除包含当前光标所在行内的#行 |
复制粘贴(命令模式下)
序号 | 命令 | 说明 |
1 | yy | 复制当前行 |
2 | nyy | 复制n行 |
3 | yw | 复制一个字(单词) |
4 | nyw | 复制n行 |
5 | p | 将复制的文本粘贴到光标后面 |
6 | P | 将复制的文本粘贴到光标前面 |
文本查找
如果希望进行全文件搜索,可以在普通模式(按两次 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高级命令(命令行模式)
序号 | 命令 | 说明 |
1 | J | 将当前行和下一行连接为一行 |
2 | << | 将当前行左移一个单位(一个缩进宽度) |
3 | >> | 将当前行右移一个单位(一个缩进宽度) |
4 | ~ | 改变当前字符的大小写 |
5 | ^G | Ctrl+G组合键可以显示当前文件名和状态 |
6 | U | 撤销对当前行所做的修改 |
7 | u | 撤销上次操作,再次按 ‘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 行后边插入 |
聚云网旨在收集阿里云、腾讯云、百度云等云计算产品的行业资讯,最新优惠信息,提供代金券、优惠券领取,让用户以最低的价格购买服务器,享受优质的产品服务。聚云网提供免费服务器购买咨询,科技前沿资讯,互联网行业动态,软件开发及服务器运维教程,竭全力为用户提供优质服务。
如果您有任何疑问,请在页面右侧点击联系聚云网客服,第一时间为您服务。如果您有教程需求,可以在我们的社区中留言。如果您有经验要分享,我们欢迎您的到来。文章中有什么问题,也欢迎留言指正,我们共同创建一个服务平台。
本站所有内容,如有版权、侵权等问题,请及时联系本站做删除。发布者:聚云网,转载请注明出处:https://www.juyun.top