Как и многие другие люди, я начал свой путь программирования с использования больших, мощных и неуклюжих IDE. Я использовал Borland Delphi, MS VS, Netbeans, Eclipse, IntelliJ IDEA и т. Д. Со временем, когда я стал больше заниматься веб-разработкой, я переключился на более легкие варианты. Некоторое время моим любимым редактором был Sublime Text. Около трех лет назад я полностью перешел на Vim, Tmux и другие инструменты, не связанные с графическим интерфейсом, и пока я полностью в них влюблен!
Две вещи вызвали миграцию. Во-первых, на моей новой работе у всех нас были ноутбуки для удаленной работы, но большая часть разработки происходила на мощной стационарной рабочей станции, расположенной в офисе. Использование SSHFS или VNC при нестабильном интернет-соединении было головной болью, поэтому мне нужен был лучший вариант. Во-вторых, я выполнял все больше и больше работы типа DevOps, которая требовала от меня ежедневного редактирования файлов на десятках удаленных машин, а Vi был единственным редактором, доступным повсюду. Переход на Vim решил для меня обе проблемы, и после того, как я обнаружил эргономику и экосистему плагинов, я полностью отказался от Sublime в качестве основного редактора. Недавно я заметил, что все больше и больше людей спрашивают о моих настройках всякий раз, когда видят мой экран, поэтому я решил поделиться этим в блоге.
Установка Neovim
Neovim - амбициозный проект по рефакторингу кодовой базы Vim, которой уже 27 лет, с нуля. Вы можете узнать больше об их видении здесь.
Способы установки Neovim различаются в зависимости от ОС, поэтому лучше обратиться к исходному руководству. С этого момента я предполагаю, что Ubuntu 18.04, но большая часть конфигурации будет независимой от ОС, будут отличаться только шаги установки.
В Ubuntu 18.04 Neovim включен в дистрибутив, так что вы можете просто сделать
sudo apt-get install neovim
В Mac OS он доступен через Homebrew:
brew install neovim
Чтобы вызвать Neovim, вам нужно будет вызвать nvim
, который на одну букву длиннее, чем просто vim
, и несовместим с машинами, на которых доступен только обычный vim. Чтобы исправить это, вы можете определить псевдоним в своем сценарии rc:
alias vim=’nvim’
Я лично выбрал хардкорный путь: удалил a/usr/bin/vim
и заменил его символической ссылкой на Neovim:
sudo rm /usr/bin/vim && sudo ln -s /usr/bin/nvim /usr/bin/vim
Установка Plug
Прежде чем делать что-либо еще с Vim, лучше установить диспетчер плагинов. Я выбрал vim-plug, потому что он очень минималистичный и по-прежнему выполняет свою работу. Чтобы установить Plug для Neovim:
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Vim-plug - единственный плагин, который нужно добавить вручную, остальные будут установлены через Plug.
Установка Tmux
Следующее, что мы настроим, - это Tmux. Tmux - это терминальный мультиплексор, который позволяет нам делать следующие ключевые вещи:
- Разделить окно терминала на горизонтальную и вертикальную панели
- Разделить один терминал на несколько окон
- Поддерживайте все процессы, запущенные в Tmux, даже если мы потеряли соединение SSH.
Tmux выполняется на удаленной стороне (если мы говорим о разработке на удаленной машине) и сам разделен на tmux-server и tmux- клиент. Когда вы подключаетесь к своей рабочей станции через SSH, вы сначала запускаете tmux-client, который затем подключается к tmux-server, запущенному на та же машина, что и демон. Когда соединение разрывается, SSH завершает работу только части tmux-client, поскольку это был единственный дочерний элемент, запущенный процессом SSH. Теперь, в Ubuntu 18.04, достаточно свежий Tmux уже включен в дистрибутив, поэтому просто сделайте:
sudo apt-get install tmux
На других платформах убедитесь, что вы устанавливаете tmux >= 2.0
, поскольку некоторые элементы моей конфигурации несовместимы со старыми версиями.
Установка Zsh
Я предпочитаю Zsh над bash из-за нескольких дополнительных функций, которые он предоставляет: история команд, совместно используемая всеми запущенными оболочками, более удобное автозаполнение команд и расширяемость с помощью oh-my-zsh. В Ubuntu запустите:
sudo apt-get install zsh
а затем сделайте его оболочкой по умолчанию для вашего пользователя:
chsh -s /bin/zsh
(затем повторно авторизуйтесь)
Чтобы добавить oh-my-zsh:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Fzf
Кому не нравится нечеткий поиск?
sudo apt-get install git git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf ~/.fzf/install
Тогда просто ответьте «да» на все вопросы, и ваш ZSH станет нечетким по нескольким причинам. Просто попробуйте нажать Ctrl + R или Ctrl + T.
~ / .zshrc настройки
Вот некоторые вещи, которые мне нравятся в моем rc-файле:
Наконец, мы установили все основные инструменты и теперь можем переходить к настройке. Давайте сначала взглянем на мою конфигурацию Vim.
Настройте его на свой вкус, поместите в ~/.config/nvim/init.vim
, откройте Vim, а затем запустите :PlugInstall
, чтобы установить все плагины (игнорируйте ошибки запуска при открытии Vim).
Чтобы завершить установку YCM:
cd ~/.local/share/nvim/plugged/YouCompleteMe sudo apt-get install build-essential python-dev cmake ./install.py
А затем, чтобы избавиться от этих странных символов внизу Vim:
sudo apt-get install fonts-powerline
(вам может потребоваться перезагрузить терминал после установки шрифта)
После всех манипуляций ваш Vim должен выглядеть примерно так:
Конфигурация tmux
Я также внес несколько изменений в свою конфигурацию Tmux.
Как и в случае с Vim, вам следует начать с установки диспетчера плагинов:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Вот моя полная конфигурация Tmux:
Поместите его под ~/.tmux.conf
(и ~/.tmuxline
) и (повторно) запустите свой Tmux. При первом запуске нажмите prefix I
, чтобы установить плагины Tmux (префикс по умолчанию - Ctrl + b)
Вот скриншот после выполнения всех вышеперечисленных шагов:
Вы сможете воссоздать мою настройку, просто скопировав и вставив материал из этого поста. Настоящая прелесть инструментов интерфейса командной строки в том, что они невероятно настраиваемы. Вам обязательно стоит взять этот конфиг и использовать его как шаблон для собственных экспериментов!
Еще несколько советов в конце:
- Vim не имеет смысла без навигации Vim, так что привыкайте к этим чертовым HJKL.
- Попробуйте переназначить CapsLock на Esc, особенно на новых ноутбуках Mac
- Купите себе одну из этих изящных клавиатур, и ваши руки будут вам благодарны!
Это было для этого поста. Если вам понравилось, вы также можете посмотреть что я создаю с помощью всех этих инструментов.
Ссылки
Еще одна причина, по которой ваши контейнеры Docker могут работать медленно