Пару лет назад я решил попробовать Vim, поначалу это казалось невыполнимой задачей, нужно было запомнить так много вещей, но с некоторой практикой мне удалось разобраться в мощи редактора. Со временем я понял, что мышь действительно раздражает, и необходимость убрать руку от ключевого слова казалась неправильной, как сбой, именно тогда начался мой возраст без мыши.
В этом посте я покажу некоторые инструменты, которые я использую ежедневно,
работая с терминала.
Кстати, вот моя конфигурация файлов точек, если вы хотите взглянуть на то, как я настроил некоторые из приложений.
Сопоставление CapsLock с Ctrl
Это такая простая вещь, поверьте мне и просто делайте это, вы не поверите, насколько это правильно, когда вы начнете ее использовать.
Я использую Fedora с Gnome, поэтому мне просто нужно открыть приложение Tweaks, затем «Ключевое слово и мышь» — ›Дополнительные параметры макета -› Поведение Caps Lock — ›Caps Lock — это также Ctrl.
Zsh
Https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH
Https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md
Zsh — это оболочка UNIX, а oh-my-zsh — фреймворк для управления ее конфигурацией; Это как треп на стероидах.
Я не использую многие плагины zsh, кроме подсветки синтаксиса, в моем профиле сейчас включены следующие:
plugins=(git mix-fast vi-mode)
Подробнее о плагинах вы можете прочитать здесь.
Tmux
Со страницы руководства tmux.
tmux — это терминальный мультиплексор: он позволяет создавать, получать доступ и управлять несколькими терминалами с одного экрана. tmux можно отсоединить от экрана и продолжить работу в фоновом режиме, а затем снова подключить.
Tmux позволяет, помимо прочего, разбивать экран терминала на панели, создавать новые вкладки (окна), его можно даже использовать для однорангового программирования, поскольку несколько пользователей могут войти в один и тот же сеанс.
Вы можете настроить vi-keybind для перемещения между панелями и окнами, настроить цвета и добавить к ним powerline.
Asdf
Https://github.com/asdf-vm/asdf
Перед использованием asdf у меня были pyenv для python, rvm для ruby, nvm для node, kerl для erlang, exenv для elixir и evm для elm; теперь у меня только asdf.
Asdf — это менеджер версий для большого количества языков программирования и приложений. Пользователи могут указать глобальную или локальную версию каталога. Когда asdf обнаруживает файл .tool_version в текущем каталоге, он будет использовать версии
, указанные в этом файле, в противном случае он будет использовать глобальную версию.
$ asdf global python 3.6.0 # Sets the default version to 3.6.0 $ asdf local python 3.4.0 # Creates a .tool_version file that contains the line python 3.4.0
NeoVim
Некоторое время назад я перешел на NeoVim, нашел его, когда искал поддержку для настоящих цветов, и был застигнут врасплох зрелостью проекта. Они реализовали асинхронный фреймворк (затем vim 8 запустил свой собственный), имели четкую и открытую дорожную карту, более разумные настройки по умолчанию и сосредоточились на совместимости с обычным Vim.
У меня никогда не было с этим проблем, поэтому я не планирую что-либо менять в ближайшее время.
Некоторые из плагинов, не связанных с языком, которые я использую:
- Vundle: менеджер плагинов.
- Nerdcommenter: комментарии блоков кодов.
- Nerdtree: проводник файловой системы.
- Neomake: асинхронный линтер.
- Vim-fugitive: поддержка git.
- Vim-gitgutter: дополнительная поддержка Git.
- Вим-монокай: тема.
- Ack.vim: для поиска по проекту.
- Fzf.vim: нечеткий поиск файлов и текста внутри файлов.
- Vim-unimpaired: добавляет полезные сопоставления.
- Vim-airlines: информация в строке состояния.
- Tagbar: динамическая панель ctags текущего файла.
- Vim-gutentags: обработка ctags для перехода к определению.
Fzf и RipGrep
Https://github.com/junegunn/fzf
https://github.com/BurntSushi/ripgrep
fzf — это универсальный инструмент нечеткого поиска из командной строки.
Его можно использовать для поиска файлов, идентификатора процесса для kill -9 или моей любимой истории командной строки.
Чтобы улучшить синхронизацию, его можно настроить на использование ripgrep, инструмента, похожего на grep, который работает быстрее, чем его конкуренты. Интеграция с Vim очень проста, позволяя
искать файлы или контент в проекте.
Рейнджер
Файловый менеджер для консоли на основе VIM, он полезен для навигации или перемещения файлов, когда вы не хотите делать много ls. Функция предварительного просмотра очень хороша.
Я установил его через pip, потому что версия dnf сильно устарела.
Grv
Https://github.com/rgburke/grv
Терминальный интерфейс для просмотра репозиториев git, похож на рейнджера, но
для репозиториев git. Позволяет навигацию и фильтрацию коммитов, различий и ссылок.
Почетные упоминания
Ниже перечислены некоторые инструменты, которыми я не пользовался, но слышал, как некоторые люди
хорошо о них говорят.
Jq
Https://stedolan.github.io/jq/
jq — это легкий и гибкий JSON-процессор командной строки.
$ echo '{"a":{"b": [1, 2]}}' | jq .a.b [ 1, 2 ]
Ознакомьтесь с обучающими материалами на этой странице и узнайте все, что вы можете с ними сделать.
Tj
Читает из стандартного ввода и записывает в стандартный вывод с меткой времени. README.md репозитория содержит пример поиска самого медленного шага при сборке докеров; обязательно зацените.
Exa
Это похоже на команду ls, но с цветами, улучшенными настройками по умолчанию, древовидной структурой и
возможностью видеть статус git.
Tokei
Https://github.com/Aaronepower/tokei
Tokei — это программа, которая отображает статистику вашего кода. Tokei покажет
›количество файлов, общее количество строк в этих файлах и коде, комментарии и
› пробелы, сгруппированные по языку.
Ternimal
Https://github.com/p-e-w/ternimal
Это ваш талисман на терминале. Я уверен, что это повысит вашу продуктивность в 10 раз.