当前位置: 首页 > Linux

vim编辑器_0

时间:2023-04-06 02:37:34 Linux

Vim编辑器vim(ViIMproved)是vi文本编辑器的扩展程序。Vim可以在命令行界面上使用,也可以作为图形用户界面上的独立应用程序使用。Vim是由BramMoolenaar基于Amiga计算机上的Stevie编辑器界面源程序编写的,并于1991年首次向公众发布。Vim是跨多个平台的文本编辑器。2015年,StackOverflow将Vim调查为排名第三的主流文本编辑器;2016年,StackOverflow将Vim调查为排名第四的开发环境。;Vim的使用1.Vim的基本模式Vim是一个模块化的编辑器,它有三种模式:编辑模式,也称为命令模式;输入模式(可以编辑文本);lastlinemode(built-incommandlineInterface)三种模式的转换编辑模式为默认模式a:追加,输入光标位置后面;o:在光标位置线下方新建一个;I:在光标所在行的行首输入;A:在光标所在行的末尾输入;O:在光标上方新开一行;输入模式-->编辑模式ESC键;编辑模式->末行模式:;末行模式-->编辑模式ESC键;2、打开文件#vim[optins][file...]+#:打开文件后,直接将光标定位到行首#位置;+PATTERN:打开文件,直接将光标定位到第一次匹配PATTERN的行首;3、关闭文件ZZ:保存退出;以下操作都是在最后一行模式下:qexit;:问!强制退出而不保存之前的编辑操作;:wq保存退出;:x保存并退出;:w/PATH/TO/SOMEWHERE将文件保存到其他文件4.光标(cursor)跳转(1)字符间跳转^kjv#DIRECTION:指定方向跳转#字符(2)字符间跳转w:光标跳转到下一个单词的开头;b:当前或上一个单词的开头;e:当前或下一个单词的结尾;#COMMAND:Jumpto#wordstoCOMMAND(3)跳转到行首和行尾^:跳转到行首第一个非空白字符;0:跳转到第一行;$:跳转到行尾;(4)行间跳转#G:跳转到#指定的行;1G,gg:跳转到第一行;G:跳转到最后一行;(5)Jumpbetweensentences:跳到下一句;(:跳转到上一句;#COMMAND:跳转到COMMAND#Sentence(6)段落间跳转}:跳转到下一段;{:跳转到上一段;#COMMAND:跳转到#段到COMMAND;5.翻屏Ctrl+f:转到文件末尾转一屏Ctrl+b:文件开头转一屏Ctrl+d:文件末尾转半屏Ctrl+u:文件开头转半屏Enter:转6.Vim编辑命令(1)字符编辑x:删除光标所在位置的字符;#x:删除光标所在位置的前#个字符;xp:交换光标所在位置的字符和后面的字符的位置;(2)替换命令(replace)r:替换光标所在位置的字符;rCHAR:将光标所在位置的字符替换为CHAR;(3)删除命令d:删除命令,可以结合光标跳转字符实现范围删除;d$:删除当前光标位置的字符到行尾的内容;d^:删除当前光标前字符到行首的非空白内容;d0:删除当前光标前字符到行首的内容;dd:删除光标所在行;#dd:删除光标所在行首的内容共#行;(4)粘贴命令(p,put,paste)p:如果缓冲区中的内容是整行,则粘贴到当前光标所在行的下方;否则,粘贴到当前光标位置P:如果缓冲区中的内容是整行,则粘贴到当前光标所在行的上方;否则,它将被粘贴到当前光标的前面;(5)复制命令(yank,y)y:复制,工作行为与d命令类似;(6)改变命令(change,c)编辑方式-->输入方式实现删除操作;行为类似于d命令,只是执行完c相关命令后会切换到输入模式;7、其他编辑操作:(1)可视模式:v:按字符选择;V:按行选择;结合编辑命令:d、c、y(2)撤消操作(undo):u:撤消之前的操作;#u:撤销之前的#操作;撤销之前的撤销操作:Ctrl+r(3)重复之前的编辑操作:.vim自带教程,vimtutor8,vim最后一行模式内置的命令行界面(1)地址定界:start_pos[,end_pos]#:具体行#,例如5为第五行;.:光标所在的当前行;$:最后一行;#、#:指定范围的行,从左边开始第一行,右边是结束行;#、+#:指定行范围,左边是起始行的绝对数,右边是相对左边行号的偏移量;例如:3,+7%:全文,等价于(1,$)/pattern/:从光标位置到文件末尾第一次匹配到pattern/pattern/,$:从第一次被pattern匹配到的行到行尾;/pat1/,/pat2/:从光标位置开始,从pat1第一次匹配到的行开始,到行尾pat2第一次匹配到的行尾之间的所有行;可以和编辑命令一起使用,实现编辑操作:d,y,c,w/PATH/TO/SOMEFILE:将范围内的文本保存到指定文件中;r/PATH/FROM/SOMEFILE:读取指定文件中的文本,插入到指定位置;(2)search:/PATTERN:搜索从当前光标位置到文件末尾可以被当前模式匹配的所有字符串;?PATTERN:搜索从当前光标位置到文件开头所有能被当前模式匹配的字符串;n:next,与命令方向相同;N:previous,与命令方向相反;(3)查找并替换s:最后一行模式的命令;使用格式s/whattofind/replacewith/modifierwhattofind:可以使用正则表达式;whattoreplacewith:不能使用正则表达式,但是可以引用;如果“查找内容”部分在模式中使用分组符号:在“替换为”中使用反向引用;直接引用搜索模式匹配的所有文本,使用&符号;修饰符:i:搜索时忽略大小写;g:全局替换,表示如果一行中有多个匹配项,则进行替换;默认替换每行最先匹配的内容;示例:%s@\@T\1@g%s@\@&er@g9、vim的多文件功能(1)多文件:vimFILE1FILE2...切换文件:末行模式下输入next;prev上一个文件;first第一个文件lastthelast退出所有文件:wqall:保存所有文件并退出;wall:保存所有文件;qall:退出所有文件(2)multiwindow:-o:water水平分割窗口;-O:垂直分割窗口;窗口切换:Ctrl+w,箭头:切换到下一个文件注意:单个文件也可以拆分成多个窗口查看:Ctrl+w,s:水平拆分窗口;Ctrl+w、v:垂直分割窗口;10、自定义vim的工作特性:注意:最后一行模式下的设置只对当前vim有效;永久有效:全局:/etc/vimrc用户个人:~/.vimrc(1)行号:display:setnumber,abbreviation:setnumcancel:setnonum(2)bracketmatchhighlightmatch:setshowmatch,setsmcancel:setnosm(3)autoindentenable:setautoindentsetaiDisabled:setnoai(4)启用高亮搜索:sethlsearch禁用:setnohlsearch(5)启用语法高亮:syntaxon禁用:syntaxoff(6)忽略字符大小写启用:setic禁用:setnoic练习1.复制/etc/将grub2.cfg文件复制到/tmp目录下,使用查找替换命令删除/tmp/grub2.cfg文件中以空白字符开头的行首的空白字符;:%s@^[[:space:]]\+@@g2,复制/etc/rc.d/init.d/functions文件到/tmp目录下,使用搜索替换命令开始每一行在/tmp/functions文件中以空白字符开头Add#;:%s@^[[:space:]]\+[^[:space:]]@#&@g3,在/tmp/grub2.cfg文件前三行的开头加上#;:1,3s@^.*@#&@4。将/etc/yum.repos/CentOS-Base.repo文件中的enabled=0全部替换为enabled=1,将gpgcheck全部替换为gpgcheck=1;:%s@\(启用\|gpgcheck\)=1@\1=1@g