Вступ до Vim для людей, які використовують код Visual Studio

Гарячі поради, щоб додати Vim чудовість коду Visual Studio.

Спереду

Я для початку хочу сказати, що це не стаття, що ганьбить редактора. Ви можете використовувати будь-який редактор тексту, який хочете. Це насправді не має значення. Я пишу це лише тому, що виявив у Vim рівень продуктивності, якого я не мав у жодному з редакторів, якими раніше користувався (Sublime Text, Atom або VSCode).

Якщо ви чули про Vim і хочете спробувати, я сподіваюсь, ця стаття може надати трохи знайомства з VSCode.

Чому саме Вім?

Існує безліч причин використовувати Vim, тому ось кілька моїх.

Тримайте руки на 10 і 2

Коли ви користуєтеся виключно клавіатурою, відбудеться притаманне прискорення швидкості лише від того, що вам не доведеться фізично ворушити руками. І привіт, можливо, ти чорний пояс у русі миші, і ти можеш рухатися назад вперед із невидимою неозброєним оком швидкістю. Для решти нас, простих людей, потрібен час.

Давайте трохи підрахуємо математику.

Потрібно 600 мс, щоб перемістити мою руку від «домашніх клавіш» до миші. В середньому заради аргументів я роблю це раз на хвилину, поки пишу код. Будь то прокрутка, перехід до нового файлу чи щось подібне.

600 (витрачений час у мс) x 60 (раз на годину) x 5 (години, які я фактично кодую) = 180 000ms витрачено даремно =

3. Протоколи. Кожен. День.

Так, гаразд, можливо, це не так погано звучить, але ці 3 хвилини можна витратити на написання функції чи рефакторинг коду, не махаючи рукою про те, що ти Гаррі Поттер!

Швидкість

Моя улюблена цитата, яка описує, що таке кодування у VIM:

“Код зі швидкістю думки”

Vim побудований навколо ідеї, що ви безпосередньо спілкуєтесь із комп’ютером. Ви кажете, що хочете, і це робить за вас. Найбільшим для мене відкриттям очей був цей маленький шматочок:

Щоб видалити все, що знаходиться між двома об’єктами (дужки, лапки тощо), це просто, як:

di'

Це лише поверхня дивовижних стенографічних речей, які ви можете робити з Vim.

Я справжній програміст!

Частина шляху вивчення VIM - це розкрити себе, як працює UNIX. У мене таке враження, що чим більше ти піддаєшся таким речам, як bash, тим кращим програмістом ти станеш.

Швидше за все, у вас досить солодке налаштування командного рядка. Чи не було б непогано, якби ваш редактор коду та ваш командний рядок працювали спільно?

Як вийти з Vim?

Велика ймовірність того, що ви коли-небудь редагували файл на сервері Linux і не могли зрозуміти, як вийти з файлу. Скажімо, наприклад, зміна ключа SSH на Digital Ocean. Якщо ви знаєте VIM ... вам не доведеться про це турбуватися!

Справжня причина, чому я перейшов на Vim

Час чесності. Справжнім каталізатором бажання перейти на Vim було спостереження за Кайлом Метьюз (творцем Gatsby.js), який використовував його під час демонстрації.

Особливості VS Code та їх еквіваленти

Переконаний? Класно, ось кілька інструментів!

Система плагінів

Vim сам по собі досить голі кістки. Для того, щоб додати плагіни, ми повинні мати механізм управління ними. Введіть штекер:

червень / vim-plug

Примітка: Є кілька менеджерів плагінів. Я приземлився на Plug без особливих причин. Мені це подобається, і у мене з цим не було проблем. FYI, Vundle застаріло.

Пошук файлів

За ці роки було багато рішень для пошуку файлів, на що вказує безліч відповідей на форумах. Я спробував кілька різних, але потрапив на цю комбінацію:

Нечіткий шукач (fzf) + Ripgrep

Fzf - це дійсно добре побудований / підтримуваний нечіткий пошук, який працює як у командному рядку, так і у vim.

Примітка: Ви можете бачити Ag (шукач срібла) у багатьох статтях, однак пов'язаний з Ag плагін vim більше не підтримується, тому пропонується використовувати RipGrep.

Інтелліссенс

Безперечно, найкращою функцією є система автоматичного заповнення (Intellisense) у VSCode. На наше щастя, це перенесено на Vim!

neoclide / coc.nvim

CoC має власну систему розширення, яка відображає систему VSCodes. Він простий у використанні та добре задокументований (найважливіша частина).

Примітка: Ви можете бачити деякі старі статті про YouCompleteMe, але, наскільки я можу судити, це вже не зберігається.

Провідник файлової системи

VSCode, як і більшість сучасних текстових редакторів, постачається з провідником файлів. Уродженець Віма в netrwпорядку, і я бачив чимало статей, в яких сказано, що вам більше нічого не потрібно, як тут. Однак я вважаю, що NERDTree занадто корисний, щоб не використовувати.

скрулуз / нервове дерево

Інтеграція Git

Я повинен бути чесним тут, я роблю більшість своїх справ з git прямо в Iterm. Однак VSCode має неймовірно приємний розділений екран Git Diff. Щоб отримати такий рівень інтеграції git, перевірте цей плагін:

tpope / vim-втікач

Додаткові плагіни, які вам можуть знадобитися

Це деякі речі, які я використовував у Visual Studio Code, і я хотів їх внести у Vim.

Дужки автозаповнення

Цей приємний маленький пакет автоматично закриє ці докучливі дужки.

jiangmiao / автопари

Значки файлів

Це додасть піктограми до таких речей, як NERDTree.

ріаноз / вим-девікони

Гарніша

Хіба ви цього не знаєте, але офіційна команда гарніших має плагін vim. Як гарно! Крім того, неймовірно проста у налаштуванні.

гарніший / вим-гарніший

Зробіть це для роботи з автоматичним збереженням, перегляньте цю статтю.

Фрагменти

Хіба ви цього не знаєте, використовуючи Conquer of Completion, ви можете імпортувати фрагменти VSCode!

Перевірте це, щоб показати вам, як це зробити:

neoclide / coc.nvim

Ось я використовую пакет фрагментів React.

xabikos / vscode-реакція

Додаткові речі

ДОМ для плагінів Vim - Vim Awesome.

Vim Awesome

Чудове місце, щоб спостерігати, як люди використовують Vim:

Vimcasts - Безкоштовні трансляції екрана про текстовий редактор Vim

Точкові файли

У мене є кілька переназначених ключів, щоб полегшити роботу. Перегляньте мої файли крапок для всіх цих.

ДартСтриус / крапки

Заключні думки

Моя подорож

Я використовую виключно Vim зараз, провівши близько року, щоб навчитися цьому. Спочатку я використовував його лише для своїх особистих проектів, оскільки мій рівень продуктивності був низьким. Мені доводилося продовжувати зупинятися, щоб шукати, як щось зробити. Однак я повністю випустив VSCode близько 4 місяців тому, і повертатися назад я не планую.

Для цього потрібна дисципліна

Вивчення Віма може здатися страшним, і, чесно кажучи, це так. Це вимагає самонакладеної дисципліни. Однак чи не все в розробці? Немає інструментів / мов / фреймворків, які я коли-небудь вивчав, які не потребували б певного рівня навмисної практики.

Vim - вибір способу життя. Це займе деякий час, щоб звикнути, і це часом буде розчаровувати. Однак якщо ви дотримуватиметеся цього, я гарантую, що це покращить ваш робочий процес. Якщо у вас є якісь додаткові поради чи запитання, залиште їх нижче. Як завжди, щасливого кодування!

Додаткові ресурси для навчання

Швидке освоєння Віма - Йовіца Іліч

8 трюків Vim, які переведуть вас від початківця до експерта

Список літератури

Перехід на Vim

10 простих порад для Linux, які економлять 50% мого часу в командному рядку