一)、VI与VIM。
vim(IMproved)编辑器是vi(visual interface)编辑器的增强版,它是Linux系统编辑文本文件重要的工具之一,也是最基础的编辑工具。它可以执行输出、删除、查找、替换、块操作等众多文本操作。
基本操作二)、VIM基本操作。
1)、使用vim打开一个文件: 1
| #vim [option]... [FILE]...
|
2)、直接输入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)、多文件模式: 可以同时打开多个文件,并在各个文件中进行切换。
在末行模式下: n|next:下一个文件。 N|previous:上一个文件。 first:第一个文件。 last:最后一个文件。 wa|wall:保存所有文件。 qa|qall:退出所有文件。 wqa|wqall:保存并退出所有文件。
3)、多窗口模式: 多窗口编辑操作: Ctrl+w, Arrow:窗口间切换。
单文件分割: Ctrl+w,s:水平分割。 Ctrl+w,v:垂直分割。
多文件分割: 1
| #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
|