Какое правильное название для CTL-]? - PullRequest
1 голос
/ 24 апреля 2019

Из моего .emacs:

(defun flip-window () "Flip this window" (interactive)
       (switch-to-buffer (other-buffer)))

;; later
(global-set-key [(control ?])] 'flip-window)

Это прекрасно работает, но у меня есть два вопроса:

  1. есть ли встроенная функция для переключения на последний посещенный буфер?
  2. Хотя вышесказанное работает при запуске emacs, при попытке обновить настройки возникают проблемы, но возникает ошибка синтаксического анализа, вызванная?].Так есть ли лучший способ выразить нажатия клавиши control-]?

Ответы [ 2 ]

2 голосов
/ 24 апреля 2019

Ответ на вопрос 2. Вы можете попробовать функцию kbd при установке привязки клавиш.

Вроде так:

(global-set-key (kbd "C-]") 'flip-window)

И к вопросу 1: я думаю, что для этого нет встроенной функции. Emacs redux учит нас реализовывать это так:

(defun er-switch-to-previous-buffer ()
  "Switch to previously open buffer. Repeated invocations toggle between the two most recently open buffers."
  (interactive)
  (switch-to-buffer (other-buffer (current-buffer) 1)))

Это часть дистрибутива Emacs Prelude. Смотри https://emacsredux.com/blog/2013/04/28/switch-to-previous-buffer/

1 голос
/ 01 мая 2019

В качестве примечания вы можете получить описание любой комбинации клавиш в emacs, используя комбинацию клавиш Ch k , которая запускает функцию describe-key.Вам нужно будет прочитать текстовую форму вашего ввода из буфера описания.Если вы хотите программно получить строку, содержащую комбинацию клавиш, вы также можете запустить следующий код Elisp:

(destructuring-bind ((str . code)) (help--read-key-sequence)
         (help-key-description str code))

Он запросит ввод данных в минибуфере и вернет строку, например, "C-]".

...