Назначение клавиш в emacs с использованием семантики с интерактивными функциями и вызовом параметров по умолчанию

В семантической; для перемещения по объявлениям функций можно использовать C-c , J открыть декларацию, и просто C-u C-SPC вернуться туда, где была вызвана функция. Однако, чтобы сопоставить эти функции с некоторыми другими короткими сочетаниями клавиш, как это M-right (имеется в виду клавиша alt в сочетании со стрелкой вправо), поэтому в нашем .emacs мы можем иметь:

(define-key global-map [(M-right)] 'semantic-complete-jump).

Это действительно работает, потому что C-c , J отображается для вызова функции семантического полного перехода.

Итак, два вопроса:

  1. Как отобразить M-слева на C-u C-SPC? помня это C-u не является частью команды, это просто аргумент, передаваемый вызываемой функции.

  2. Есть ли способ вызвать семантический полный переход через C-c , J не будучи интерактивным и не используя по умолчанию всегда значение по умолчанию (то есть это в основном слово, под которым находится курсор)? Это позволит избежать еще одного нажатия клавиши, намного быстрее перемещающегося по коду.

Это можно сделать с M-. (сопоставленный с тегом find) и M-* (сопоставленный с pop-tag-mark), играющий с тегами и etags с emacs, но с использованием семантики он кажется гораздо более мощным и идеальным для больших проектов с большим количеством кода.

S̲o̲ ̲t̲h̲e̲ ̲p̲r̲e̲v̲i̲o̲u̲s̲ ̲t̲w̲o̲ ̲̲̲ M-right перемещаться внутри объявлений функций (без запроса) и M-left чтобы перейти к предыдущему пункту, где эта функция была вызвана с использованием семантики.

1 ответ

Решение

Вот что у меня есть:

(add-hook
 'c-mode-common-hook
 (lambda()
   (define-key c-mode-base-map
       (kbd "C-x C-h") 'semantic-ia-fast-jump)))

(global-set-key
 (kbd "M-p")
 (lambda()(interactive) (set-mark-command 4)))
Другие вопросы по тегам