Как мне эффективно закрыть буфер, открытый `slime-description-symbol`? - PullRequest
0 голосов
/ 24 января 2019

выпуск:

  1. Я начал сеанс Common Lisp с *slime-repl sbcl* в его вертикальном разделении по умолчанию.
  2. Я нахожусь на символе, скажем cond, и нажимаю клавишу для slime-describe-symbol, в моем случае это ,hh, поскольку я использую spacemacs.
  3. Это открывает буфер *slime-description* поверх окна repl.

Теперь я нахожусь в ситуации, когда я должен:

  • перейти к разделению справа
  • переключить буфер в слизь *slime-repl sbcl*
  • возврат в мой оригинальный буфер

Я должен делать это каждый раз, когда открываю файл справки, который кажется странным, как спроектированный рабочий процесс. Я ожидаю, что это будет возможно, используя одно нажатие клавиши.

Каков предполагаемый способ управления этим?

1 Ответ

0 голосов
/ 26 января 2019

В простом emacs сочетание клавиш для перехода в другое окно - «Cx o» (другое окно).Я бы предположил, что самый простой способ добиться автоматического перемещения курсора при описании символа - определить собственную функцию elisp, изменив символ slime-description-symbol, чтобы переместить курсор в окно slime-description и(повторно) привязать сочетание клавиш.

На моем компьютере:

(defun my-slime-describe-symbol (symbol-name) "Describe the symbol at point." (interactive (list (slime-read-symbol-name "Describe symbol: "))) (when (not symbol-name) (error "No symbol given")) (slime-eval-describe `(swank:describe-symbol ,symbol-name)) (switch-to-buffer-other-window "*slime-description*"))

и затем определить сочетание клавиш по своему вкусу:

(define-key slime-mode-map (kbd "C-c C-d d") 'my-slime-describe-symbol) (define-key slime-mode-map (kbd "C-c C-d C-d") 'my-slime-describe-symbol)

...