четверг, 10 сентября 2009 г.

[comp.history.my] ViM, Ruby, Mxx_ru – пять лет в пути! Часть вторая: ViM

Продолжение. Первую часть см.здесь.

Итак, для перехода под HP NonStop мне довелось сменить Mxx4 на Mxx_ru. Но это была самая легкая смена инструмента. Гораздо сложнее оказалось сменить текстовый редактор. Ведь работать с NonStop-ом приходилось удаленно, через ssh, по медленному каналу, в текстовом режиме, без каких-либо X-ов. Так что выбор был небольшим – либо встроенный в Midnight Commander редактор (годный разве что для самых простых операций), либо ViM, либо Emacs. Но начинать лучше издалека :)

Где-то до 1995-го года все было довольно просто. Сначала я пользовался Turbo Pascal-ем, затем Turbo C, затем Borland C++ 2.0. Потом довольно быстро перебрался под Multi-Edit (кажется, тогда 5-й версии). И так под ним и оставался, пока программировал в основном под DOS.

Но где-то с 95-го года ситуация сильно изменилась. На одной своей работе я программировал под OS/2 и продолжал пользоваться MultiEdit-ом. А на второй – работал под Windows и MultiEdit оказался не у дел, поскольку под DOS-ом кодировка была CP866, а нам нужна была Windows-1251. И под Windows я пользовался то слегка допиленным Notepad-ом, то редактором Far-а, то Visual Studio 4.2 (в VS был самый удобный редактор).

Потом, где-то в 2000-м, баловство с Windows и OS/2 отошло на второй план, а работать пришлось в OS-9000 в специально заточенном под нее варианте Emacs-а (кажется, это был uEmacs). Ну а с 2001-го года моей основной средой разработки опять стала Windows и выбор рабочего редактора продолжился с новой силой.

Пробовал я новый MultiEdit, кажется 10-й версии, уже полностью графический. Мне не понравилось. Показалось, что разработчики его просто убили, переведя в графику. Пробовал SourceInsight (который на меня произвел такое же сильное впечатление, как когда-то MultiEdit), TextPad, UltraEdit, ConTEXT, CrimsonEditor и еще какие-то редакторы, названия которых сейчас даже не вспомню. Дольше всего пользовался TextPad-ом и CrimsonEditor-ом.

Параллельно всей этой истории был Unix/Linux. Поскольку и сам пытался разбираться с программированием под Unix, и проекты под Unix приходилось выполнять. Но большого объема редактирования у меня в Unix-е не было. В основном, набирал тексты я под Windows, а под Unix-ом компилировался, тестировался, исправлял что-то по мелочи. Из редакторов использовал встроенный в Midnight Commander, его автономную (слегка мной допиленную) версию CoolEd и Kate (если была возможность работать в KDE). Пытался несколько раз осваивать Vi и Emacs, но надолго меня не хватало.

И вот мне, привыкшему к TextPad/CrimsonEditor/Kate предстоит что-то редактировать на фиг знает где стоящей машине, через ssh, по убитому каналу… В таких условиях даже встроенный в Midnight Commander редактор не помогал. Поэтому я решил сделать волевое усилие и освоить таки ViM или Emacs. Причем, чтобы получить нужный эффект, сделать это “по бразильской системе” – т.е. перейдя только на этот редактор даже под Windows.

По началу мне больше нравился Emacs – все-таки нет разных режимов работы редактора, да и опыт из uEmacs-а был. Но если под Unix-ами Emacs ставился без проблем, прямо из дистрибутива, то вот под Windows начались проблемы. Пробовал несколько разных портов Emacs-а для Windows и ни один из них у меня толком не заработал. Да и впечатления от обучения Emacs-у были неважные. Во-первых, болели пальцы рук от жутких клавиатурных сочетаний. Во-вторых, все эти клавиатурные сочетания никак не укладывались в моей голове в какую-то стройную и логичную схему.

Поэтому я собрался с духом и попробовал таки ViM. Кстати, совет для тех, кто начинает его изучать – сначала выучите, как из ViM выходить (ESC+:q или ESC+:qa!).

Так вот, попробовал я ViM. И мне понравилось! Сначала мне понравилось, что в нем можно комфортно работать по дохлому ssh каналу. И в этом как раз здорово помогает разделение на командный и прочие режимы. Затем, мне стало казаться, что в системе команд ViM есть какая-то логика (если заучить, что передвижение по тексту выполняется посредством клавиш hjkl). Потом мне стало нравиться, что набор текста напоминает программирование. Т.е. ты не столько пишешь программу, сколько программируешь ее написание. Потом я стал осваивать крутые возможности ViM-а по поиску/замене, по записи и воспроизведению действий, по запуску программ из ViM-а…

А потом, месяцев через 6-7 ежедневной работы в ViM-е, я случайно узнал, что ViM может держать в памяти сразу несколько файлов! :))) Ну тут уж жизнь уж окончательно наладилась.

В результате, вот уже пять лет я ежедневно использую ViM в качестве основного редактора для набора текстов программ и документации (в ReST и LaTeX форматах). И стараюсь больше пользоваться именно ViM-ом, поскольку в других редакторах (в Opera, в Windows Live Write/Zoundry Raven) мне очень не хватает привычных возможностей ViM-а.

Вот так я и стал Vim-ером. Пока не сильно продвинутым, т.к. лень заниматься его более подробным изучением и затачиванием под себя. А изучать есть чего. См.например, Best of VIM Tips – их автор говорит про себя: 15 Years of Vi + 7 years of Vim and still learning. Ну а я пока 5 years of Vim and still learning… Чего и вам желаю ;)

Happy Vimming!

Отправить комментарий