VIM编辑器

概念

vi和vim都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。以下统称为vi。

vi是一个命令,也是一个命令行下的编辑器。
一个编辑器具备的功能
1)打开文件、新建文件、保存文件
2)光标移动
3)文本编辑
4)(多行间|多列间)复制、粘贴、删除
5)查找和替换

下载

输入命令:sudo apt install vim

配置

1)进入vi配置文件所在路径
cd /etc/vim
2)复制vi配置文件到用户家目录下
cp vimrc ~/.vimrc
3)进入家目录
cd ~
4)编辑配置文件
gedit .vimrc
注意:若想要修改的配置文件对系统所有用户都适用,只需要省略2)和3),执行1)和4)即可。

在.vimrc中加入如下内容:
set nocompatible //关闭兼容功能
set number //显示行号
set backspace=2 //编辑时 backspace 键设置为2个空格
set tabstop=4 //编辑时 tab 键设置为4个空格
set shiftwidth=4 //设置自动对齐为4个空格
set ignorecase //搜索时不区分大小写
set hlsearch //搜索时高亮显示

模式

vi编辑器有三种模式
1)一般模式(光标移动、复制、粘贴、删除)
2)编辑模式(编辑文本)
3)命令行模式(查找和替换)
VIM编辑器
当不知道处于何种模式时,按ESC键返回到一般模式

编辑

打开文件、新建文件、保存文件

vi 文件名 [+行号]
如果文件存在,输入结束后,:wq保存并退出文件
如果文件不存在,输入结束后,:wq就可以新建并保存文件

在编辑完成时,返回一般模式,
1)输入:w则保存文件,如果已经保存文件,输入:q则退出文件
2)直接输入:wq保存并退出
3)如果不想保存被修改的内容,则:q!强制退出

进入编辑模式

i:在光标前开始插入文本
a:在光标后开始插入文本
o:在当前行之下新开一行,并到行首

光标移动

在一般模式下,hjkl这四个按键就可以移动光标
h(左) j(下) k(上) l(右)

快速的定位到某一行:
文件头、文件尾、指定某一行
ngg(n为数字):光标移至第n行的行首
G:转至文件结尾
注意:ngg和G是在一般模式

在某一行快速定位到某一列
0(数字零):光标移至当前行行首
$ :光标移至当前行行末
fx:搜索当前行中下一个出现字母x的地方
注意:0、$、fx是在一般模式

vi的难点:
1)vi操作之前,先判断一下当前是哪一种模式,再看光标所在位置。
当不知道处于何种模式时,使用esc键返回到一般模式。
再看光标,难点在于移动光标,可以做到快速切换到某一行某一列。

文本复制、粘贴、删除、撤销

yy(y:yank(复制)):复制当前行
nyy(n是数字):复制当前行及其后的n-1行
P(p:paste):粘贴

dd(d:delete):删除光标所在行
ndd(n是数字):删除当前行及其后的n-1行

x:删除光标所在位置的字符

u:撤销上一步操作

注意:yy/nyy/dd/ndd/x/u都是在一般模式。

查找和替换

/字符串:从光标开始处向文件尾搜索目标字符串,后按下n或N搜索下一个
n(next):在同一个方向重复上一次搜索命令
N:在反方向重复上一次搜索命令

:%s/p1/p2/g将文件中所有的p1均用p2替换
:%s/p1/p2/gc替换时需要确认
s(substitute):替换
g(global):全局
c(confirm):确认

附录

VIM编辑器