今天看到Mastering Emacs上介绍 iedit 插件的一篇文章。对于程序员来说,经常要重命名一个变量,之前我在 Emacs 下面使用替换命令来完成的,而 Iedit 可以编辑当前 buffer 里面多处相同的一个单词,编辑一处其他地方相同的 symbol 会自动被修改,这对于这样的操作是非常地直观有效,看下面这样的效果,图片来自Mastering Emacs。
最开始看到这个功能是在比较新的编辑器Sublime上,算是编辑器里一个很好的小创新吧。
另外在 buffer 中查找一个 symbol 也是经常需要的一个操作,我基本会用
(global-set-key [f3] 'highlight-symbol-next)
(global-set-key [(shift f3)] 'highlight-symbol-prev)
来快速地在相同的 symbol 之间切换,这是来自 highlight-symbol.el 里面的。
同样的操作也可以用 occur-mode 来实现,occur 的好处在于可以在另外一个窗口列出所找到结果大纲,这样更方便快速跳到相应的位置,这对于任何类型的文件都可以使用,而不止是可能需要静态分析后生成 tags 的程序。在Mastering Emacs后面有一段代码使得 occur-mode 可以在当前所有打开的 buffer 里找关键字。