Vim: скринкасты

Тут буду подкладывать ссылок на кладбища скринкастов по виму
  1. Vim Tutorial Videos - для начинающих, от базовых до очень интересных вещей, веселый автор
  2. Vimcasts.org - широко известный ресурс, просто тонны всяких vim-вкусняшек, обязательно к посещению
  3. Destroy All Software - ворованный каталог из 80 скринкастов одного очень толкового дядьки. Кроме вима также рассматриваются git, TDD, *nix и т.д. Каталог можно глянуть вот тут.
  4. udioica.blogspot.ru - это не совсем скринкасты, а анимированные gif-ки с решениями задач с vimgolf.com. Вообще-то я не уверен что это человек. Больше похоже на vim-терминатора. Я не представляю как это все можно запомнить.

Vim: перезагрузка ~/.vimrc налету

Очень неудобно бывает после правки .vimrc закрывать сессию полностью чтобы применить внесенные изменения. Можно этого избежать довольно легко:
# выполните в редакторе :echo $MYVIMRC чтобы понять что это за переменная
source $MYVIMRC
Чтобы было удобнее жить можно добавить пару команд покороче, например так:
" edit ~/.vimrc file
command! RcEdit e $MYVIMRC
" reload ~/.vimrc config
command! RcReload source $MYVIMRC

Vim: поиск и замена строк в файле

Я пользуюсь этим в виме не часто пока и постоянно забываю как там танцуется эта замена, самый простенький вариант примерно такой: имеем файл пример с таким содержимым:
./folder1/folder2/file1.txt
./folder1/folder2/file2.txt
./folder1/folder2/file3.txt
./folder1/folder2/file4.txt
./folder3/folder5/file5.txt
./folder3/folder5/file6.txt
./folder3/folder5/file7.txt
./folder4/folder6/file8.txt
./folder4/folder6/file9.txt
./folder4/folder6/file10.txt
Допустим нужно отрезать из каждой строки все что касается пути, то есть чтобы остались только имена файлов. Переходим в командный режим и выполняем
:%s/\.\/.*\///gc
Выглядит довольно похабно, но в общем-то главное знать что искать. Синтаксис замены вообще примерно такой
:%s/serach-str/replace-str/g
search-str - то что ищем, replace-str - то на что заменяем, просто в примере выше использовано регулярное выражение и слешей много из-за обычного скрина точки и слешей. Модификатор c в примере означает что каждое найденное совпадение и соответственно его замену нам надо будет подтвердить, иначе все найденное в файле будет молча заменено.

Интересный нюанс: чтобы заменить что-то с переводом строки \n придется использовать \r то есть примерно вот так
:%s/\n/ -- \r/gc
Либо как вариант, тоже самое
# чтобы ввести ^M жмем (прямо в строке набора команды) Ctrl+v - Enter
:%s/\n/ -- ^M/gc

Vim: как отформатировать xml

Для этого понадобится установить xmllint
# для ubuntu
sudo apt-get install libxml2-utils

В .vimrc это будет выглядеть примерно так
command FormatXml execute "%!xmllint --format --recover - "
После этого вызов в редакторе чтобы отформатировать текущий файл будет таким:
:FormatXml
Другие бинды на ваше усмотрение конечно.

Как ассоциировать файлы с macvim?

В случае если macvim установлен через brew например, то нельзя просто взять и в файндере обычным способом ассоциировать с ним файлы. Его просто нет в папке /Applications потому что он ставится куда-то в дебри /usr/local/Cellar/macvim
Если кто-то ещё не догадался то нужно просто сделать ссылку на него в приложениях
ln /usr/local/Cellar/macvim/7.4-70/MacVim.app /Applications/MacVim.app
Ссылку мы делаем жесткую в этом случае, любознательные граждане могут полистать man ln
После этой процедуры macvim будет виден как обычное приложение.