2010-07-15 3 views
8

Можно ли искать текст, который в настоящее время присутствует в буфере обмена, при нажатии C-s, возможно, с каким-то крюком, который срабатывает при нажатии C-s, а затем вставляет буфер обмена в минибуфер?Поиск текста буфера обмена в emacs

+0

Смотрите также [этот вопрос] (http://superuser.com/q/221829/4542). – legoscia

ответ

10

Isearch содержит набор стандартных ключей для изменения поведения процесса поиска. Ввод C-s M-y вызывает isearch-yank-kill, который вытаскивает строку из kill ring (т. Е. Буфер обмена) в строку поиска.

+0

Чтобы увидеть все ключевые слова 'isearch' (и другую помощь), введите' C-s C-h C-h' – phils

+0

Это не отвечает на вопрос. Kill-ring и clipboard - это разные вещи и, например, для меня как C-y, так и M-y для поиска пастообразного случайного мусора, ни один из которых у меня во вторичных или первичных буферах обмена. –

0

Вы можете либо использовать defadvice для изменения поведения команды isearch-forward, которая по умолчанию привязана к C-s, либо определить другую функцию, которая, возможно, обертывает isearch-forward и связывает ее с C-s вместо isearch-forward.

1

Вы можете дергать текст после запуска ISearch:

(defun my-isearch-yank-clipboard() 
    (interactive) 
    (isearch-yank-string (or (x-get-selection 'PRIMARY) 
          (x-get-selection 'CLIPBOARD) 
          ""))) 

(define-key isearch-mode-map (kbd "M-s c") 'my-isearch-yank-clipboard) 

Start ISearch затем "MS C"

+0

@scottfrazer: Встроенный '(isearch-yank-x-selection)' делает то же самое. –

Смежные вопросы