“超级明星”或在emacs中找到等效光标下的单词

时间:2009-11-21 09:16:34

标签: search vim emacs editor

我是一名vim用户,最近一直在试用emacs以获得乐趣。我发现到目前为止我最缺少的功能是“super star”(通过键入*找到光标下的单词)功能,我还没有在emacs中找到相应的功能。如果它没有内置,我需要添加到我的emacs文件中以获得类似的内容吗?

6 个答案:

答案 0 :(得分:34)

pointed out paldepindisearch-forward-symbol-at-point Ms ,默认情况下)与相当* 在Vim中。此功能从GNU Emacs 24.4开始提供;如果您的Emacs不同或更老,请继续阅读替代方案。

通常我只是做( M-b ...) C-s C-w ... C-s 。那就是:

  1. M-b 移动到感兴趣的单词的开头
    • 这些
    • 中的零个或多个
  2. C-s 开始I-Search
  3. C-w 从点开始抽出单词
    • 其中一个或多个
  4. C-s 找到下一场比赛
  5. 更多 C-s 以查找以后的匹配
  6. RET 退出最近一次比赛的I-search
    • 或一堆 C-g 中止回到原来的起始位置
  7. 以下是将其整合到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-sC-r之后),也可以键入M-s _来输入符号搜索。

我强烈建议您阅读isearch的全部文档,因为它非常强大且用途广泛。