我是一名vim用户,最近一直在试用emacs以获得乐趣。我发现到目前为止我最缺少的功能是“super star”(通过键入*找到光标下的单词)功能,我还没有在emacs中找到相应的功能。如果它没有内置,我需要添加到我的emacs文件中以获得类似的内容吗?
答案 0 :(得分:34)
pointed out paldepind,isearch-forward-symbol-at-point
( Ms 。,默认情况下)与相当* 在Vim中。此功能从GNU Emacs 24.4开始提供;如果您的Emacs不同或更老,请继续阅读替代方案。
通常我只是做( M-b ...) C-s C-w ... C-s 。那就是:
以下是将其整合到I-Search中(通过 Cs 和 Cr 调用;使用 Ch k Cs < / kbd>有关isearch
)的信息。
(require "thingatpt")
(require "isearch")
(define-key isearch-mode-map (kbd "C-*")
(lambda ()
"Reset current isearch to a word-mode search of the word under point."
(interactive)
(setq isearch-word t
isearch-string ""
isearch-message "")
(isearch-yank-string (word-at-point))))
将其集成到I-Search中利用其单词匹配和区分大小写设置( Cs Mc C - * 会做一个案例 - 对点下的单词进行敏感搜索)。
答案 1 :(得分:17)
尝试 C-s C-w
答案 2 :(得分:10)
这是一个开始:
(global-set-key (kbd "C-*") (lambda () (interactive) (re-search-forward (format "\\b%s\\b" (thing-at-point 'word)))))
答案 3 :(得分:6)
现在还有Smart Scan,一个提供此功能的轻量级附加软件包。
可从MELPA获取;将MELPA添加到已启用package-archives
列表的说明为here。
安装它:
M-x package-install
RET smartscan
RET
然后您可以通过
启用它(global-smartscan-mode t) ;; Turn on Smart Scan globally
向前和向后搜索的默认键绑定分别为 M-n 和 M-p 。
PS:如果您有兴趣,介绍此软件包的原始博客文章是here。
答案 4 :(得分:4)
如果您正在使用v蛇(效果很好),这应该足够相似:
(require 'thingatpt)
(require 'viper)
(defun viper-search-word-at-point ()
"Reset viper-s-string to word at point and start a forward viper search."
(interactive)
(setq viper-s-string (word-at-point))
(viper-search viper-s-string 't nil))
(global-set-key (kbd "C-*") 'viper-search-word-at-point)
答案 5 :(得分:0)
C-s C-w
可以,但是严格来说不是符号搜索,而是“点右边的单词部分”搜索。
正确的答案是M-s .
,它从symbol search开始,符号是预加载点。符号搜索是isearch的一种特殊模式,您可以从M-s _
开始。如果您已经在isearch中(例如,按C-s
或C-r
之后),也可以键入M-s _
来输入符号搜索。
我强烈建议您阅读isearch的全部文档,因为它非常强大且用途广泛。