当前位置: 华文星空 > 知识

vim/gvim 有哪些实用技巧?

2014-12-25知识

来点新鲜的,部分我收集整理的:

- 永远不要用 CTRL - C 代替 < ESC > 完全不同的含义 ,容易错误中断当前脚本 - 很多人使用 CTRL - [ 代替 < ESC > ,左手小指 CTRL ,右手小指 [ 熟练后很方便 - SecureCRT 中使用 Vim 8 内嵌终端如看到奇怪字符 ,使用 :set t_RS = t_SH = 解决 - SecureCRT 中使用 NeoVim 如看到奇怪字符 ,使用 :set guicursor = 解决 - * 和 # (以及 g */g #)是十分重要的查找命令 - 多使用 ciw , ci [, ci ", ci( 以及 diw, di[, di" , di ( 命令来快速改写 /删除文本 - 使用 @: 重复执行上一次 Ex 命令 ,比如 :nohl < cr >, @:, @:, @: - SHIFT 相当于移动加速键 , w b e 移动光标很慢 ,但是 W B E 走的很快 - 自己要善于总结新技巧 ,比如移动到行首非空字符时用 0 w 命令比 ^ 命令更容易输入 - 在空白行使用 dip 命令可以删除所有临近的空白行 - 在空白区使用 viw 可以选择所有空白字符 - 缩进时使用 > 8 j > } < ap = i } == 会方便很多 - 越重复的工作 ,越需要努力的将其自动化 - 编程时可以使用 [{ 和 ]} 快速在函数间移动 - 插入模式下 ,当你发现一个单词写错了 ,应该多用 CTRL - W 这比 < BackSpace > 快 - 插入模式下 ,CTRL - X CTRL - F 可以方便的补全当前目录的文件名 - 插入模式下 ,可用 CTRL - V u 输入 unicode ,如 < C - V > u1234 输入16进制 unicoode - 插入模式下 ,CTRL - R = 可以用来简单计算 ,比如 < C - R >= 12 *3 .5 /10 < cr > 会插入 4 .2 - 如果在插入模式下移动光标 ,那么就不能使用 . 来重复之前的插入了 - y d c 命令可以很好结合 f t 和 /X 比如 dt) 和 y/ end < cr > - c d x 命令会自动填充寄存器 "1 到 " 9 , y 命令会自动填充 "0 寄存器 - 用 v 命令选择文本时 ,可以用 o 掉头选择 ,有时很有用 - ca ) 和 yi } 很容易记忆 ,但是他们等同于 cab yiB 后者很容易输入 - 写文章时 ,可以写一段代码块 ,然后选中后执行 :! python 代码块就会被替换成结果 - 搜索后经常使用 :nohl 来消除高亮 ,使用很频繁 ,可以 map 到 < BackSpace > 上 - 搜索时可以用 CTRL - R CTRL - W 插入光标下的单词 - Vim 有一千零一种移动光标的方法 ,有时候就连 H M L 也是很有用的 - 不需要记忆上一次选择区域 ,'< 和 ' > 可以跳到上次选择的开始和结束 - 如需编辑同一个文件的不同地方 ,可以用 :vs 或者 :split 将文件分为两个窗口 - 有六种方法来改变一个布尔设置 : :set list nolist list ! invlist list ? list & - 映射按键时 ,应该默认使用 noremap ,只有特别需要的时候使用 map - 当你觉得做某事很低效时 ,你应该停下来 ,u u u u 然后思考正确的高效方式来完成 - 用 y复制文本后 ,命令模式中 CTRL - R 然后按双引号 " 可以插入之前复制内容 - 如果你想全屏阅读帮助的话 ,使用 :tab help < keyword > 命令 - 粘贴文本时应该思考下前后是否包含空格 - :x 和 ZZ 命令和 :wq 类似 ,但是不会写入没有改变的文件 ,并且更快 - 多阅读 :h index 学习新的快捷键 ,让你更加高效 - Vim 帮助系统里有一个使用技巧集合 ,使用 :h tips 阅读 - Windows 下的 GVim 可以用 CTRL - INSERT 和 SHIFT - INSERT 操作系统剪贴板 - 思考题 :知道下面控制代码 ^I ^M ^J ^[ ^H ^@ 分别代表什么意思么 ?

更多技巧见:

https:// github.com/skywind3000/ awesome-cheatsheets/blob/master/editors/vim.txt

全网最全的 Vim 速查表