Въведение във Vim за хора, които използват Visual Studio Code

Горещи съвети за донасяне на страхотността на Visual Studio Code до Vim.

Предна материя

Искам да започна с това, че това не е статия за срам на редактор. Можете да използвате какъвто искате текстов редактор. Наистина няма значение. Пиша това само защото открих ниво на производителност във Vim, което не съм имал в нито един от редакторите, които използвах преди (Sublime Text, Atom или VSCode).

Ако сте чували за Vim и искате да го изпробвате, надявам се тази статия да ви предостави малко познания, които бихте открили от VSCode.

Защо Вим?

Има много причини да използвате Vim, така че ето няколко мои.

Дръжте ръцете си на 10 и 2

Когато използвате единствено клавиатурата, ще има присъщо повишаване на скоростта само от това да не се налага физически да движите ръцете си. И хей, може би сте черен колан в движение на мишката и можете да се движите назад напред със скорост, невидима с просто око. За останалите от нас, простите хора, е необходимо време.

Нека да направим малко бърза математика.

Отнема 600ms, за да преместя ръката си от „началните клавиши“ към мишката. Средно, за аргумент, правя това веднъж в минута, докато пиша код. Независимо дали става въпрос за превъртане, навигация до нов файл или нещо подобно.

600 (загубено време в ms) x 60 (пъти на час) x 5 (часа, които всъщност кодирам) = 180 000ms загубени =

3. Протоколи. Всеки. Ден.

Да, добре, може би това не звучи толкова зле, но тези 3 минути могат да бъдат изразходвани за писане на функция или рефакторинг на код, без да размахвате ръката си, сякаш сте Хари Потър!

Скорост

Любимият ми цитат, който описва какво е да кодираш във VIM:

„Код със скоростта на мисълта“

Vim е изграден около идеята, че вие ​​директно общувате с вашия компютър. Казвате му това, което искате, и то го прави вместо вас. Най-голямото отварящо око за мен беше тази малка хапка:

За да изтриете всичко между два обекта (скоби, кавички и т.н.), това е толкова просто, колкото:

di'

Това е само повърхността на невероятни стенографични неща, които можете да правите с Vim.

Аз съм истински програмист!

Част от пътуването на изучаването на VIM е излагането на това как работи UNIX. Оставам с впечатлението, че колкото повече се излагате на неща като bash, толкова по-добър програмист ще бъдете.

Шансовете са, че имате доста сладка настройка на командния ред. Не би ли било хубаво, ако редакторът на кода и командният ви ред работят съвместно?

Как се излиза от Vim?

Вероятността е голяма, че някога сте редактирали файл на Linux сървър и не сте могли да разберете как да излезете от файла. Да кажем, например, смяна на SSH ключ на Digital Ocean. Ако познавате VIM ... не е нужно да се притеснявате за това!

Истинската причина да преминах към Vim

Време за честност. Истинският катализатор за желанието да преминете към Vim беше гледането на Kyle Mathews (създател на Gatsby.js), който го използва по време на демонстрация.

VS Code Характеристики и техните еквиваленти

Убеден? Готино, ето няколко инструмента!

Плъгин система

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

junegunn / vim-plug

Забележка: Има няколко мениджъри на приставки. Кацнах на Plug без особена причина. Харесва ми и не съм имал проблеми с него. FYI, Vundle е оттеглено.

Търсене на файлове

През годините има куп решения за търсене на файлове, както се вижда от множеството отговори във форуми. Опитах няколко различни, но попаднах на тази комбинация:

Fuzzy Finder (fzf) + Ripgrep

Fzf е наистина добре изградено / поддържано размито търсене, което работи както в командния ред, така и в vim.

Забележка: Възможно е да видите Ag (търсач на сребро) в много статии, но приставката vim, свързана с Ag, вече не се поддържа, затова се препоръчва да използвате RipGrep.

Intellisense

Системата за автоматично довършване (Intellisense) във VSCode е може би най-добрата му характеристика. За наш късмет, той е пренесен на Vim!

neoclide / coc.nvim

CoC има своя собствена система за удължаване, която отразява тази на VSCodes. Той е лесен за използване и добре документиран (най-важната част).

Забележка: Може да видите някои стари статии, които говорят за YouCompleteMe, но доколкото мога да разбера, това вече не се поддържа.

Файлова система Explorer

VSCode, подобно на повечето съвременни текстови редактори, се предлага с File Explorer. Родният на Вим netrwе добре и видях доста статии, в които се казва, че не се нуждаете от нищо друго, като тук. Намирам обаче, че NERDTree е твърде полезен, за да не се използва.

scrooloose / nerdtree

Git интеграция

Трябва да бъда честен тук, правя повечето си неща от Git направо в Iterm. VSCode обаче има невероятно хубав Git Diff разделен екран. За да получите това ниво на git интеграция, разгледайте тази приставка:

tpope / vim-беглец

Допълнителни приставки, които може да искате

Това са някои от нещата, които използвах в Visual Studio Code, които исках да внеса във Vim.

Скоби за автоматично довършване

Този хубав малък пакет автоматично ще затвори тези досадни скоби.

jiangmiao / автоматични двойки

Икони на файлове

Това ще добави икони към неща като NERDTree.

ryanoasis / vim-devicons

По-хубава

Не бихте ли го знаели, но официалният по-красив екип има vim плъгин. Колко хубаво! Освен това е невероятно лесна за настройка.

по-хубав / вим-по-хубав

Накарайте го да работи за автоматично запазване, вижте тази статия.

Фрагменти

Не бихте ли го знаели, като използвате Conquer of Completion, можете да импортирате фрагменти на VSCode!

Вижте това, за да ви покажем как да направите това:

neoclide / coc.nvim

Ето пакета React snippets, който използвам.

xabikos / vscode-реагирайте

Допълнителни неща

ДОМЪТ за Vim плъгини е Vim Awesome.

Вим Страхотен

Страхотно място да гледате как хората използват Vim:

Vimcasts - Безплатни екранни предавания за текстовия редактор Vim

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

Имам няколко преназначени клавиша, за да улесня нещата. Вижте моите dotfiles за всички тези.

Дарт Щраус / точки

Финални мисли

Моето пътуване

Използвам единствено Vim сега, след като прекарах около година, за да го науча. Първоначално го използвах само за личните си проекти, защото нивото на производителност беше ниско. Трябваше да продължавам да спирам, за да търся как да направя нещо. Обаче изпуснах VSCode напълно преди около 4 месеца и не планирам да се връщам.

Необходима е дисциплина

Изучаването на Вим може да изглежда обезсърчително и честно казано, е така. Изисква самоналожена дисциплина. Не е ли обаче всичко в развитие? Няма инструмент / език / рамка, който някога съм научавал, който да не изисква някакво ниво на съзнателна практика.

Vim е избор на начин на живот. Ще отнеме известно време, за да свикнете и понякога ще бъде разочароващо. Ако обаче се придържате към него, гарантирам, че това ще подобри работния ви процес. Ако имате някакви допълнителни съвети или въпроси, моля, пуснете ги по-долу. Както винаги, щастливо кодиране!

Допълнителни ресурси за обучение

Овладяване на Вим бързо - Йовица Илич

8 трика на Vim, които ще ви отведат от начинаещ до експерт

Препратки

Преминаване към Vim

10 прости съвета за Linux, които спестяват 50% от времето ми в командния ред