vim编辑器
vim是一个全屏纯文本编辑器,是vi编辑器的增强版。
vim与vi的区别
- 多级撤销:在vi编辑器中,按u只能撤消上次命令,而在vim里可以无限制的撤消。
- 语法加亮:vim可以用不同颜色来加亮代码。
- vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。
- 对vi完全兼容。
vim基本使用
vim工作模式
vim有三种工作模式,分别是命令模式、输入模式、编辑模式。
- 命令模式:当用“vim 文件名”打开文件时,首先进入的时命令模式,这个模式是主要使用快捷键的模式,命令模式不能输入,需要快捷键进入输入模式才能输入,下面列举进入输入模式的快捷键。
快捷键 | 作用 |
---|---|
a | 在光标后进行插入。 |
i | 在光标前进行插入。 |
A | 在行尾进行插入。 |
I | 在行首进行插入。 |
o | 往下重启一行进行输入。 |
O | 往上重启一行进行输入。 |
- 输入模式:主要用于文本编辑,和记事本类似,输入数据。
- 编辑模式(末行模式):
快捷键 | 作用 |
---|---|
:w | 保存不退出。 |
:w 文件名 | 另存为新文件,但当前编辑的文件不变。 |
:q | 不保存退出。 |
:wq | 保存退出 |
:! | 强制 |
:q! | 强制不保存退出,对于普通用户,修改后不保存退出。 |
:wq! | 强制保存退出,当文件的所有者或者root用户,对文件没有写权限时,强制写入数据使用。 |
命令模式基本操作
- 移动光标
#上下左右移动光标
上、下、左、右方向键 移动光标。
h、j、k、l 移动光标,h向左,j向下,k向上,l向左。
-#把光标移动到文件头或文件尾。
gg 将光标移动到文件头。
G 将光标移动到文件尾。
#移动到行首或行尾。
^ 移动到行首。
$ 移动到行尾。
#移动到指定行。
:行号 可以移动到指定行。
- 删除字母
x 删除单个字母
nx 删除n个字母,这里的n是数字,例“5x”就是删除5个字母
- 剪切整行或删除
dd 剪切或删除整行
ndd 剪切或删除n行
:n1,n2d 剪切或删除从n1行到n2行,例“1,2d”就是删除第1行到第2行。
dG 从光标所在行删除到文件尾
#删除整行或多行,这里的命令既是删除也是剪切,使用命令之后内容会被粘到剪切板上,使用下面的粘贴命令可以粘贴
p 粘贴到光标后
P(大写) 粘贴到光标前
- 复制
yy 复制单行
nyy 复制多行
- 撤销
u 撤销
ctrl+r 反撤销
- 替换
r 替换光标所在处的字符
R 从光标处开始替换,一直到Esc结束
- 查找
/查找内容 从光标所在行向下查找
?查找内容 从光标所在行向上寻找
n 下一个
N 上一个
- 查找替换
:1,10s/old/new/g 替换1到10行的所有old为new
:%s/old/new/g 替换整个文件中的old为new
#在shell中"#"是添加注释,可以利用上面的命令加注释
:1,4s/^/#/g 将1到4行设为注释
:1,4s/^#//g 取消注释
#c语言或PHP中是用"//"表示注释的
:1,4s/^/\/\//g 将1到4行,行首加//
:1,4s/^\/\///g 取消注释
vim常用设置
vim有一些常用的设置,日常中会使用到,这些设置可以用末行模式进行更改,末行模式中修改是对当前操作的文件生效,要一直生效可以更改vim的配置文件。
常用设置
设置参数 | 含义 |
---|---|
:set nu | 显示行号。 |
:set nonu | 取消行号。 |
:syntax on | 依据语法显示相关的颜色帮助。 |
:syntax off | 不提供颜色帮助。 |
:set hlsearch | 设置将查找的字符串高亮显示,默认是set hlsearch高亮显示。 |
:set nohlsearch | 关闭搜索字符高亮显示。 |
:set ruler | 显示右下角的状态栏,默认开启。 |
:set noruler | 关闭右下角状态栏。 |
:set showmode | 在左下角显示相应的模式。 |
:set noshowmode | 关闭模式显示。 |
:set llist | 显示回车、Tab键等隐藏字符(如Tab用"^I"表示,回车符用"$"表示。) |
:set nolist | 关闭隐藏字符显示。 |
更改配置文件
前面说了用末行模式更改设置只是暂时生效,若想一直生效可以更改配置文件,"/etc/vimrc"中可更改配置,更改后会在全局生效;如果只是个人用户想修改配置,可以在家目录中创建配置文件"~/.vimrc",直接所需配置输入文件即可,更改后可在登录相应用户时生效。
更改配置文件不会立即生效,需要注销重新登录。
注:在Windows中输入的特殊字符与Linux中是不同的, 像shell命令这种错一个字符都不行,这个时候就可以用":set list"来查看或修改,不过这样比较麻烦,Linux中也有专门的工具来修改。
vim使用技巧
在vim中导入其他文件内容或命令结果
- 导入其他文件内容
:r 文件名 把其他文件内容导入光标位置
- 在vim中执行系统命令查看命令结果
:! 命令 在vim中执行系统命令并查看结果
- 将命令结果导入文件
:r !命令 在vim中执行系统命令并将命令结果导入光标位置
自定义快捷键
vim允许自定义快捷键,定义快捷键的命令格式如下:
:map 快捷键 执行的命令
常用的自定义快捷键如下:
:map ^P I#<ESC> 按下ctrl+p时,自动将本行注释
:map ^B ^x 按下ctrl+b时,删除行首,取消注释常用
#^P不能手动输入,需要执行ctrl+v+p来定义,或者先按ctrl+v,再按ctrl+p,同理,^B也是一样。
在使用vim时定义快捷键只是暂时的,若要一直生效,需要将命令写入配置文件~/.vimrc中。
字符替换
可能在工作中我们需要经常输入一些较长的字符串,但每次都重新输入有些麻烦,vim为我们准备了字符串替换的命令,命令格式如下:
:ab 源字符 替换的字符
例:替换邮箱
:ab mymail czlmmks@csdn.com 在输入mymail之后,按回车或空格将mymail替换为邮箱
分屏打开两个文件
在vim中可以同时打开两个文件,分屏显示:
[root@ddkk.com ~]# vim -o hello net1 小写o表示上下分屏
[root@ddkk.com ~]# vim -O hello net1 大写O表示左右分屏
在上下分屏是,可以按ctrl+w后用上下方向键切换处理的文件;在左右分屏中,可以按ctrl+w后用左右方向键切换处理的文件。