Как оправиться от беспорядочных ситуаций в Emacs? - PullRequest
5 голосов
/ 23 июня 2010

Я только начинаю в Emacs.Иногда я буду экспериментировать с чем-то, и когда я закончу экспериментировать, я хочу просто вернуться к буферу, который я редактировал, но я не знаю как.Хуже того, иногда я случайно нажимаю на ключ и даже не знаю, что я ударил!В Vim я могу просто нажать ESC для восстановления;Есть ли подобный способ восстановления в Emacs?

РЕДАКТИРОВАТЬ: я использую Emacs из командной строки (не GUI).

Ответы [ 6 ]

9 голосов
/ 23 июня 2010

Есть также ESC-ESC-ESC (клавиатура-выход-выход).Из руководства:

Команда ESC ESC ESC (клавиатура-выход-выход) может либо выйти, либо прерваться.Этот ключ был определен, потому что ESC используется для «выхода» во многих программах для ПК.Он может отменить префиксный аргумент, очистить выбранную область или выйти из Query Replace, например Cg.Он может выйти из минибуфера или рекурсивного редактирования, например C-].Он также может разбить фрейм на несколько окон, например, Cx 1. Однако он не может остановить команду, которая выполняется.Это потому, что она выполняется как обычная команда, и Emacs не замечает ее, пока не будет готов к команде.

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

8 голосов
/ 23 июня 2010

"Cg" - это ваша команда выхода.Это восстановит большинство ситуаций.

«Cx o» перенесет вас в другое окно, если у вас есть несколько открытых.

«Ch a» (кстати) - отличный способ узнать большеКоманды и ключи.Введите "Ch a buffer", чтобы получить список всех команд, связанных с буфером.

3 голосов
/ 23 июня 2010

Ваша сюжетная линия немного сбивает с толку, потому что «режимы» (мажорные и второстепенные) - это не то же самое, что буферы (режимы применяются от буферов до , влияющих на то, как вы просматриваете и взаимодействуете с ними),Звучит так, как будто вы действительно хотите узнать, как найти исходный буфер после его замены на другой?

C-x b - это привязка по умолчанию для switch-to-buffer.Он предлагает вам буфер по умолчанию для переключения, который вы можете сделать, нажав RET.Большую часть времени по умолчанию будет тот, который вы хотели.Если нет, вы можете вместо этого нажать TAB, чтобы увидеть список завершения всех доступных буферов.Теперь просто введите достаточно имени, чтобы сделать его уникальным, нажмите TAB еще раз, чтобы завершить его, а затем RET, чтобы выбрать его.

В качестве альтернативы, C-x C-b является стандартной привязкой дляlist-buffers команда, которая покажет вам список всех буферов.Затем вы можете использовать C-x o, чтобы перейти к other-window, перемещаться вверх или вниз, чтобы выбрать буфер, на который вы хотите изменить, и нажать RET, чтобы перейти к нему.C-x 1 удалит другие окна с вашего дисплея emacs.

Наконец, многие основные режимы связывают q с командой 'quit', которая обычно закрывает или удаляет этот буфер, возвращая вас к предыдущему.,Это не гарантируется, но работает во многих ситуациях.

(Как уже упоминалось другими, вам может потребоваться C-g или иным образом прервать активную команду, прежде чем использовать эти команды.)

При всем этом я думаю, что вам действительно нужно 1028 * набрать C-h t или M-x help-with-tutorial RET и прочитать и следовать этому документу.Он ответит на все эти виды вопросов для вас, и многие другие.Emacs может быть сложным, так что это будет стоить вашего времени.

2 голосов
/ 23 июня 2010

Отмена, Отмена / Повторить

C-g отменит любую команду.В одном случае это не сработает, если вы прервете себя вводить команду, например:

  • Вы вводите C-xC-f (find-file).
  • При вводе имени файла вы переключаетесь в другой буфер C-xC-o.
  • Теперь вы не можете отменить команду без возврата обратно в минибуфер (область внизу).
  • Просто используйте C-xC-o снова, чтобы вернуться туда и продолжить.

C-_ - отменить / повторить, оно имеет только1 направление.Если вы C-_ 20 раз, а затем внесете изменения, эти отмены станут вашим прошлым, и вы можете C-_ 21 раз отменить изменения и свои 20 отмен, вы вернетесь к тому, с чего начали.

Поиск буферов

  • Используйте C-x<left> и C-x<right> в начале для переключения между буферами.
  • Тогда привыкайте к C-xb.
  • Попробуйте M-x ibuffer.

Расщепление

  • C-x3 Разделить по вертикали
  • C-x2 Разделить по горизонтали
  • C-x1 Удалить все сплиты

Информация

  • M-x info ваш лучший друг
  • Узнать большеC-h
0 голосов
/ 23 июня 2010

Я сохраняю «экспериментальный» буфер (обычно мой *scratch* буфер) и привязываю ключ для переключения на него (в моем случае, F4 ). Я нажимаю его, перехожу в рабочий буфер, экспериментирую с содержанием моего сердца и затем использую C-x b , чтобы переключиться обратно в буфер, в котором я был.

В любом случае C-x b должен позволять вам переключать буферы, и вы можете использовать это, чтобы "вернуться" туда, где вы были. iswitchb-mode делает переключение буфера намного приятнее, но это личное мнение.

C-g - это команда Emacs quit . Это примерно равно ключу vim ESC . Вы можете нажать его несколько раз, чтобы прервать то, что вы делаете (например, на полпути через сложную команду и т. Д.), А затем вернуться к своему обычному рабочему процессу.

Не волнуйся. Через некоторое время все это становится мышечной памятью. Как и ключ ESC для экспертов vim.

0 голосов
/ 23 июня 2010

Mx basic-mode удалит все ваши режимы в данном буфере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...