vim编辑器是每一个常用linux的人,都避免不了要用的. 如果用linux较少的人,倒是可以通过把文件下载到windows本地进行修改.我以前就是这样做的,只会基本使用vim,并没有深入使用到vim. 深入学习之后,可以提升工作效率.

vim的介绍

vim是一个全屏幕纯文本编辑器,是vi 编辑器的增强版, 我们主要讲解的是vim 编辑器. 我们一般使用vim, 功能比vi 强大一些,好用一些.这个编辑器是我们在linux上,必须用到的, 如果能够熟练掌握它, 可以大大提升工作效率.

vim的基本使用

三种工作模式

它有三种工作模式, 分别是命令模式, 输入模式, 末行模式.
用vim 打开文件, 不存在就会新建,存在就是打开它. 进来默认就是命令模式.
通过输入”i,a,o” 进如输入模式, 按下 esc 退出输入模式, 回到命令模式.
在命令模式下, 按下 : 进入末行模式.

插入命令

1
2
3
4
5
6
7
命令         作用
a 在光标所在字符后插入
A 在光标所在行尾插入
i 在光标所在字符前插入
I 在光标所在行行首插入
o 在光标下插入新行
O 在光标上插入新行

输入模式

主要用于文本编辑,输入数据即可。

末行模式

1
2
3
4
5
6
7
8
:w  保存不退出
:w 新文件名 把文件另存新文件
:q 不保存退出
:wq 保存退出
:! 强制
:q! 强制不保存退出,用于修改文件后, 不保存数据退出.
:wq! 强制保存退出,当文件的所有者或者root用户,对文件没有写权限的时候,强制写入数据使用强制保存退出.
补充一个常用的 :u 放弃修改(这个可能是属于命令操作的)

命令操作

移动光标

键盘上的上下左右按键, 也可以使用H(左),J(上,K(下),L(右), 这个用的少,因为不太人性化,了解即可.

删除或者剪切

删除字母

1
2
x    删除单个字母
nx 删除n个字母

但是这个,并不符合我们一般的使用习惯, 我们都习惯进入输入模式后,手动删除个别字母,了解即可

删除整行或剪切/粘贴

1
2
3
dd        删除单行
ndd 删除多行
:n1,n2d 删除指定范围的行

删除整行或多行,这是比较常用的删除方法.这里的dd快捷键既是删除,也是剪切. 删除的内容放入了剪切板,如果不粘贴就是删除,如果粘贴就是剪切.剪贴方法如下.

1
2
p       粘贴到光标后
P(大写) 粘贴到光标前

我都是习惯用小写的p.

从光标所在行删除到文件尾
1
2
dG     从光标所在行删除到文件尾
d是删除行, G是文件尾, 连起来就是从光标所在行删除到文件尾。如果把光标移动到文件首,那么 dG 就是删除了整篇文档.

复制

1
2
3
yy  复制单行
nyy 复制多行
复制之后的粘贴, 就是使用p

撤销

1
2
u       撤销
ctrl+r 反撤销

替换

1
2
3
r    替换光标所在处的字符
R 从光标所在处开始替换字符, 按下 ESC 结束
"r" 键替换单一字符, 不用进入输入模式,实际使用时, 比进入输入模式后删除要方便. 大写R,尽量少用, 虽然可以用u 进行撤销. 如果需要批量修改,还是进入输入模式较好.

vim配置文件

末行模式参数设置, 多数需要在 vim中才能生效.

1
2
3
4
5
6
7
8
:set nu         显示行号
:set nonu 取消行号

:set hlsearch 设置高亮,当查找的时候,符合查询条件的就会高亮
:set nohlsearch 取消高亮

:set list 设置是否显示隐藏字符(tab键用"I" 表示, 回车键用“$” 表示, 默认是noList . 如果使用set list显示隐藏字符, 类似 "cat -A 文件名" )
:set nolist

但是我们这样进行设置, 下次打开文件,就会没有上次的设置了. 那么此时就需要我们在配置文件里改动了.

1
2
3
在登陆用户的默认登陆目录下(root用户是/root, 普通用户则是/home/username/) 下,vim ./vimrc
在里面编辑写入 set nu 保存并退出(如果要设置其他的规则, 可以自定义)
此时再使用vim 打开任何文件,就可以看到设置有效了.

查找

1
2
3
4
5
/查找内容    从光标所在行向下查找
?查找内容 从光标所在行向上查找
n 下一个
N 上一个

替换

1
2
3
4
5
6
:1,10s/old_word/new_word/g     替换1到10行的所有old_word 为new_word
:%s/old_word/new_word/g 替换整个文件的old_word 为new_word

批量注释
:1,10s/^/#/g 注释1到10行
:1,10s/^#//g 取消注释1到10行

vim的使用技巧

在vim 中导入其他文件的内容或者命令结果

导入其他文件

1
:r 文件名   把其他文件导入光标位置

在vim 中执行系统命令

1
2
:! 命令  在vim中执行系统命令
这只是执行命令, 不会把命令的结果写入到文件中. 主要用于在文件编辑中, 查看系统信息,如时间等.

导入命令结果

1
:r ! 命令    在vim中执行系统命令, 并把命令结果导入光标所在行

字符替换

1
2
3
:ab  myemail  delay@163.com
这个字符替换, 还是挺好用的, 可以在需要输入频繁使用的长字符串内容时候, 进行替换.
设定字符替换后,在vim 输入模式中, 输入源字符后,按空格键即可替换, 回车是没有效果的(可能和视频里的centos版本不同导致的)

多文件打开

在vim中可以同时打开两个文件,只要执行如下命令

1
2
3
4
5
6
vim -o  abc.txt bcd.txt
vim -O abc.txt bcd.txt
小写的o 会上下分屏,同时打开两个文件
大写的O 会左右分屏,同时打开两个文件
我们一般都是使用 vim -O file1 file2 这样,左右各一个文件, 看起来舒服一些.
在两个文件之间切换, 按ctrl+w, 然后通过左右的箭头进行切换