Глобальный ключ набора .emacs и вызывание интерактивной функции с аргументом

Как уже говорилось много раз - с div ~ p выбраны все элементы

, которым предшествует элемент

.

Проверьте этот список все селектор CSS.

24
задан yrral 23 June 2009 в 02:33
поделиться

4 ответа

Спустя несколько минут после того, как я задал вопрос, я понял это, скопировав + вставив код. Однако я понятия не имею, как это работает.

(global-set-key (kbd "M-<up>") (lambda () (interactive) (move-line -1)))
35
ответ дан 28 November 2019 в 23:18
поделиться

Я нашел это, когда у меня была та же проблема, но я решил ее другим способом.

(global-set-key (kbd "M-<down>") 'move-line)

(global-set-key (kbd "M-<up>") (kbd "C-u -1 M-<down>"))

Определенно не идеальное решение, так как M-<down> может быть переназначено и C-u -1 может не иметь смысла, но, поскольку это всего лишь мой локальный файл инициализации, это не должно быть проблемой.

Также это очевидное работает только для клавиатурных команд, которые вы хотите отменить.

1
ответ дан 28 November 2019 в 23:18
поделиться

global-set-key принимает только 2 аргумента: последовательность клавиш и команду, которую вы хотите привязать к ней. Так что

(global-set-key (kbd "M-<down>") 'move-line)

работает нормально. Но если вы хотите использовать move-line с аргументом, вам нужно обернуть его анонимной функцией (также известной как lamba), чтобы она представлялась для global-set-key как одно значение.

8
ответ дан 28 November 2019 в 23:18
поделиться

Возможно, вы захотите проверить встроенную функцию "transpose-lines".

2
ответ дан 28 November 2019 в 23:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: