一)、VI与VIM。
vim(IMproved)编辑器是vi(visual interface)编辑器的增强版,它是Linux系统编辑文本文件重要的工具之一,也是最基础的编辑工具。它可以执行输出、删除、查找、替换、块操作等众多文本操作。
基本操作
二)、VIM基本操作。
1)、使用vim打开一个文件:
#vim [option]... [FILE]...
2)、直接输入VIM可查看当前版本及信息:
#vim
#vim +# file:
打开文件时光标直接处于第#行行首。
三)、模式化编辑器:
1)、主要模式:
编辑模式(command mode):用vim打开文件时的默认模式,进行键盘操作,可以移动光标,复制、粘贴、删除等操作。
输入模式(Insert mode):对文件进行编辑和修改。
末行模式(last line mode):vim内置的命令行接口,执行vim的内置命令。
2)、模式转换:
编辑模式à输入模式:
i:在光标所在处的前方转换为输入模式。
I:光标移至行首切换为输入模式。
a:在光标所在的后方转换为输入模式。
A:光标移至行尾切换为输入模式。
o:在光标所在行的下方新建一个空行并转换为输入模式。
O:在光标所在行的上方新建一个空白行并转换为输入模式。
s:删除光标所在处字符,并进入插入模式。
S:删除光标所在的行,并进入插入模式
输入模式à编辑模式
ESC
编辑模式à末行模式
:
末行模式à编辑模式
ESC
输入à编辑à末行
四)、保存退出文件:
1)、在末行模式下:
q:退出文件。
q!:不保存退出。
w:写入。
w!:若文件为只读,强制写入。
wq:保存退出。
x:保存退出。
wq!:强制保存并退出。
w newfilename:写入到一个新文件中。
e!:放弃文件修改,从上次保存的位置重新编辑。
2)、在编辑模式下:
ZZ:保存退出。
编辑模式
五)、光标移动:
1)、字符间移动:
k:上一行。
j:下一行。
h:左一字符。
l:右一字符。
#{h|j|k|l}:跳#个字符或行。
2)、单词间移动:
w:下一个单词词首。
e:当前单词或下一个单词词尾。
b:当前单词或前一个单词词首。
#{w|e|b}:跳#个单词。
3)、行内移动:
^:行首第一个非空白字符。
0::绝对行首。
$:绝对行尾。
4)、句子间移动:
):下一句句首。
(:上一句句首。
5)、段落间移动:
}:下一段段首。
{ :下一段段首。
6)、行间移动:
G:跳转至最后一行。
#G: 跳转至第#行。
gg:跳转至首行。
H:跳转至屏幕顶行
#H:跳转至屏幕顶行下第#行。
M:跳转至屏幕的中间一行。
#L:跳转至屏幕底行上第#行。
#[Enter]:光标向下移动#行。
7)、翻屏:
Ctrl+f:向文件尾部翻一屏。
Ctrl+b:向文件首部翻一屏。
Ctrl+d:向文件尾部翻半屏。
Ctrl+u:向文件首部翻半屏。
Ctrl+y:向文件尾部翻一行。
Ctrl+e:向文件首部翻一行。
六)、编辑命令:
1)、删除:
x:删除光标所在处的字符。
X:删除光标所在处前一个字符。
#{x|X}:删除光标所在处{ 前|后}#个字符。
d:结合光标跳转字符使用,删除跳转范围内的字符。
d#{ w|b|e}:删除单词。
d{ $|0|^}:删除光标所在位置至行{ 首|尾}。
D|d$:删除光标所在位置至行尾。
d#G:删除光标所在位置至第#行。
dG:删除光标所在位置至最后一行。
#dd:从光标所在行开始删除#行。
注意:最后一次删除的内容会被保存至缓冲区。
2)、复制:
y:yank
结合光标跳转字符使用,复制跳转范围内的字符。
y#{ w|b|e}:复制单词。
y{ $|0|^}:复制光标至行{ 首|尾}。
#{Y|yy}:复制光标所在位置后#行。
yG:复制光标所位置到最后一行。
y#G:复制光标所位置到第#行。
3)、粘贴:
p:paste
粘贴的位置取决于最后一次删除或复制操作的级别。
行级别:
p:粘贴于当前行下方。
P:粘贴于当前行上方。
小于行级别:
p:粘贴于当前光标所在处的后方。
P:粘贴于当前光标所在处的前方。
4)、修改:
c:change
先删除,再转换为输入模式:
结合光标跳转字符使用,修改跳转范围内的字符。
c{ w|b|e}:删除单词并转换为输入模式。
c{ $|0|^}:删除光标位置至行{ 首|尾}并转换为输入模式。
C|c$:删除光标所在位置至行尾并转换为输入模式。
c#G:删除光标所在位置至第#行并转换为输入模式。
cG:删除光标所在位置至最后一行并转换为输入模式。
#cc:从光标所在行开始删除#行并转换为输入模式。
5)、撤消编辑:
u:undo
#u:撤消最近的#次操作,最多50次。
撤消此前的撤消操作:
Ctrl+r
重复前一条命令:
.
末行模式
七)、内容界定:
1)、 行间跳转:
.:当前行
#:第#行
$:最后一行
$-#:倒数第#行。
2)、内容界定和操作:
m,n:界定第m行至第n行。
.,#:当前光标所在行到第#行。
#,$:第#行至最后一行。
.,$:当前光标所在行到最后一行。
%|1,$:界定全文。
c,d,y等命令可以直接附加在地址范围后使用,对选定范围进行删除、复制等操作。
w /path/to/somefil:将选定范围内的内容保存至某文件中。
r /path/from/somefile:将指定的文件中的内容读取到指定位置。
八)、文本查找:
1)、字符查找:
用法同less命令:
/pattern:向下查找匹配的字符串。
?pattern:向上查找匹配的字符串。
n:重复前一个查找的操作。如果使用/进行查找,则n表示向下查找,如果使用?进行查找,则n表示向上查找。
N:与n相反,表示与前一个查找进行反向操作。
2)、文本替换:
s/查找模式/要替换成的内容/gic
查找模式:可以使用正则表达式。
要替换成的内容:不能使用模式,仅能使用引用。
g:global,全行替换;如果不使用g,查找的字符所在行中存在不止一个匹配项时,只替换第一个。
i:ignore case,不区分字符大小写。
c:替换前提示用户确认是否替换,常与g同时使用。
其他模式
九)、其他模式:
1)、可视化模式:
用于选取整块范围的模式。
在编辑模式下:
v:光标走过的字符。
V:光标走过的行。
Ctrl+v:以长方形的方式进行选择
c,d,y等命令可以直接使用,对选定范围进行删除、复制等操作。
2)、多文件模式:
可以同时打开多个文件,并在各个文件中进行切换。
#vim FILE1 FILE2...
在末行模式下:
n|next:下一个文件。
N|previous:上一个文件。
first:第一个文件。
last:最后一个文件。
wa|wall:保存所有文件。
qa|qall:退出所有文件。
wqa|wqall:保存并退出所有文件。
3)、多窗口模式:
多窗口编辑操作:
Ctrl+w, Arrow:窗口间切换。
单文件分割:
Ctrl+w,s:水平分割。
Ctrl+w,v:垂直分割。
多文件分割:
#vim -{o|O} FILE1 FILE2...
-o: 水平分割。
-O: 垂直分割。
属性和配置文件
十)、窗口属性定义:
1)、命令:
在末行模式下输入设置命令:
set:显示与系统默认值不同的设置参数,一般就是用户改动过的设置。
set all:显示目前所有环境参数设置值。
set nu|nonu :显示行号;默认关闭。
set ai|noai :自动缩进;设置了此选项后,换行时光标会自动对齐上面行的行首位置,而不会回到绝对行首;默认关闭。
set ic|noic :忽略大小写;设置此项后,在查找字符时会忽略大小,默认关闭。
set sm|nosm :显示括号;设置此选项后,光标移至括号时,自动高亮显示与之匹配的另一半括号;默认开启。
set hlsearch|nohlsearch:搜索高亮显示;搜索字符时,会自动高亮标识所有的匹配字符,此选项会默认开启,并且即使关闭了当前文件,再次打开其它文件时也会高亮标识之前的搜索结果。
syntax on|off :语法高亮显示控制;可以帮忙用户标识语法结构,查找语法错误。
2)、配置文件:
可将属性命令写在配置文件中设置vim默认属性,注释使用双引号。
全局配置文件:/etc/vimrc
用户配置文件:~/vimrc
本文出自 “” 博客,请务必保留此出处