2.9-vim编辑器
vim编辑器 vi:Visual Interface,文本编辑器 文本:ASCII,Unicode 文本编辑种类: 行编辑器:sed 全屏编辑器:nano,vi VIM - Vi IMproved 使用VIM vim:模式化的编辑 基本模式: 编辑模式,命令模式: 输入模式: 末行模式: 内置的命令行接口 打开文件: #vim [option]... FILE... +#:打开文件后,直接让光标处于第#行的行首 +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首 模式转换: 编辑模式-->输入模式 i:insert,在光标所在处输入 I:在当前光标所在行行首输入 a:append,在光标所在处后面输入 A:在当前光标所在行行尾输入 o:在当前光标所在行下方打开一个新行 O:在当前光标所在行上方打开一个新行 c: C: 输入模式-->编辑模式 ESC 编辑模式-->末行模式 : 末行模式-->编辑模式 Ctrl+c或两次ESC 关闭文件: :q 退出 :q! 强制退出,丢弃做出的修改 :wq 保存退出 :x 保存退出 :w /PATH/TO/SOMEWHERE ZZ:保存退出(编辑模式下) 光标跳转: 字符间跳转: h,j,k,l h:左 j:下 k:上 l:右 #COMMAND:跳转由#指定个数的字符 单词间跳转: w:下一个单词的词首 e:当前或下一单词的词尾 b:当前或上一个单词的词首 #COMMAND:跳转由#指定个数的单词 行首行尾跳转: ^:跳转至行首的第一个非空白字符 0:跳转至行首 $:跳转至行尾 行间移动: #G:跳转至由#指定的行 G:最后一行 1G,gg:跳转至首行 句间移动: ):下一个句子 (:上一个句子 段间移动: }:下一段 {:上一段 vim的编辑命令: 字符编辑: x:删除光标所在处的字符 #x:删除光标所在处向后#个字符 xp:交换光标所在处的字符及后面字符的位置 替换命令: r:替换光标所在处的字符 删除命令: d:删除命令,可结合光标跳转字符,实现范围删除 d$:光标到行尾的内容 d^:光标到行首的内容 d0:光标到行首的内容 dw: de: db: #COMMAND #dw: #de: #db: dd:删除光标所在处的整行 #COMMAND:删除#行 粘贴命令(p,put,paste): p(小写):缓冲区存储的如果为整行,则粘贴在当前光标所在行的下方。否则,则粘贴至当前光标所在处的后面 P(大写):缓冲区存储的如果为整行,则粘贴在当前光标所在行的上方。否则,则粘贴至当前光标所在处的前面 复制命令(y,yank): y:复制,工作行为相似于d命令: y$ y0 y^ ye yw yb #COMMAND yy:复制行 #yy:复制#行 改变命令(c,change) c:修改 编辑模式-->输入模式 c$ c0 c^ ce cw cb #COMMAND cc:删除并输入新内容 #cc:删除#行 可视化模式: v:按字符选定 V:按行选定 Note:经常结合编辑命令 d,c,y 撤销此前的编辑: u(undo):撤销此前操作 #u:撤销此前#次操作 撤销此前的撤销: Ctrl+r 重复前一个编辑操作: . 翻屏操作: Ctrl+f:向文件尾部翻一屏 Ctrl+b:向文件首部翻一屏 Ctrl+d:向文件尾部翻半屏 Ctrl+u:向文件首部翻半屏 vim自带的教程 vimtutor vim中的末行模式: 内建的命令行接口 (1)地址定界 :start_pos,end_pos #:具体第#行,例如2表示第2行 #,#:从左侧#表示行起始,到右侧#表示行结尾 #,+#:从左侧#表示行起始,加上右侧#表示的行数 .:当前行 $:最后一行 例如:.,$-1:从当前行到倒数第二行 %:全文,相当于1,$ /pattern1/,/pattern2/:从第一次被pattern1模式匹配到的行开始,一直到第一次被pattern2匹配到的行结束 常见的用法: #,/pattern/ /pattern/,$ 使用方式: 后跟一个编辑命令 d y w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中 r/PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容 (2)查找 /PATTERN:从当前光标所在处向文件尾部查找 ?PATTERN:从当前光标所在处向文件首部查找 n:与命令同方向查找符合PATTERN的内容 N:与命令反方向查找符合PATTERN的内容 (3)查找并替换 s:在末行模式下完成查找替换操作 s/要查找的内容/替换为的内容/修饰符 要查找的内容:可使用模式 替换为的内容:不能使用模式,但可以使用1,2,...等后向引用符号,还可以使用"&"引用前面查找时查找到的整个内容 修饰符: i:忽略大小写 g:全局替换:默认情况下,每一行只替换第一次出现 查找替换中的分隔符/可替换为其他字符,例如 :% s //var/log/message//etc/passwd/g 可以写成:% s@/var/log/message@/etc/passwd@g 练习: 1.复制/etc/grub.conf至/tmp目录,用查找替换命令删除/tmp/grub.conf文件中的行首的空白字符 2.复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |