vi和vim编辑器的使用
vi和vim编辑器的使用
制作人:全心全意
vi:Visual Interface(可视化接口),一款开源软件,体积很小,功能异常强大
vim:VI iMproved(vi的增强版)
一个程序员的文本编辑器,全屏编辑器,模式化编辑器
用法:vi [选项] [文件 ...]
+:打开文件后,光标位于最后一行
+n:打开文件后,光标位于第n行
+/匹配模式:打开文件后,光标第一次匹配模式行的行首
-o:打开多个文件时,水平分窗口显示多个文件
-O:打开多个文件时,垂直分窗口显示多个文件
-r:非法退出后打开文件,恢复至非法退出时的状态
模式:
编辑模式(命令模式):进入编辑器默认处于此模式
ZZ:保存退出
[n]h:向左移动光标,同向左箭头
[n]l:向右移动光标,同向右箭头
[n]j:向下移动光标,同向下箭头
[n]k:向上移动光标,同向上箭头
[n]w:移动光标到下一个词的词首
[n]e:移动光标到下一个单词的词尾(光标未在当前词尾,先移动到当前词尾)
[n]b:移动光标到下一个单词的词首(光标未在当前词首,先移动到当前词首)
n为数字,可选,例如:5h表示向左移动5个字符
0或^:将光标移动到行首,0表示绝对行首,^表示一个非空白字符的行首
$:将光标移动到行尾
[n]G:将光标移动到最后一行,使用n则表示跳转到第n行
ctrl+f:向后翻一屏
ctrl+b:向前翻一屏
ctrl+d:向下翻半屏
ctrl+u:向上翻半屏
[n]x:删除光标位置的单个字符
[n]d:删除命令,需结合光标跳转使用
例如:d$:从当前字符删除到行尾
dd:删除当前光标所在行
vim中删除的内容不会立即删除,会保存在内存缓冲区(默认仅保存最近50次操作),可进行撤销,最后一次删除的内容,可使用粘贴命令,相当于剪切,
p:如果粘贴的内容为整行内容,则粘贴至光标所在行的下方。如果粘贴的内容为非整行,则粘贴至光标所在字符的后面
P:如果粘贴的内容为整行内容,则粘贴至光标所在行的上方。如果粘贴的内容为非整行,则粘贴至光标所在字符的前面
y:复制命令,用法同d,末行模式也相同
如:yy复制当前行
3yy:复制3行
c:修改命令,用法同d
如:cc删除当前行内容,进入输入模式
r:替换命令,一般用于替换单个字符,很少用于替换多个字符
rx:将光标所在位置的字符替换为x
R:进入替换模式,替换模式在键盘输入的同时,替换之前的字符,ESC键退出替换模式
u:撤销前一次的编辑操作,可连续使用
ctrl+r:撤销(还原)前一次撤销操作
.:重复前一次的编辑操作
例如:dd后,.可以再执行dd
v:进入可视化模式,按字符进行选取
V:进入可视化模式,按矩形块进行选取
可视化模式,可利用选区,进行编辑操作
ctrl+w,s:水平拆分窗口
ctrl+w,下箭头|上箭头:操作窗口切换
ctrl+w,v:垂直拆分窗口
ctrl+w,左箭头|右箭头:操作窗口切换
输入模式(插入模式):进入文本键盘输入
末行模式:
set nu:显示行号(set number)
set nonu:不显示行号,默认
set ic:忽略大小写(set ignorecase)
set noic:不忽略大小写,默认
set ai:开启自动缩进(一般用于写脚本时)(set autoindent)
set noai:关闭自动缩进,默认
set hlsearch:查找文本高亮显示,默认
set nohlsearch:关闭查找文件高亮显示
syntax on|off:语法高亮显示,默认on
! shell命令:临时执行shell命令
w:保存
[1,$] w 文件地址:另存到指定的文件地址
q:退出
wq:保存并退出
w!:强制保存(用于管理员编辑仅有只读权限的文件)
q!:强制退出(不保存)
x:保存退出,等同于wq
数字:跳转到该行
n1,n2d:删除n1开始到n2结束范围的行
例如:.,+5d:表示从当前行开始删除当前行及向下的5行
10,20d:表示删除10到20行
.:当前行
$:最后一行
+n:向下n行
$-5:倒数第5行
/模式:查找匹配模式的内容
[1,50] s///:查找替换
g:全局替换,默认仅替换第一个匹配结果
i:忽略字符大小写
%:替换范围中表示全文替换
next:切换到下一个文件(用于打开多个文件时)
prev:切换到上一个文件(用于打开多个文件时)
last:切换到打开文件的最后一个文件
first:切换到打开文件的第一个文件
qa:打开多个文件时,全部退出
r 文件地址:在当前光标所在行的下方,填充指定的文件
模式转换:
编辑模式-->输入模式:
i:在当前光标所在字符的前面,转为输入模式
I:在当前光标所在行的行首,转为输入模式
a:在当前光标所在字符的后面,转为输入模式
A:在当前光标所在行的行尾,转为输入模式
o:在当前光标所在行的下方,插入一行,转为输入模式
O:在当前光标所在行的上方,插入一行,转为输入模式
输入模式-->编辑模式:
ESC键:从输入模式进入编辑模式
编辑模式-->末行模式:
::英文冒号,由编辑模式进入末行模式
末行模式-->编辑模式:
ESC键:从末行模式进入编辑模式,在有键入的情况下可能要敲击两次
输入模式和末行模式彼此之间不能直接转换
vim配置文件:
全局配置文件:/etc/vimrc
单用户配置文件:~/.vimrc
vim手册(英文):vimtutor