Концепция операций undo/redo кажется выверенной и отточенной многими годами, добавить туда что-то новое не возможно. Большинство редакторов впрочем и не пытаются, полностью сосредоточившись на редизайне кнопок в интерфейсе и добавлении новых шкурок. В Emacs'е же, попытки изменить устоявшуюся концепцию есть и на мой взгляд удачные.
Есть такой замечательный плагин undo-tree, он основан на том, что "undo/redo" в принципе являются частным случаем системы контроля версий. И в процессе редактирования текста периодически возникают "ветки", которые нужно показывать пользователям и дать возможность по ним "ходить".
Вот допустим написали мы "hello", потом откатились назад на пустую страницу и написали "word", теперь в большинстве редакторов никакими "ctrl+Z" откатиться до "hello" не возможно. А с этим плагином в Emacs сделать такое не сложно, вот как это выглядит:
Настройка в простейшем случае, проблем не вызывает:
После установки продолжают работать стандартные не визуальные "undo/redo". Но при необходимости всегда можно вызывать расширенное "дерево отмены" через "M-x undo-tree-visualize". Пользоваться им постоянно конечно не удобно, но когда понадобиться, не раз скажешь спасибо автору.
Подробнее про навигацию и расширенные возможности неплохо написано в документации.
Есть такой замечательный плагин undo-tree, он основан на том, что "undo/redo" в принципе являются частным случаем системы контроля версий. И в процессе редактирования текста периодически возникают "ветки", которые нужно показывать пользователям и дать возможность по ним "ходить".
Вот допустим написали мы "hello", потом откатились назад на пустую страницу и написали "word", теперь в большинстве редакторов никакими "ctrl+Z" откатиться до "hello" не возможно. А с этим плагином в Emacs сделать такое не сложно, вот как это выглядит:
Настройка в простейшем случае, проблем не вызывает:
(require 'undo-tree) (global-undo-tree-mode)
Подробнее про навигацию и расширенные возможности неплохо написано в документации.
Подскажите, пожалуйста, как предотвратить открытие undo-tree в новом фрейме, и установить вертикальное разбиение по умолчанию?
ОтветитьУдалитьЯ никаких специализированных настроек не делал, но у меня undo-tree использует второй открытый фрейм, а не создает новый. Или я не правильно понял вопрос? В любом случае, у меня полностью дефолтное поведение и я к нему настолько привык, что даже в голову не приходило, что-то еще донастраивать. Но думаю можно спросить у автора напрямую http://www.dr-qubit.org/emacs.php#undo-tree-bugs
УдалитьУ меня открывается новое окно (в смысле полноценное Emacs окно уровня ОС), а мне бы хотелось иметь все это в переделах уже открытого Emacs и разбиение вертикальное как у вас, а не горизонтальное.
УдалитьВозможно дело в версии, у меня стоит из melpa репозитория: 20140509.522
УдалитьЯ правда для этого ничего особенного не делал, я даже не знаю как открыть в emacs второе окно )
УдалитьЯ всего лишь "вертикально" разбил окно на 2 через "C-x 3" https://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html После этого undo-tree сам стал выбирать второе окно, как на GIF-ке
>>Возможно дело в версии, у меня стоит из melpa репозитория: 20140509.522
УдалитьДумаю дело не в версии, я бы попробовал воспроизвести проблему на чистом emacs без всего, только с плагином undo-tree, мне кажется это какие-то настройки ломают всё.
Написал автору, может быть он чего посоветует..
УдалитьСпасибо
Автор оказался членом королевского исследовательского общества и предложил почитать документацию по емаксу. Решил проблему путем добавления пары собственных функций и key-binding'ов.
УдалитьА что у вас за тема, кстати на гифе?
Solarized: http://melpa.org/#/solarized-theme
УдалитьMode line - сам писал
Спасибо. А код для mode line где-нибудь доступен?
УдалитьДа конечно, вот тут та часть конфига, которая отвечает за него: https://github.com/ReanGD/dotfiles/blob/master/.config/emacs/minor/mode-line-cfg.el
УдалитьПравда не думаю, что он будет сильно полезен, я это писал скорее для того, что бы понять, как там внутри всё устроено
Мне понравилось оформление, но тут похоже всего на два окна расчитано. В любом случае спасибо.
Удалить