2014-01-30 6 views
0

Я пытаюсь создать функцию в моем .emacs для привязки к kbd "*" в злом режиме, чтобы выделить слово под курсором в дополнение к обычным поискам, как в vim.emacs выделить слово под курсором

Я изменил сценарий из: http://www.emacswiki.org/emacs/SearchAtPoint

Это то, что у меня есть:

(defun isearch-yank-regexp (regexp) 
    "Pull REGEXP into search regexp." 
    (let ((isearch-regexp nil)) ;; Dynamic binding of global. 
     (isearch-yank-string regexp)) 
    (if (not isearch-regexp) 
    (isearch-toggle-regexp)) 
    (isearch-search-and-update)) 

    (defun isearch-yank-symbol() 
    "Put symbol at current point into search string." 
    (interactive) 
    (let ((sym (highlight-regexp))) 
     (if (null sym) 
     (message "No symbol at point") 
    (isearch-yank-regexp 
    (concat "\\_<" (regexp-quote sym) "\\_>")) 'hi-yellow))) 

Там, кажется, какая-то ошибка здесь:

let: Wrong number of arguments: #[(regexp &optional face) 

Я сюсюкать новичку.

Не могли бы вы помочь исправить это?

+0

Вы вызываете 'highlight-regexp' с 0 args, а для этого требуется по крайней мере 1. Используйте' f1 f' для чтения функции doc для 'highlight-regexp' –

+0

Можете ли вы объяснить, почему значение по умолчанию * во зле «В соответствии с вашими потребностями? Он уже подчеркивает слово под точкой и ищет его вперед. Кроме того, вы можете увеличить время его выделения (setq evil-flash-delay 10). – Ehvince

+0

Я думаю, это похоже на [это] (http://stackoverflow.com/a/387877/4247851). Оформить заказ :) –

ответ

0

Возможно, вы скопировали неправильный lisp из вики, я предполагаю, что вы говорите о функциях these. Код в wiki использует find-tag-default в функции isearch-yank-symbol, однако в вашей версии это было заменено вызовом на highlight-regexp. highlight-regexp требует по крайней мере 1 аргумент. Фактическая функция использует find-tag-default, чтобы получить символ в точке, я не уверен, что для этого можно использовать highlight-regexp.

Я пытаюсь создать функцию в моем .emacs связываться с KBD «*» в лукавого режиме, чтобы выделить слово под курсором в дополнение к обычному поиска как в Vim.

Прошу прощения, если у меня что-то отсутствует, но isearch в emacs делает выделение в настоящее время искомого термина, не так ли?

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