2014-02-06 6 views
1

Может ли я undo последствия предыдущей команды в emacs? Например, предположим, что у меня открыто четыре буфера, и я нажимаю C-x 1, который удаляет другие окна и максимизирует активный буфер на весь экран. Итак, есть ли команда, которая при выполнении возвращает четыре буфера?Отменить команду в emacs, а не что-то, что меняет текст

ответ

1

Обычный undo просто отменяет изменения в тексте. Чтобы отменить изменения конфигурации окна, используйте:

(winner-mode) 
(global-set-key (kbd "<f7>") 'winner-undo) 
(global-set-key (kbd "C-<f7>") 'winner-redo) 
1

Теперь, есть команда, которая при выполнении возвращает четыре буфера?

Для этого вы можете использовать winner-mode. Добавьте следующие строки в ваш файл инициализация

(winner-mode) 

Он обеспечивает две команды для ходового через старые конфигурации окна, winner-undo и winner-redo по умолчанию они связаны с Ctrl-Cправой и Ctrl-Cслева соответственно.

Можно ли отменить действие предыдущей команды в emacs?

Я не уверен, что есть что-то, что будет работать для любой команды.

+0

ОК. Это будет работать для этого особого случая. Но есть ли вообще команда, которая вернет состояние до последней команды? –

+0

Привет, Сагар, не можете ли вы определить, что для вас представляет собой «государство»? Я спрашиваю, потому что в зависимости от вашего определения «государство» может быть ответ или нет. –

+0

Я использовал состояние в более теоретическом терминах. Сеанс emacs может быть идентифицирован таким состоянием, что если два сеанса emacs находятся в одном состоянии, то невозможно определить разницу между ними (визуально или другими способами). Команда приводит к переходу между состояниями (и, возможно, изменением состояния). Я хочу вернуться к состоянию, которое существовало до выполнения команд. Я приведу вам еще один пример. Предположим, я сменил тему командой 'M-x select-theme', отменив ее, она вернет предыдущую тему. Некоторые команды могут привести к необратимым изменениям состояния, и это нормально. –