1

В emacs 24.1, когда вы выполняете Ctrl-Y в интерактивном поиске, он возвращает буфер уничтожения в строку поиска ("вставляет содержимое буфера обмена" на языке любого другого приложения) и пытается сопоставить его.

В последних 20 версиях или около того, нажатие Ctrl-Y соответствует остальной части текущей строки. У меня есть два очень распространенных варианта использования:

  1. Сопоставьте эту строку, верните буфер и найдите строку

  2. (реже :) Где еще этот текст в буфере?

Я попытался изменить /lisp/isearch.el, переключив привязки для isearch-yank-line (что я хочу) и isearch-yank-kill (что я прекрасно связываю с нелепой последовательностью клавиш \ Ms \ Ce). Но я не думаю, что этот файл даже будет поднят. Но я не думаю, что этот файл даже загружается. Если я явно загружаю его, я все равно получаю поведение 24.1.

Вот мое изменение:

(add-hook 'isearch-mode-hook
   (lambda ()
     (define-key isearch-mode-map    "\C-y" 'isearch-yank-line)
     (define-key isearch-mode-map "\M-s\C-e" 'isearch-yank-kill)
    ))

Никаких изменений в поведении. Я даже пытался взломать isearch.el, до сих пор без изменений.

Это на Windows между прочим, но я подозреваю, что это не имеет значения.

Может кто-нибудь сказать мне, как я могу восстановить старую привязку?

1 ответ1

1

то, что работает для меня, это взять твой крюк и объединить его с моим собственным изурочником.

(вы можете поместить это в ~/.emacs … я пойду немного дальше и сохраню отдельные режимы в ~/.emacs.el/.modes.el , затем побайтно скомпилирую этот файл, затем (load ".modes" t t) в держать вещи немного менее загроможденными.)

(setq isearch-mode-hook
      '(lambda nil
     (define-key isearch-mode-map "\C-y"   'isearch-yank-line)
     (define-key isearch-mode-map "\C-f"   'isearch-repeat-forward)
     (define-key isearch-mode-map "\C-t"    'isearch-toggle-regexp)))

работает как шарм. спасибо за помощь в получении моего ^ Y обратно

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .