我从Vim切换到Emacs,现在我为Emacs做了疯狂.
但是在Vim中有一个非常有用的技巧,我不能在Emacs中方便地使用,那就是找到下一个/前一个单词.这些在Vim中非常方便*/#.
最简单的方法是在点上移动到单词的开头,然后是Cs和Cw,使用Cs/Cr查找下一个/前一个单词.
然后我发现了掌握Emacs的另一个技巧,但仍然是一些小错误.
今天我找到了一个插件 - 在Emacs中模拟vim的vimpulse.我可以使用*/#那里只是喜欢Vim !! 但似乎vimpulse会自动启用Viper.
那么,任何其他方法来实现这个要求?或者,如果我使用vimpulse,我可以自动禁用Viper吗?
好吧,通常情况下,我们可以在Emacs中做得更好.我用于此的包是高亮符号
具体来说,我将一系列命令与F3键的变体绑定:
;;;;;;;;;;;;;;;;;;;;;;
;; highlight-symbol ;;
;;;;;;;;;;;;;;;;;;;;;;
(require 'highlight-symbol)
(global-set-key [f3] 'highlight-symbol-next)
(global-set-key [(shift f3)] 'highlight-symbol-prev)
(global-set-key [(control f3)] 'highlight-symbol-at-point)
(global-set-key [(control meta f3)] 'highlight-symbol-query-replace)
Run Code Online (Sandbox Code Playgroud)
下一个/上一个符号很好.但是我发现在阅读算法以突出显示几个关键变量时最有用.
单词和符号之间的区别非常适合编程.我不确定其他编辑是否提供这种区别.
我认为对编程非常有用的另一个相关工具是iedit.
这是我加载它的方式:
(autoload 'iedit-mode "iedit")
(global-set-key [(control \;)] 'iedit-mode)
(define-key isearch-mode-map [(control \;)] 'iedit-mode)
Run Code Online (Sandbox Code Playgroud)
要做你想做的事,转到一个符号并按C-;,现在 tab,shift tab将在匹配的符号之间移动.
C-'(单引号)将显示occur缓冲区的临时视图.
对于奖励重构工具,请标记要重命名符号(变量)的区域(可能是类),然后再按C-;一次,仅编辑该区域内的匹配项.