一、vim使用介绍

介绍

在linux系统中,大部分配置文件都是ASCII的纯文本形式存放的,所以我们在修改系统设置的时候使用简单的文本编辑软件就可以实现了,如果你使用过windows当中的word的话,那么你可能会感觉linux字符界面的文本编辑工具并不是太好用,毕竟没有图形窗口,看着不会太舒服。但是既然要学习linux,掌握并熟练使用文本编辑工具是必不可少的技能,在linux当中的文本编辑工具有很多,如​​emacs​​ pico nano joe vi/vim 等等

既然有这么多文本编辑工具,为什么要学习vi/​​vim​​呢?

为什么要使用vim?

虽然在linux下的文本编辑器众多,这些工具都有各自的优点,但是有几点是其它编辑工具所不能比拟的

1 所有的类Unix系统都内建vi,其它的编辑工具则不一定,而vim相当于是vi的升级版

2 很多软件的编辑界面都会调用vi,如后面提到的crontab、edquota等

3 vim具有程序编辑能力,可以主动以字体颜色标识语法的正确性,方便代码编写

4 程序简单,编辑速度非常快

综上所述这是一个老式的文字处理工具,但是功能很齐全,不仅是文本处理工具,还是一个程序编辑工具,就连官方网站也说vim是一个程序开发工具而不是文字处理软件,因为它包含了很多额外的功能,如:多文件编辑,区块复制等,这些功能让我们在进行配置文件修改的时候会更方便。

介绍就到这里,我们来看一下基本使用

二、基本使用

由于vi/vim是一个全屏幕的文本编辑器,它工作在三种模式下:分别是命令模式、输入模式和末行模式。可以分别从命令模式切换到输入模式和末行模式,也可以从末行模式或输入模式切换到命令模式,但是输入模式与末行模式之间不能互相切换。

Linux之vim详解_命令模式

第一种:命令模式,当我使用“vim myfile”命令打开myfile这个文件时就处于命令模式,屏幕左下角为文件名(myfile),1L 表示本文件有1 行,26C 表示此文件有26 个字符。1,25表示光标当前位置,在此模式下用户可以输入命令来进行文件存盘、移动光标、删除字符、撤消命令和重复命令等操作,还可以设置编辑环境。

this is the command mode.

~

~ 表示没有内容

“myfile” 1L, 26C 1,25 全部

第二种:插q入模式,又叫输入模式。在输入模式下,屏幕的左下方会出现INSERT (插入)字样。在输入状态下,用户可以输入文本的内容。

this is the command mode.

~

~

~

~

– 插入 – 1,25 全部

第三种:末行模式。只要在命令模式下输入命令“:”即可进入末行模式。在末行模式下,可以进行保存文件、退出vi、进行查找和替换等操作。

this is the command mode.

~

~

~

~

:q!

三种模式介绍完了,我们看下vim的使用,这里面我们还是按照三种模式来对vim的使用进行说明

命令模式可以使用的按键说明

​ 光标控制按键

Linux之vim详解_linux_02

​ 搜索与替换

Linux之vim详解_linux_03

Linux之vim详解_编辑器_04

​ 删除与复制粘贴

Linux之vim详解_linux_03

从命令模式进入输入模式

Linux之vim详解_vim_06

从命令模式进入到末行模式

Linux之vim详解_vim_07

三、额外功能

区块选择

Linux之vim详解_编辑器_08

多文件编辑

Linux之vim详解_linux_09

多窗口编辑

Linux之vim详解_vim_10

环境变量与记录

.viminfo:记录用户的行为,之前编辑过的文件光标在什么位置,在这个文件中进行过什么操作等,自动建立

.vimrc:定义vim的默认设置,如是否显示行号等,需要手动生成

Linux之vim详解_linux_11

密码设置与取消

加密

vim filename—>:X—>输入密码—>保存(否则不加密)

取消密码

1

vim filename—>输入正确密码—>:X—>空密码—>保存

2

vim filename—>:set key= —>保存

注意:不要对系统文件进行加密的操作

vim插件

1

虚拟机网卡设置为NAT

2

dhclient -r ensxx

dhclient ensxx

3 dnf install epel-release -y

4 dnf install vim-airline -y

vimdiff&vimtutor

vimdiff:编辑两个或者更多个文件并显示不同

vimtutor:一条神奇的命令

四、使用中的注意事项

由于个别版本的linux默认只安装vi,所以你需要额外安装vim的软件包,如何安装软件包我们会在后续的课程中讲解,另外vim在字符界面下不能输入中文,而在图形界面下能否输入中文则取决于系统中是否安装了中文输入法

字符差异

由于linux和windows的系统差异,它们针对于文件的中的一些特殊符号表示方式也是不同的,比如说用来表示换行的符号等,如

[root@manage01 ~]# cat -A hello-linux.txt

hello$

$

[root@manage01 ~]# cat -A hello-windows.txt

hello^M$

^M$

如果这种文件是从windows拷贝到linux的一本小说的话,基本没什么问题,但是如果是一个我们需要执行指定工作的shell脚本就会出现问题,因为linux不认识这种符号的含义,就会导致shell脚本无法执行。所以此时我们就要对这种文件进行处理

[root@manage01 ~]# unix2dos [-kn] file [newfile]

选项与参数:

-k :保留文件原本的 mtime 时间格式

-n :保留旧文件,将转换后的内容输出到新文件,如: dos2unix -n old new