Emacs: вставить слово в точку в запросе замены строки - PullRequest
10 голосов
/ 24 ноября 2011

Есть ли аналог вставки слова после точки в запрос isearch путем нажатия C-w после C-s, но для запросов замены строки (и замены регулярного выражения)?

Мне также нравится модификация Саши Чуаиз C-x вставка целого слова вокруг точки в isearch:

http://sachachua.com/blog/2008/07/emacs-keyboard-shortcuts-for-navigating-code/

В некоторых случаях это также будет очень полезно, если его можно будет использовать в строке замены.

Буду очень благодарен за любые советы!Спасибо!

Ответы [ 3 ]

8 голосов
/ 24 ноября 2011

Это будет сделано, хотя это не так сложно, как Cw в isearch, потому что вы не можете нажимать эту клавишу, чтобы расширить выбор:

(defun my-minibuffer-insert-word-at-point ()
  "Get word at point in original buffer and insert it to minibuffer."
  (interactive)
  (let (word beg)
    (with-current-buffer (window-buffer (minibuffer-selected-window))
      (save-excursion
        (skip-syntax-backward "w_")
        (setq beg (point))
        (skip-syntax-forward "w_")
        (setq word (buffer-substring-no-properties beg (point)))))
    (when word
      (insert word))))

(defun my-minibuffer-setup-hook ()
  (local-set-key (kbd "C-w") 'my-minibuffer-insert-word-at-point))

(add-hook 'minibuffer-setup-hook 'my-minibuffer-setup-hook)

РЕДАКТИРОВАТЬ: Обратите внимание, что это в стандартном минибуфере, так что вы можете использовать его в любом месте, где у вас есть приглашение минибуфера, например, в grep, Встречайте, и т.д.

2 голосов
/ 11 октября 2015

Я думаю, что это уже существует в Emacs - вы просто начинаете заменять на M-S-%, а затем нажимаете M-n (пока минибуфер пуст), это заполняет слово под курсором, есть более полезные вещи, которые вы можете сделать с это проверить http://endlessparentheses.com/predicting-the-future-with-the-m-n-key.html?source=rss#disqus_thread.

2 голосов
/ 25 ноября 2011

Два ответа:

  1. Заменить + автоматически выбирает текст в точке в качестве значения по умолчанию при вызовекоманды замены.

  2. В общем, Сосульки делает нечто похожее на то, что делает код Скотфразера (см. выше), ноэто более общее.В любой момент в любом минибуфере вы можете нажать M -. (по умолчанию), чтобы подобрать текст («вещи») в точке и вставить его в минибуфер.Вы можете повторить это, либо (a) подобрать последовательных вещей (например, слов) того же вида, накапливая их, как Cw делает для Isearch, либо(б) подобрать альтернативу, разные вещи в точке.Больше объяснений здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...