"Super star" ou trouver le mot sous l'équivalent du curseur dans emacs
Je suis un utilisateur vim et j'ai récemment essayé emacs pour le plaisir. Je trouve que la fonctionnalité qui me manque le plus jusqu'à présent de vim est la fonctionnalité" super star " (Trouvez le mot sous le curseur en tapant*), et je n'ai pas encore trouvé l'équivalent dans emacs. Si ce n'est pas intégré, que devrais-je ajouter à mon fichier emacs pour obtenir quelque chose de similaire?
5 réponses
, Comme souligné par paldepind, isearch-forward-symbol-at-point
(M-s., par défaut) est un proche équivalent à * dans Vim. Cette fonction est disponible à partir de GNU Emacs 24.4; si votre Emacs est différent ou plus ancien, lisez la suite pour les alternatives.
Habituellement, je fais juste ( M-b ...) , C-s C-w ... C-s . C'est:
-
M-b pour passer au début du(des) mot (s) d'intérêt
- zéro ou plus de ces
- C-S {[9] } pour démarrer une I-Search
-
C-w {[9] } pour tirer le(S) mot (s) commençant au point
- un ou plusieurs de ces
- C-s pour trouver la prochaine correspondance
- Plus C-s pour trouver des correspondances ultérieures
-
RET pour quitter le I-search à la correspondance la plus récente
- ou un groupe de C-g pour revenir à l'emplacement de départ d'origine
Voici un aller à en l'intégrant dans je-Recherche (appelé par l'intermédiaire de , C-s et , C-r; utilisez , C-h k C-s pour plus d'informations sur 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))))
L'intégrer dans I-Search tire parti de ses paramètres de correspondance de mots et de sensibilité à la casse ( C-s M-c C - * ferait une recherche sensible à la casse sur le mot sous le point).
Voici un début:
(global-set-key (kbd "C-*") (lambda () (interactive) (re-search-forward (format "\\b%s\\b" (thing-at-point 'word)))))
Ces jours - ci, il y a aussi Smart Scan, un package add-on léger qui fournit cette fonctionnalité.
Il est disponible à partir de MELPA ; les instructions pour ajouter MELPA à la liste des package-archives
activés sont ici.
Pour l'installer:
M-x package-install
RET smartscan
RET
Vous pouvez ensuite l'activer via
(global-smartscan-mode t) ;; Turn on Smart Scan globally
Les raccourcis clavier par défaut pour la recherche en avant et en arrière sont M-N et M-p, respectivement.
PS: Si vous êtes intéressé, le billet de blog original présentant ce paquet est ici .
Si vous utilisez viper (qui fonctionne très bien) cela devrait fonctionner de la même manière:
(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)