LINUX实战:Linux文本编辑器Vim基础教程
《LINUX实战:Linux文本编辑器Vim基础教程》要点: 一、关于vim一个功能十分强大的文本编纂器,在Linux中使用十分广泛. 二、Vim三种主要模式2.1敕令模式敕令模式是vim的默认模式,在该模式下,用户可以通过键盘,实现移动光标,剪切、粘贴文本等操作. 2.2插入模式(编纂模式)在插入模式下,用户可以对文本进行修改. 2.3扩展命令模式在该模式下,用户可以实现对文件的保留、退出等操作. 2.4模式之间相互转换敕令模式进入插入模式:按“i,I,o,O,a,A”键(详见6.1) 命令模式进入扩大命令模式:按“:”键 插入模式返回敕令模式:按“esc”键 扩大命令模式返回命令模式:按两次“esc”键或者“enter”键 ? 三、打开文件? ? 我们在使用vim打开一个文件时,如果这个文件时已存在的,我们可以打开浏览或修改;如果这个文件不存在,vim会在第一次存盘时创立它. 敕令:vim 格局:vim [OPTION]... FILE... 选项:? ? +#? 文件打开后,光标处于第#行行首.(+默认末了一行行首) ? ? ? ? ? ? ? +/ PATTERN? 文件打开后,光标处于第一个被PATTERN匹配到的行的行首 ? ? ? ? ? ? ? -b? 二进制方式打开文件 ? ? ? ? ? ? ? -m? 只读方式打开文件 ? ? ? ? ? ? ? -d file1 file2? 同时打开多个文件(切割窗口) ? ? ? ? ? ? ? -e? 直接进入扩大命令模式 四、封闭文件4.1扩展命令模式:? ? ? ? :q? ? 退出 ? ? ? ? ? ? :q!? ? 强制退出,废弃做出的修改 ? ? ? ? ? ? :wq? 保留并退出 ? ? ? ? ? ? :x? ? 保留并退出 注:wq!或x!? 当文件对当前用户权限为read-only时,可以强制保留并退出(仅限root和当前文件的owner) 4.2命令模式:? ? ? ? ? ? ZZ? ? ? ? 保留并退出 ? ? ? ? ? ? ZQ? ? ? ? 不保留直接退出 ? ? 不建议使用该办法,一般建议使用扩展命令模式下的关闭办法 五、光标移动5.1字符间跳转h:左? ? j:下? ? k:上? ? l:右 #COMMAND:跳转由#指定的个数的字符 5.2单词间跳转w:下一个单词的词首 e:在词首或词中时,跳转当前词尾;在词尾时,跳转下一单词的词尾 b:在词中或词尾时,跳转当前词首;在词首时,跳转前一单词的词首 #COMMAND:跳转由#指定的个数的单词数 5.3当前页跳转H:页首? ? M:页面中间行? ? L:页底 5.4行首行位跳转^: 跳转至行首的第一个非空缺字符 0: 跳转至行首 $: 跳转至行尾 5.5行间移动扩大命令模式下: # :跳转至由#指定行 G:末了一行? ? 1G,gg: 第一行 5.6句间移动):下一句? ? (:上一句 5.7段落间移动}:下一段? ? ?{:上一段 5.8翻屏操作敕令模式下: Ctrl+f: 向文件尾部翻一屏 Ctrl+b: 向文件首部翻一屏 Ctrl+d: 向文件尾部翻半屏 Ctrl+u:向文件首部翻半屏 六、文本插入6.1插入模式下:i: insert,在光标地点处输入 I:在当前光标地点行的行首输入 a: append,在光标地点处后面输入 A:在当前光标地点行的行尾输入 o: 在当前光标地点行的下方打开一个新行 O:在当前光标地点行的上方打开一个新行 6.2替换命令(命令模式下):? ? ? r: 替换光标地点处的字符 R:切换成扩大命令模式 七、剪切、复制和粘贴(命令模式下)7.1剪切命令(删除)d:删除命令,可结合光标跳转字符,实现规模删除 d$:删除到行尾 d^:删除到非空行首 d0:删除到行首 dw:删除到下一个单词的词首 de:光标位于词首或词中时,删除到该单词词尾;光标位于词尾时,删除到下一个单词的词尾 db:光标位于词尾或词中时,删除到该单词的词首;光标位于词首时,删除到前一个单词的词首 #COMMAND 加上hjkl方向箭向左时不包括当前字符. dd:删除光标地点的行 #dd:多行删除(删除光标地点行开始的共#行) D:从当前光标地位一直删除到行尾,留空行,等同于d$ dG 从光标地点处的当前行删除到尾行 dgg 从光标地点处删除至首行 dH 从光标地点处删除到当前页的首行 dL 从光标地点处删除到当前页的尾行 dM 从光标地点处删除到当前页的中间行 7.2复制命令(y,yank)? ? ? ? y:复制,行为类似与d命令 ? ? ? ? y$:光标地点位置复制到行尾 ? ? ? ? y0:光标地点位置复制到行首 ? ? ? ? y^:光标地点位置复制到行首第一个非空字符 ? ? ? ? ye:若光标在词首,复制当前单词;若光标在词中或词尾,复制到下一个单词词尾 ? ? ? ? yw:光标地点处复制到该单词词尾 ? ? ? ? yb:若光标在词中或词尾,复制当前单词;若光标在词首,复制到前一个单词的词首 ? ? ? ? ? ? #COMMAND ? ? ? ? ? ? ? ? yy:复制行? ? #yy: 复制多行? ? Y: 复制整行 ? ? ? ? ? ? 同样支持与G,gg,H,M,L共同. 7.3粘贴命令(p,paste)p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;不然,则粘贴至当前光标所在处的后面 P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;不然,则粘贴至当前光标所在处的前面 7.4撤销变动u撤销最近的变动 #u撤销之前多次变动 U 撤消光标落在这行后所有此行的变动 按Ctrl - r重做最后的“撤消”变动 . 反复前一个操作 n.反复前一个操作n次 注:复制粘贴均可使用地址定界,具体见13.2 八、查找与替换(扩展命令模式)8.1查找? ? /PATTERN:从当前光标地点处向文件尾部查找 ? ? ?PATTERN:从当前光标地点处向文件首部查找? ? ? n:与命令同偏向 ? ? N:与命令反偏向 8.2替换格局:s/要查找的内容/替换为的内容/修饰符 ? ? Eg:把所有的root替换成log? —>? %s/root/log/g 要查找的内容:可使用模式 替换为的内容:不克不及使用模式,但可以使用1,2,... 等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容 注:命令首加上%代表搜索文件全部内容,如果不加%,则表现只搜索光标所在行. 关于修饰符: ? ? i: 忽略年夜小写 ? ? g: 全局替换(默认情况下,每一行只替换第一次呈现的) ? ? gc:全局替换,每次替换前扣问 注:查找替换中的分隔符/可替换为其它字符,例如 ? ? s@/etc@/var@g 九、可视化模式(敕令模式下)允许选择的文本块 v 面向字符 V 面向行 ctrl-v 面向块 ? ? ? ? ? ? 可视化键可用于与移动键联合使用: w ) } 箭优等 突出显示的笔墨可被删除,复制,变更,过滤,搜索,替换等 ? 十、窗口分隔10.1多文件模式Vim可以同时打开多个文件进行比拟操作 格局:vim FILE1 FILE2 FILE3 ... ? ? 选项:? :next 下一个 ? ? ? ? ? ? :prev 前一个 ? ? ? ? ? ? :first 第一个 ? ? ? ? ? ? :last 末了一个 ? ? ? ? ? ? :wall 保留所有 ? ? ? ? ? ? :qall 退出所有 ? ? ? ? ? ? :wqall 2、窗口朋分①多文件朋分 ? ? vim -o|-O FILE1 FILE2 ... ? ? -o: 程度分割 ? ? -O: 垂直朋分 注:在窗口间切换:Ctrl+w,Arrow ②单文件窗口朋分: ? ? ? Ctrl+w,s: split,程度分割? ? ? ? Ctrl+w,v: vertical,垂直朋分? ? ? ? ctrl+w,q:撤消相邻窗口? ? ? ? ctrl+w,o:撤消全部窗口 ? ? ? :wqall 退出 十一、vim工作特性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 (7) 文件格局 启用windows格局: set fileformat=dos 启用unix格局: set fileformat=unix (8) ???置文本宽度 :set textwidth=65 (vim only) :set wrapmargin=15 :help option-list :set or :set all 十二、vim赞助vi/vim内置赞助 :help :help topic Use :q to exit help Vimtutor 十三、弥补扩展13.1以二进制方式打开文件vim –b binaryfile ?扩大命令模式下,利用xxd命令转换为可读的十六进制 :%!xxd ?编纂二进制文件 ?扩大命令模式下,利用xxd命令转换回二进制 :%!xxd –r ?保留退出 13.2地址定界(扩展命令模式下)格局::start_pos,end_pos 举例: ? ? ? ? :2 表现限定第二行 ? ? ? ? :2,5表现从第二行到第五行 ? ? ? ? :2,+3 表现从第二行开始,加上向后的三行 ? ? ? ? :. 表现当前行 ? ? ? ? :$ 表现最后一行 ? ? ? ? :.,$-1表现从当前行到倒数第二行 ? ? ? ? :%表现全局 ? ? ? ? :/root/,$-10d 从有root的行删除到倒数第十行 13.3命令模式扩展如果我们想在一个文件里不换行的插入100次hello,只必要输入下面的命令即可实现:100ihello [ESC]. 还有一些其他的敕令组合: 敕令: y:复制d:删除gu:变小写 gU:变年夜写 ? ?格局: ? ? ? ? StartcommandEnd ? ?例子: gg2yyp 在文首复制两行并粘贴到光标地点行下 ? ? ? ? gg:回到首行 ? ? ? ? 2yy:复制两行 ? ? ? ? p:粘贴在光标地点行的下一行 Vim入门根基知识集锦? Vim入门根基教程 把Vim打造成优秀的C++ IDE? Ubuntu 14.04进级Vim7.4到8.0? Vim安装youcompleteme自动补全插件? Linux Vim编纂器使用简单讲解? Vim文本编纂器? Vim安装与设置装备摆设进阶版 Vim编纂器使用教程? Ubuntu 16.04 Vim YouCompleteMe自动补全的安装设置装备摆设与使用? 本文永远更新链接地址: 更多LINUX教程,尽在编程之家PHP学院专栏。欢迎交流《LINUX实战:Linux文本编辑器Vim基础教程》! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |