О сайтостроении, музыке и путешествиях

Всё, что вы делаете в Vim неправильно

Недавно я выступал на Web Standards Days в Москве с презентацией «Всё, что вы делаете в Vim неправильно». Ссылки по теме:

  1. Vimi — Vim setup для веб-разработчика. Понятный, прокомментированный .vimrc, набор полезных функций и шорткатов, предустановленные плагины, которыми можно управлять прямо из .vimrc, документация.
  2. Слайды презентации «Всё, что вы делаете в Vim неправильно»

В этом посте я хочу написать то, что осталось вне рамок этого выступления, но тем не менее заслуживает отдельного внимания. Речь пойдет о настройке цветовой схемы в терминале, шрифта и некоторых других тонкостях.

В зависимости от ваших задач иногда будет удобнее использовать не MacVim запущенный у вас на машине, а тот Vim, который лежит на удаленном сервере. В моей презентации этому был посвящен слайд:

Vimi environment

Опишу подробнее, что и как у меня настроено.

256 цветов в терминале

Я не пользуюсь стандартным Terminal.app в OS X из-за его ограниченных возможностей, отсутствия полноэкранного режима и некоторых полезных мелочей. Рекомендую iTerm 2. Цветовую схему и в терминале и в Vim я всегда ставлю Solarized Dark. Для корректного отображения цветов нужно поставить Preferences → Profiles → Terminal → Report Terminal Type: xterm-256color.

Шрифт в терминале

После долгих скитаний и экспериментов я выбрал Menlo Regular (обязательно с включенным антиалиасингом). Размер по вкусу. Сейчас у меня 11pt.

Screen

Если вы еще не пользуетесь утилитами для виртуализации сессий в терминале — обязательно хотя бы попробуйте. Я выбрал для себя Screen, один раз разобрался, настроил и теперь при запуске терминала (на удаленной машине) Screen запускается автоматически, так как прописано в .bashrc:

if [[ $SHLVL == 1 ]]; then   screen -RR -Dfi

Это условие позволяет запускаться Screen только если вы не находитесь в нем. Иначе будет бесконечный цикл: в .bashrc написано запустить Screen, а Screen запускает bash...

Едем дальше. Цвета в Screen тоже нужно настраивать, так как у него свои соображения на этот счет. Чтобы привести Solarized к исходному виду я сделал вот такой .screenrc:

#terminfo and termcap for nice 256 color terminal# allow bold colors - necessary for some reasonattrcolor b ".I"# tell screen how to set colors. AB = background, AF=foregroundtermcapinfo xterm "Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm"termcapinfo xterm-256color "Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm"termcapinfo screen-bce "Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm"termcapinfo xterm-new "Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm"# erase background with current bg colordefbce "on"

Zsh как альтернатива bash

Я один раз попробовал и мне хватило того, что zsh умник до такой степени, что автокомплитит не только команды, пути, имена фалов, а еще и имена параметров у команд. В один момент я потратил часик на чтение интернетов и теперь пользуюсь oh-my-zsh (это такой фреймворк для плагинов zsh) и возвращаться на bash совсем не вижу причин. Выглядит терминал у меня примерно так:

Скриншот моего iTerm 2

P.S. Всё, что касается настроек Screen в .bashrc естественно можно использовать и в .zshrc