Если я случайно закрыл пустой буфер в Emacs, как мне создать новый чистый буфер?
Привязки по умолчанию для GNU Emacs:
C-xb
*scratch*
RET
или, более многословно
M-x
switch-to-buffer *scratch*
RET
*scratch*
Буфер представляет собой буфер , выбранный при запуске, и имеет основной режим лисповского взаимодействия . Примечание: режим для *scratch*
буфера управляется переменной initial-major-mode
.
В общем, вы можете создать столько «чистых» буферов, сколько захотите, и называть их по своему выбору.
C-xb
NAME
RET
переключается на буфер NAME
, создавая его, если он не существует. Новый буфер не связан с файлом на диске, пока вы не используете C-xC-w(или M-x write-file
RET), чтобы выбрать файл, в котором он должен быть сохранен.
M-x
text-mode
RET
изменяет основной режим текущего буфера на текстовый режим. Чтобы найти все доступные режимы (то есть, не требуя каких-либо новых пакетов), вы можете получить список, набрав:
M-x
apropos-command -mode$
RET
.emacs
определяете другой режим очистки по умолчанию , этот режим будет режимом нового ввода, а не режимом List List Interaction.Я добавляю следующее в мой .emacs:
Если я не хочу видеть пустой буфер, я нажимаю Cx Ck, но он не уничтожает его, просто помещает в конец списка буферов, поэтому он мне понадобится в следующий раз, когда мне не нужно создавать новый.
источник
На этой странице EmacsWiki есть множество полезных советов .
Вот первый:
источник
Cx b
*scratch*
RET y RET с включенным режимом iswitchb.Просто Cx b
*scratch*
RET в противном случае.источник
initial-major-mode
переменной (lisp-взаимодействия-mode по умолчанию).Я обнаружил это несколько лет назад, когда впервые начал использовать emacs; Я понятия не имею, где сейчас, но у меня всегда был дом в моих личных файлах .el. Это появляется в поиске Google.
источник
Раньше я использовал решение dwj, и я был очень доволен этим, пока в тот день я не понял, что это не удалось, когда вы на самом деле переименовали рабочий буфер (например, сохранив его).
Затем я принял это, что хорошо работает для меня:
источник
У меня
scratch
есть интерактивная команда для открытия нового рабочего буфера (мне нравится иметь несколько):принято с: http://everything2.com/index.pl?node_id=1038451
источник
bufname
RET)?ido-mode
и обычно открываю довольно много буферов. Создание нового буфера с использованиемC-x b
было бы очень утомительно. Я должен был бы придумать уникальное имя, которое не соответствует ни одному из существующих в настоящее время буферов.Это не только быстро переключится в
*scratch*
буфер (так как я часто это делаю), но и заново создаст*scratch*
буфер и включит егоlisp-interaction-mode
автоматически, если вы случайно его уничтожите. Измените привязку, как вам нравится.источник
Просто отметим, что пакет emacs
unkillable-scratch
в MELPA сделает это. Существует также,scratch-persist
что будет автоматически сохранять и восстанавливать буфер между сессиями.источник
Как говорит строка документации, эта функция будет:
Это приведет к созданию нового буфера очистки, который выглядит как начальный буфер очистки.
источник
Это то, что я использую - это связано с удобным нажатием клавиши. Он отправляет вас в
*scratch*
буфер, независимо от того, существует он или нет, и устанавливает его вlisp-interaction-mode
источник
Я предпочитаю, чтобы мой рабочий буфер был реальным файлом, который автоматически сохраняется, и открыть его так же просто, как открыть файл. При запуске я убиваю настройки по умолчанию и нахожу свои вот так.
У меня есть пользовательская функция kill-buffer, которая делает по сути то же самое - снова открывает мой личный сохраненный файл с нулями и уничтожает царапины по умолчанию, если я уничтожил последний видимый буфер.
Я настроить некоторые из
desktop.el
функций нагрузки после(kill-buffer "*scratch*")
и(find-file "/Users/HOME/Desktop/.scratch")
так , что файл последних видны на выход из Emacs не похоронит на пустом месте по умолчанию или закапывают мой пользовательский нуль при запуске Emacs.Мне нравится использовать
auto-save-buffers-enhanced
, который автоматически сохраняет любое расширение файла, которое специально не исключено:https://github.com/kentaro/auto-save-buffers-enhanced/blob/master/auto-save-buffers-enhanced.el
Я использую небольшое изменение функции @paprika, когда я хочу создать буфер посещения без файла:
источник
Я объединил опубликованные решения в одну функцию:
Чтобы применить эту функцию в вашем .emacs, используйте:
Это в первую очередь сделает царапающий буфер неразрушимым, и если он будет сохранен, он будет воссоздан. Кроме того, мы можем использовать функцию быстрого доступа
scratch
для быстрого запуска буфера:В прошлом было полезно узнать исходный каталог запуска, из которого был запущен Emacs. Это либо значение,
desktop-dirname
либоdefault-directory
локальная переменная нуля-буфера:Поэтому --startup-directory всегда будет возвращать базовый каталог вашего make-файла, TODO-файла и т. Д. В случае, если нет рабочего стола ( --no-desktop commandline-switch или нет desktop-файла),
--scratch-directory
переменная будет содержать каталог Emacs, который когда-то был началось под.источник
найти ответ в EmacsWiki: http://www.emacswiki.org/emacs/RecreateScratchBuffer
источник
Чтобы добавить к принятому ответу, если у вас включен режим ILO (после которого выполняется автозаполнение C-x b, что не позволяет вам писать
*scratch*
), попробуйте:C-x b C-b *scratch* RET
источник
создать новый буфер, который также находится в режиме взаимодействия с lisp.
источник