vim是vi的加强版,它比vi更强大,vi号称神同样的编辑器,它是一款跨平台的软件,也就是说,不论你是在windows/linux/mac os下都能使用它,它是一款纯命令行界面的编辑工具,很是适合在无图形化界面的linux服务器上编辑一些配置文件等。可扩展性很是强,固然也有图像化界面的如GVIM,通常传说中开发界的武林高手经过定制,能够将它打形成最强的开发神器,例如加上代码高亮、自动缩进、代码自动补全等等等等,如图所示:
python
在全部linux或者类unix操做系统上,都内置了vi编辑器,但可能没有内置vim:若有你须要安装的话可使用以下命令去安装:linux
Debian/Ubuntunginx
sudo apt-get install vim
Redhat/Centosshell
yum -y install vim
1、如何使用vim编辑文件vim
咱们打开终端,输入vim就启动了vim程序了,或者你输入vim 后面跟上某个文件的文件名一样也能够打开vimwindows
2、如何编辑文件bash
在了解编辑文件以前,咱们必须知道vim的工做模式,他有三种工做模式,分别为:服务器
首先,咱们来看下普通模式,它能够实现最基本的光标移动与大量的快捷操做,插入模式能够实现文件的基本编辑操做,命令模式能够实现特定的功能,如查找,保存退出等。
普通模式的一些说明:
按键 | 说明 |
a | 进入插入模式后,后续输入的内容将插入到当前光标后面 |
A | 进入插入模式后,后续输入的内容将插入当前段落的段尾 |
i | 进入插入模式后,后续输入的内容将插入到当前光标的前面 |
I | 进入插入模式后,后续输入的内容将插入到当前段落的段首 |
o | 进入插入模式后并在当前行的后面建立一个新的空白行 |
O | 进入插入模式后并在当前行的前面插入一个新的空白行 |
光标操做,在vim中,上下左右移动,跳到行首行尾段首段尾文首文尾等操做都是在普通模式下操做的
快捷键 |
说明 |
h | 光标向左移动一位 |
j | 光标向下移动一位 |
k | 光标向上移动一位 |
l | 光标向右移动一位 |
gg | 移动光标至文件首行 |
G | 移动光标至文件末行 |
nG | n为数字,例如移动到第10行,则是10G |
^ | 光标移动当前行的首字符 |
$ | 光标移动到当前行的尾字符 |
fx | 光标移动至当前行的下一个x字符处 |
Fx | 光标移动至当前行的上一个x字符处 |
w | 光标向右移动一个单词 |
nw | 光标向右移动n个单词 |
b | 光标向左移动一个单词 |
nb | 光标向左移动n个单词 |
:line number | 跳转到指定行 |
编辑文档能够配合普通模式的光标操做跳转到某一行或者某一个单词后进行相应的操做
按键 | 说明 |
x | 删除当前光标所在位置的字符 |
dd | 删除当前光标所在行 |
ndd | 删除当前光标所在行后的n行,n为数字 |
d$ | 删除当前光标所在位置至行尾的内容 |
J | 删除换行符,能够将两行合并为一行 |
u | 撤销 |
rx | 将当前光标字符替换为x |
yy | 复制当前行 |
nyy |
才复制当前行开始的n行 |
P | 粘贴至当前行以前 |
p | 粘贴至当前行以后 |
VIM的查找和替换
指令 | 说明 |
/char | 查找指定单词的文件或指定行 |
:s/root/admin/ | 将当前行出现的第一个root替换成admin |
:s/root/admin/g | 将当前行中全部root替换成admin |
:3,5s/sbin/bin/g | 将3,5行直接的sbin替换成bin |
:%s/nologin/fault/g | 将全部的nologin都替换为fault |
保存和退出
指令 | 功能 |
:wq!/:x | 强制保存:wq保存,若是没有权限操做文件强制保存无效,:wq nginx.conf 保存文件尾nginx.conf |
:q! | 不保存并退出 |
句间移动和段间移动
( | 移动到上一句空白处 |
) | 移动到下一句空白处 |
{ | 移动到上一段空白处 |
} | 移动到下一段空白处 |
一些小技巧
打开文件就自带跳转到某一行
vim +num file ,例如
vim +5 nginx.conf
在vim中使用shell执行命令
:!ls
多文件模式
vim FILE1 FILE2 ...
:next | 跳转到下一个文件 |
:first | 跳转到第一个文件 |
:prev | 跳转到上一个文件 |
:last | 跳转到最后一个文件 |
:wqall | 所有保存并退出 |
:q!all | 所有退出 |
多文件分屏操做
vim -o|-O FILE1 FILE2 ...
-o 横向分屏
-O 竖向分屏
在多个窗口直接切换
定制vim的某些工做特性:
(1) 行号
显示:set nu
禁用:set nonu
(2) 括号匹配
显示:set sm
禁用:set nosm
(3) 自动缩进:
set ai
set noai
(4) 高亮搜索
set hlsearch
set nohlsearch
(5) 语法着色
syntax on
syntax off
(6) 忽略字符大小写
set ic
set noic
:help 获取帮助
:help SUBJECT
特性设定的永久生效方式:
全局配置文件:/etc/vimrc
用户我的的配置文件:~/.vimrc