快捷键 说明 i insert, 在光标所在处输入 I 在当前光标所在行的行首输入 a append, 在光标所在处后面输入 A 在当前光标所在行的行尾输入 o 在当前光标所在行的下方打开一个新行 O 在当前光标所在行的上方打开一个新行 ZZ 保存退出 ZQ 不保存退出
:q 退出 :q! 强制退出,丢弃做出的修改 :wq 保存退出 :x 保存退出
命令模式 di" 光标在" "之间,则删除" "之间的内容
yi( 光标在()之间,则复制()之间的内容 vi[ 光标在[]之间,则选中[]之间的内容 dtx 删除字符直到遇见光标之后的第一个 x 字符 ytx 复制字符直到遇见光标之后的第一个 x 字符
字符间跳转: h: 左 l: 右 j: 下 k: 上 #COMMAND:跳转由#指定的个数的字符
单词间跳转: w:下一个单词的词首 e:当前或下一单词的词尾 b:当前或前一个单词的词首 #COMMAND:由#指定一次跳转的单词数
当前页跳转: H:页首 M:页中间行 L:页底 zt:将光标所在当前行移到屏幕顶端 zz:将光标所在当前行移到屏幕中间 zb:将光标所在当前行移到屏幕底端
行首行尾跳转: ^: 跳转至行首的第一个非空白字符 0: 跳转至行首 $: 跳转至行尾
行间移动: #G :扩展命令模式下:# 跳转至由#指定行 G:最后一行 1G, gg: 第一行
句间移动: ):下一句(:上一句
段落间移动: }:下一段{:上一段 Ctrl+f: 向文件尾部翻一屏 Ctrl+b: 向文件首部翻一屏 Ctrl+d: 向文件尾部翻半屏 Ctrl+u:向文件首部翻半屏
字符编辑: x: 删除光标处的字符 #x: 删除光标处起始的#个字符 xp: 交换光标所在处的字符及其后面字符的位置 ~:转换大小写 J:删除当前行后的换行符
替换命令(r, replace) r: 替换光标所在处的字符 R:切换成REPLACE模式
删除命令: d: 删除命令,可结合光标跳转字符,实现范围删除
复制命令(y, yank): y: 复制,行为相似于d命令
粘贴命令(p, paste): p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面 P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
查找 /PATTERN:从当前光标所在处向文件尾部查找 ?PATTERN:从当前光标所在处向文件首部查找 n:与命令同方向 N:与命令反方向
查找并替换 s: 在扩展模式下完成查找替换操作 格式:s/要查找的内容/替换为的内容/修饰符 要查找的内容:可使用模式 替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容
修饰符: i: 忽略大小写 g: 全局替换;默认情况下,每一行只替换第一次出现 gc:全局替换,每次替换前询问
查找替换中的分隔符/可替换为其它字符,例如s@/etc@/var@gs#/boot#/#i
例:
用vim,在/etc/default/grub倒数第二行末尾引号前面加入 xyz
:%s/\(.*CMD.*\)"/\1 xyz"/用vim,在/etc/fstab中给行首不是#开头的都加上#
方法一 :%s@\(^[^#].*\|^$\)@#\1@ 方法二 :%s@^[^#]\|^$@#&@用vim,去除#开头的行
方法一 :%s/^#.*\n// 方法二 留下了空行 :%s@^#.*$@@
转载于:https://www.cnblogs.com/bj-mr-li/p/11153102.html