Emacs - убить буфер без запроса

15

Мне интересно, как это можно сделать, поэтому Emacs не выдает подсказку, спрашивающую меня, действительно ли я хочу уничтожить текущий буфер с помощью ярлыка Cx k .

Интересно, что то же самое действие, выполняемое через панель инструментов, мгновенно убивает буфер без запроса пользователя. Любое решение? Спасибо.

Ярек
источник

Ответы:

16

По умолчанию Emacs не спрашивает вас, хотите ли вы уничтожить буфер. Он спрашивает вас, какой буфер вы хотите убить.

Если вы не хотите спрашивать, какой буфер вы хотите уничтожить, вы можете использовать это:

(global-set-key (kbd "C-x k") 'kill-this-buffer)

Если вас попросят подтвердить, то в вашем .emacs есть что-то (или инициализация, специфичная для сайта). Попробуйте запустить, emacs -qчтобы проверить Emacs без вашего .emacs.

Примечание: проверено Emacs 23.2.

Трей Джексон
источник
2
'kill-this-buffer является частью emacs и должен использоваться вместо этого.
Джасим
10

Вы можете узнать, что делает эта запись в меню, C-h kа затем щелкнуть эту запись. Оказывается, это команда с именем kill-this-buffer .

Затем вы можете привязать эту команду к комбинации клавиш:

(global-set-key "\C-xk" 'kill-this-buffer)
nschum
источник
2

Я использую это

(global-set-key (kbd "C-x k") (lambda ()
                              (interactive)
                              (kill-buffer (buffer-name))))
kindahero
источник
Незначительное улучшение: (kill-buffer (current-buffer))
Jaseem
С ц. Emacs 24.3 вы можете просто (global-set-key "\ C-xk" 'kill-this-buffer)
HörmannHH