From 4608c9351ec44467f430235fe2a83d92fedb98f3 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 26 Jan 2018 23:45:09 +0300 Subject: [PATCH] =?utf8?q?=D0=92=D0=BF=D0=B5=D1=80=D0=B2=D1=8B=D0=B5=20?= =?utf8?q?=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0?= =?utf8?q?=D0=BB=20:undotree=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B5=D0=B0?= =?utf8?q?=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B4=D0=B5=D0=BB=D0=B0!?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit В Vim практически весь присутствующий функционал нужен. Что-то выпилить: лично мне станет хуже. Вот реально всё использую. Кроме: * всякого legacy типа поддержки старых версий * всяких language-specific штук, особенно для языка C * всяких ивритских, арабских и персидских особенностей * скриптования на языках типа TCL или Lua * табов * GUI -- ну тут по понятным причинам Табы мне известно что многие используют. Но, у меня надобности в них никогда даже близко не возникало потому-что табы есть в tmux-е. Я удобно переключаюсь. Да, копирую данные между разными instance-ами Vim-а не через регистры, а через буфер-обмена. Но это достаточно редкая операция и всё-равно быстро выполняемая. И вот до сих пор в этом списке был undo tree. Изначально я вообще не понимал где он может помочь -- я даже синтетического use-case не мог придумать, который бы всё-равно не покрыт бы был git-ом и в более удобном варианте. Когда я смотрел презентацию Муленаара на юбилей Vim, то он упомянул что undo tree был добавлен, в первую очередь, из-за того что это было сделать просто. Особо это кода и сил не отняло. Ну, тогда, действительно, почему бы и нет, если кому-то может пригодится. Муленаар упоминал что это такая встроенная мини система контроля версий. Так вот сегодня писал письмо (в Vim). В режиме вставки набрал одним залпом где-то шесть строк текста. Потом, желая что-то подредактировать после, нечаянно нажал "u" (undo) и сразу же перешёл в режим ввода ("i"), что-то введя. Нажатие Esc приводит к выходу из режима ввода. И теперь я не могу ни "u" нажимать, ни Ctrl-R (redo) чтобы восстановить нечаянно отменённую вставку полдюжины строк. Они потеряны, подумал я! Очень обидно заново было бы их вводить. Голос в голове произнёс "вспомни про undo tree!". Ни разу на практике не использовав, с ходу вбил :undotree. Он показал список из двух пунктов: какой-то набор изменений сделан 5сек назад, а какой-то 60сек назад. Ввёл :undo 2 (id под которым было более старое изменение) и появился мой потерянный текст! Радости нет предела и :undotree сразу же себя окупила своей полезностью. Если это реально мало кода, то оно очень того стоит, если даже хотя бы вот раз в N лет вот так вот поможет спасти работу из-за неаккуратности. Он сделал прям *идеально* именно то, что мне надо было: показал параллельную ветвь правок файла и дал её восстановить. -- 2.48.1