vim编辑器
一、简介 1.vi:Visual Interface,是一种文本编辑器,所谓文本数据是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。 2.Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 3.Vim的第一个版本由布莱姆?米勒在1991年发布。最初的简称是ViIMitation,随着功能的不断增加,正式名称改成了Vi IMproved。现在是在开放源代码方式下发行的自由软件。 二、文本编辑器的种类 1.行编辑器:所谓行编辑器是指一行一行来编辑处理的工具,如sed。 2.全屏编辑器:编辑空间占据整个屏幕,如nano,vi。 三、vim的使用 1.打开文件 2.语法:vim [OPTION]... [FILE]... 3.vim有以下几种打开方式: ①vim +#(后接数字):打开文件后,直接让光标处于第#行的行首;例如:vim +3 /etc/passed; ②vim +/PATTERN(正则表达式):打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;例如:vim +/^U /etc/fstab; ③vim + file:直接打开file,光标在最后一行;例如:vim + /etc/fstab; ④vim -b file:二进制方式打开文件;例如:vim -b /bin/cat; ⑤vim -d file1 file2...:比较多个文件 ⑥vim -m file:只读方式打开文件;例如:vim -m /etc/fstab; 4.如果该文件存在,文件被打开并显示内容;如果该文件不存在,当编辑后第一次存盘时创建它; 四、vim是一个模式编辑器 1.vim三种主要模式: 命令模式(默认):移动光标,剪切/粘贴文本; 插入模式(编辑):修改文本; 扩展命令模式:保存,退出等; 2.Esc键:可以从插入模式转换到命令模式 五、模式转换 1.从命令模式----->插入模式,可使用以下命令: i:在当前光标所在处前面输入; I:在当前光标所在行的行首输入; a:在当前光标所在处后面输入; A:在当前光标所在行的行尾输入; o:在当前光标所在行的下方打开一个新行; O:在当前光标所在行的上方打开一个新行; 2.从插入模式----->命令模式:Esc键; 3.命令模式----->扩展模式:直接输入冒号(:)即可在窗口左下方显示冒号; 4.从扩展模式---->命令模式:Esc键; 5.锁定和解锁:ctrl+s,ctrl+q; 六、退出文件 1.扩展模式: :q 退出; :q! 不保存退出; :wq 保存退出; :x 保存退出; :wq! 强制保存退出; 2.命令模式 ZZ:保存退出; ZQ:不保存退出; 七、扩展模式 1.按冒号(:)进入扩展模式: r filename:读文件内容到当前文件中;例如 :r /etc/issue; w filename:将当前文件内容写入另一个文件;例如:w /testdir/f1; !command:执行命令;例如:!ls; r!command:读入命令的输出;例如:r!ls /root; 八、命令模式光标跳转 1.字符间跳转: h:左 l:右 K:上 j:下 #command:跳转由#指定的个数的字符;例如:#h,#k; 2.单词间跳转: w:下一个单词的词首; e:当前单词或下一个单词的词尾; b:当前单词或前一个单词词首; #command:由#指定一次跳转的单词数;例如:3w,3e; 3.当前页跳转: H:页首; M:页中间行; L:页底; 4.行首行尾跳转: ^:跳转至行首的第一个非空白字符; 0:跳转至行首; $:跳转至行尾; 5.行间移动: #G:直接跳转至第#行; G:最后一行; 1G,gg:第一行; 6.句子间移动: ):下一句; (:上一句; 7.段落间移动: }:下一段; {:上一段; 九、命令模式翻屏操作 ctrl+f:向文件尾部翻一屏; ctrl+b:向文件首部翻一屏; ctrl+d:向文件尾部翻半屏; ctrl+u:向文件首部翻半屏; 十、命令模式操作 1.字符编辑: x:删除光标处字符; #x:删除光标处起始的#个字符; xp:交换光标所在处的字符及其后面字符的位置; ~:转换大小写; 2.替换命令: r:替换光标所在处字符; R:切换成REPLACE模式; 3.删除命令: d:删除命令,可结合光标跳转字符,实现范围删除; d$:删除到行尾; d^:删除到非空行首; d0:删除到行首; dw:删除到下一个单词的词首; de:删除到当前单词或下一单词的词尾; db:删除到当前单词或前一单词的词首; #command:删除多个单词; dd:删除光标所在的行; #dd:多行删除; D:从当前光标位置一直删除到行尾,留空行,等同于d$; 4.复制命令: y:复制,可结合光标跳转字符,实现范围复制; y$:复制到行尾; y0:复制到行首; y^:复制到非空行首; ye:复制到当前单词或下一单词的词尾; yw:复制到下一个单词的词首; yb:复制到当前单词或前一单词的词首; #command:复制多个单词; yy:复制行; #yy:复制多行; Y:复制整行; 5.粘贴命令: p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面; P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面; 6.改变命令: c:修改,可结合光标跳转字符,实现范围修改;所谓修改就是先删除,再转换为插入模式; c$:删除到行尾; c^:删除到非空行首; c0:删除到行首; cb:删除到当前单词或前一单词的词首; ce:删除到当前单词或下一单词的词尾; cw:删除到下一个单词的词首; #command:删除多个单词 cc:删除当前行并输入新内容; #cc:删除多行 C:删除当前光标到行尾,并切换成插入模式 7.100iwu [Esc]:含义是粘贴“wu”100次; 8.语法:<start position> <command> <end position> Command: y:复制 d:删除 gU:变大写 gu:变小写 例如:0y$命令含义是: 0:跳到行首 y:从这里开始复制 $:复制到本行最后一个字符 十一、扩展模式 1.地址定界 :start_pos,end_pos #:具体第#行,例如2表示第2行; #,#:从左侧#表示行起始,到右侧#表示行结尾; #,+#: 从左侧#表示的行起始,加上右侧#表示的行数;例如:2,+3表示2到5行; .:当前行; $:最后一行; .,$-1:当前行到倒数第二行; %:全文,相当于1,$; /pat1/,/pat2/:从第一次被pat1模式匹配到的行开始,一直到第一次被 pat2匹配到的行结束; #,/pat/: /pat/,$: 使用方式:后跟一个编辑命令: w file:将范围内的行另存至指定文件中; r file:在指定位置插入指定文件中的所有内容; 2.查找: /PATTERN:从当前光标所在处向文件尾部查找; ?PATTERN:从当前光标所在处向文件首部查找; n:与命令同方向; N:与命令反方向; 3.查找并替换: s:在扩展模式下完成查找替换操作; 格式:s/要查找的内容/替换为的内容/修饰符; 要查找的内容:可使用模式; 替换为的内容:不能使用模式,但可以使用1,2,... 等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容; 修饰符:; i: 忽略大小写 g: 全局替换;默认情况下,每一行只替换第一次出现; gc:全局替换,每次替换前询问; 注:查找替换中的分隔符/可替换为其它字符,例如: s@/etc@/var@g; s#/boot#/#i; 十二、命令模式 1.撤销更改: u:撤销最近的更改; #u:撤销之前多次更改; U:撤消光标落在这行后所有此行的更改; ctrl+r:重做最后的“撤消”更改 ; .:重复前一个操作; n.:重复前一个操作n次; 十三、vim的寄存器 1.有26个命名寄存器和1个无命名寄存器,常存放不同的 剪贴版内容,可以不同会话间共享。 2.用a,b,…,z表示,用“寄存器表示,放在数字和命令之间; 如:3"tyy 表示复制3行到t寄存器中 ; "tp 表示将t寄存器内容粘贴; 3.未指定,将使用无命名寄存器; 4.有10个数字寄存器,用0,1,…,9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不同会话间共享。 十四、vim编辑二进制文件 步骤: 1.以二进制方式打开文件: vim -b binaryfile 2.扩展命令模式下,利用xxd命令转换为可读的十六进制: :%!xxd 3.编辑二进制文件; 4.扩展命令模式下,利用xxd命令转换回二进制: :%!xxd ?Cr 5.保存退出; 十五、可视化模式 1.允许选择的文本块: v:面向字符; V:面向行; ctrl+v:面向块; 2.可视化键可用于与移动键结合使用: w, ) , } ,箭头等; 3.突出显示的文字可以被删除,复制,变更,过滤,搜索/替换等; 十六、多文件模式 1.格式:vim file1 file2 file3 ... :next 下一个文件; :prev 前一个文件; :first 第一个文件; :last 最后一个文件; :wall 保存所有; :qwall 退出所有; :wqall 保存所有文件并退出; 十七、使用多个窗口 1.多文件分割: 格式:vim -o|-O FILE1 FILE2 ... -o:水平分割; -O:竖直分割; 在窗口间切换:ctrl+w,arrow(上下左右方向键) 2.单文件窗口分割: ctrl+w,s: split,水平分割;
:wqall 退出; 十八、定制vim的工作特性 1.配置文件: 全局:/etc/vimrc 个人:~/.vimrc 2.扩展模式:只对当前vim进程有效: (1)行号 显示:set nu; 取消显示:set nonu; (2)括号成对匹配 匹配:set sm; 取消:set nosm; (3)自动缩进 启用:set ai; 禁用:set noai; (4)高亮搜索 启用:set hlsearch; 禁用:set nohlsearch; (5)语法高亮 启用:syntax on; 禁用:syntax off; (6)忽略字符大小写 启用:set ic; 禁用:ser noic; (7)文件格式 启用Windows格式:set fileformat=dos; 启用Unix格式:set fileformat=unix; (8)设置文本宽度 :set textwidth=65 :set wrapmargin=15 3.vim内置帮助 (1):help (2)Use :q to exit help 4.vimtutor(使用手册) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |