2011-02-03 7 views

ответ

36

C-x h + del ключ очищает буфер

Примечание: Это требует transient-mark-mode быть включен (который по умолчанию).

+2

Этот (или 'M-x erase-buffer') не добавляет содержимое буфера в кольцо уничтожения, но' C-x h C-w' делает, и 'C-x h C-w' также работает, когда режим временной метки не включен. – user4669748

4

Перейти к началу буфера, идти до конца (как установить метку), а затем вырезать:

M-< M-> C-w 
2

Там нет ярлыка, но вы можете определить один ... Follow this link в получить макрос для очистки буфера.

30

Выбрать все в Emacs является:

C-x h 

(технически, это наценка целого буфера) и убивать-регион (убить отмеченную область, которая в настоящее время весь буфер):

C-w 

Если вы хотите удалить область, не копируя его на уничтожений кольцо, вы можете использовать

M-x delete-region 

вместо этого. Если вы сделаете это много, вы захотите привязать область delete к комбинации клавиш/клавиш.

+7

Разница между этим решением и буфером стирания M-x заключается в том, что это решение копирует удаленный текст в kill-ring. Это может быть очень неприятно, если вы хотите удалить большой файл, поскольку копирование тонны текста в кольцо уничтожения может быть медленным. Это поведение еще более раздражает, если вы являетесь пользователем browse-kill-ring.el –

77

Как об использовании:

M-x erase-buffer 

Что вы могли бы связать все, что вы хотите.

+1

У меня это в моем .emacs: '(глобальный-set-key (kbd" Cx ") 'erase-buffer)' –

+0

Для новые пользователи, когда 'Mx erase buffer' вызывается в первый раз, вы получите подсказку, объясняющую, что она была отключена, но вы можете ее активировать. Если вы не знаете, что именно делает эта команда, я рекомендую запустить ее с опцией 'SPACE' в первый раз, чтобы узнать, что произойдет. – Nathan

3

Эти макросы основываются на ответах, приведенных выше. Чтобы начать использовать их, вставьте их в свои .emacs, затем перезапустите emacs или (в буфере .emacs) введите M-x eval-buffer.

(defun clear-buffer() 
    "clear whole buffer add contents to the kill ring" 
    (interactive) 
    (kill-region (point-min) (point-max)) 
) 

(defun clear-buffer-permenantly() 
    "clear whole buffer, contents is not added to the kill ring" 
    (interactive) 
    (delete-region (point-min) (point-max)) 
) 
+1

'erase-buffer' очистит буфер независимо от сужения. Это может быть или не быть более желательным. – jpkotta

+0

'erase-buffer' не добавляет содержимое буфера в кольцо уничтожения. – user4669748

5

Старики могли бы назвать его Ками, а не ясно-буфера постоянно, и назначить его ностальгическую ключевую последовательность следующим образом:

(define-key esc-map "\^[hk" 'hk) 

Это пра-Гну команда TECO EMACS для очистки буфера (ESC ESC WHole Kill).

Смежные вопросы