vi/vim编辑器使用方法详解
vi/vim编辑器简介:
vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于对Unix及linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。
vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;
vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息;
vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息;
vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。 这对于我们在Linux上进行一些配置文件的修改工作时是很棒的功能。
vi/vim是什么?
- vi是Visual Interface的缩写,即可视化接口
- vim是Visual Improve的缩写,即vi的增强版(具有语法着色功能)
vim模式有哪些?如何切换?
三种模式:
- 命令模式(默认):刚进入vim的时候,默认就是 命令模式,可以复制行,删除行等。
- 输入模式:可以输入内容
- 末行模式:在最下边,除编辑模式,可以输入诸多管理员命令
模式转换:
使用vim如何打开文件?
- vim /path/to/somefile :vim后跟文件路径及文件名 ,如果文件存在,则打开编辑文件窗口,如果文件不存在,则创建文件,如:[root@libaoliang ~]# vim /etc/inittab
- vim + # :打开文件,并定位到第#行,#代表数字,如:[root@libaoliang ~]# vim +3 /etc/inittab
- vim + :打开文件,定位到最后一行,如:
[root@libaoliang ~]# vim + /etc/inittab - vim +/PATTERN:打开文件,定位到第一次被PATTERN匹配到的行的行首,如[root@libaoliang ~]# vim +/start /etc/inittab
使用vi/vim怎么关闭文件?
末行模式下:
w:保存
q:退出
wq 或 x:保存退出,wq 和 x 都是保存退出
q!:强制退出
w!:强制保存,管理员才有权限
命令模式下:
ZZ:保存并退出
移动光标
命令模式下:
①逐字符移动
h:向左
l:向右
j:向下
k:向上
#h:移动#个字符
②以单词为单位移动
w:移到下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或上一个单词的词首
#w:表示移动#个单词
③行内跳转
0:绝对行首
^:行首第一个非空白字符
$:绝对行尾
④行间跳转
#G:跳转到第#行
G:最后一行
末行模式下:
①行间跳转
直接输入行号 回车即可
翻屏:
命令模式下
Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏
删除
命令模式下
末行模式下:
粘贴命令: p
p(小写p):如果删除的或复制的为整行内容,则粘贴到光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面
P(大写P):如果删除的或复制的为整行内容,则粘贴到光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面
复制命令:y
修改c:先删除内容,在转换为输入模式
c:用法同d
替换:r
r:单字符替换,会替换光标选中字符
R:替换模式,可以做字符替换。
撤销编辑操作:u(undo)
u:撤销前一次编辑操作
#u:直接撤销#次操作
Ctrl+r:撤销最近一次撤销操作
重复前一次编辑操作
.:比如 上一次dd删除了一行,现在输入.就可以重复dd删除行的操作
可视化模式:
命令模式:
v:按字符选取,键盘控制光标 划过 的区域被选取
V:按矩形选取,键盘控制光标划过的行被选取
查找
末行模式:
/PATTERN:从当前位置向后查找
?PATTERN:从当前位置向前查找
n:向下查找
N:向上查找
查找并替换
在末行模式下使用s命令
ADDR1,ADDR2s/PATTERN/String/gi
ADDR1,ADDR2 表示地址;比如1,$表示全文 (%也表示全文)
g:表示全局替换
i:表示忽略大小写
vim打开多个文件
vim FILE1 FILE2 FILE3
末行模式下
:next 切换到下一个文件
:prev 切换到上一个文件
:last 切换到最后一个文件
:first 切换到第一个文件
退出多个文件
qa:全部退出
分屏显示一个文件
vim打开文件后
Ctrl+w,s:水平拆分窗口
Ctrl+w,v:垂直拆分窗口
在窗口间切换光标
Ctrl+w,ARROW
比如 Ctrl+w,→:(使用箭头方向键)光标切换到右边的窗口
比如 Ctrl+w,h(左), j(下), k(上), l(右) 也可以切换窗口
在末行模式下
:qa退出所有窗口
分窗口编辑多个文件
vim -o:水平分割显示
vim -O:垂直分割显示
例如:vim -o /etc/rc.sysinit /etc/inittab :水平分割显示/etc/rc.sysinit和/etc/inittab 这2个文件
将当前文件中部分内容保存为另外一个文件
末行模式下
w:表示保存当前文件
w /path/to/somewhere:将当前文件另存为到路径指定的地方
ADDR1,ADDR2w /path/to/somewhere:将ADDR1到ADDR2指定的地址文本 另存为到路径指定的地方
将另一个文件的内容填充在当前文件中(r表示读)
末行模式下
r: /path/to/somefile
例如:vim /etc/rc.sysinit 打开文件后,末行模式 输入 :r /etc/inittab :会将 inittab文件的所有内容附加到rc.sysinit文件光标所在的位置
跟shell交互(vim 末行模式执行shell)
末行模式
! command即可
例如: ! ls /etc/:会列出/ect目录下所有文件及目录 按enter后回到vim编辑状态
高级话题
在末行模式下
①显示或取消行号
set nu(set number):显示行号
set nonu:取消显示行号
②显示忽略或区分字符大小写
set ic (set ignorecase):忽略大小写
set noignorecase:区分大小写
③设定自动缩进
set ai(set autoindent):自动缩进
set noai:取消自动缩进
④查找到的文本高亮或取消高亮显示
set hlsearch:高亮显示搜索到的文本
set nohlsearch:取消高亮显示搜索到的文本
⑤语法高亮
syntax on:打开语法高亮显示
syntax off:关闭语法高亮显示
vim配置文件
全局vim配置文件:/etc/vimrc
个人vim配置文件:~/.vimrc
[root@libaoliang ~]# echo “set nu” >> /root/.vimrc # root用户用vim打开文件时,显示行号。