vi使用:
基本模式: 输入模式: 末行模式: 内置的命令行接口 打开文件: +num:打开文件后,直接让光标处于第num行; +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行首; 例如:vim +3 /etc/passwd vim +/root /etc/passwd 模式转换: i:insert;在光标所在处插入; a:append;在光标所在处后面插入; o:在当前光标所在行的下方打开一个新行; I:在当前光标所在行的行首输入; A:在当前光标所在行的行尾输入; O:在当前所在行的上方打开一个新行; 关闭文件: :q 退出; :q! 强制退出,丢弃此前作出的修改; :wq 保存退出; :x 保存退出; :w /PATH/TO/SOMEWHERE ZZ:保存退出; 快速光标跳转: 字符间跳转: h:左 j:下 k:上 l:右 num l/k/j/h:一次跳过指定num个字符; 单词间跳转: w:下一个单词的词首; e:当前或下一个单词的词尾; b:当前或前一个单词的词首; num w/e/b:由num指定一次跳转单词的数量; 行首或行尾跳转: ^:跳转至光标所在行行首的第一个非空白字符; 0:跳转至光标所在行行首; $:跳 转至光标所在行行尾; 行间移动: num G:跳转至由num指定的行; G:跳转至最后一行; 1G或gg:第一行; 句间移动: ):跳转至下一句 (:跳转至上一句; 段落间移动: }:跳转至下一段; {:跳转至上一段; vim编辑命令: 字符编辑: x:删除光标处的字符; num x:删除光标处起始的num个字符; xp:交换光标所在处的字符及其后面字符的位置; 替换命令: r:替换光标所在处的字符,但不改变编辑模式; 删除命令: d^ d$ d0 dw de db num dw/e/b dd:删除光标所在整行 num dd:删除光标所在行及以下num行; 粘贴命令: p:缓冲区中如果存储的为整行,则粘贴至光标所在行的下方。否则,则粘贴至当前光标所在处的后面; P:缓冲区中如果存储的为整行,则粘贴至光标所在行的上方。否则,则粘贴至当前光标所在处的前面; 复制命令: y:复制,工作行为与d命令相似; yy:复制整行; num yy:包括光标所在行以及向下num-1行; y$ y0 y^ ye yw yb 改变命令: c:修改 由编辑模式转换为输入模式; c$ c^ c0 cb ce cb cc:删除并输入新内容; num cc: 可视化命令: v:按字符选定; V:按行选定; 注:经常结合编辑命令使用; 撤销此前的编辑: u:撤销此前的操作; num u:撤销指定次数的操作; 撤销此前的撤销:Ctrl+r 重复前一个编辑操作:“.” 翻屏操作: Ctrl+f:向文件尾部翻一屏; Ctrl+b:向文件首部翻一屏;Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏; vim的末行模式: 内建的命令行接口: 地址定界: :start_pos,end_pos num:具体第num行,例如2表示第二行; num1,num2:从第num1行起始,到num2行结尾; num1,+num2:从num1行起始,加上num2表示的行数,以及对num1到num1+num2之间的行所做的操作; “.”:表示当前光标所在行; $:最后一行; %:全文,相当于1$; /模式1/,/模式2/:从第一次被模式1匹配的行开始,一直到第一次被模式2匹配到的行结束; 使用方式: 后直接跟一个编辑命令; d y w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中; r /PATH/TO/SOMEWHERE:从指定位置插入指定文件中的所有内容; 查找: /PATTERN:从当前光标所在处向文件尾部查找; ?PATTERN:从当前光标所在处向文件首部朝朝; n:与命令同方向 N:与命令反方向; 查找并替换: s:在末行模式下完成查找替换操作; s/要查找的内容/替换为的内容/修饰符; 要查找的内容,可使用模式; 替换为的内容:不能使用模式,但可以使用\1,\2...等后向引用符号,还可以使用"&"引用前面查找时查找到的整个内容; 修饰符: i:忽略大小写; g:全局替换,默认情况下,每行只替换第一次出现; 练习: 1、复制/etc/grub.conf至/tmp目录,用查找替换命令删除/tmp/grub.conf文件中的行首空白字符; 2、复制/etc/init.d/functions文件至/tmp目录,用查找替换命令将/tmp/functions的每行开头为空白字符的行的行首添加一个#号 多文件模式: vim FILE1 FILE2 FILE3 :next 下一个文件; :prev 前一个文件; :first 第一个文件; :last 最后一个文件; :wall 保存所有文件; :qall 退出所有; 窗口分割模式: vim -o|-O FILE1 FILE2 -O:垂直分隔; -o:水平分割; 在窗口间切换:Ctrl+w Arrow 单文件窗口分割: Ctrl+w,s:split 水平分割; Ctrl+w,v:verti 垂直分隔;定制vim工作特性:
配置文件: 全局:/etc/vimrc 个人:~/.vimrc 末行:当前vim进程有效;在末行模式下
1、行号:
显示:set number,简写set nu
取消显示:set nonumber 简写set nonu 2、括号匹配: 匹配:set showmatch,简写set sm 取消:set nosm 3、自动缩进: 启动:set ai 取消:set noai 4、高亮搜索: 启用:set hlsearch 取消:set nohlsearch 5、语法高亮: 启用:syntax on 禁用:syntax off 6、忽略字符大小写: 启用:set ic 禁用:set noic