Pengenalan Vim untuk Orang yang Menggunakan Kod Visual Studio

Petua-petua hangat untuk membawa keindahan Visual Studio Code ke Vim.

Perkara Depan

Saya ingin mulakan dengan mengatakan, ini bukan artikel memalukan editor. Anda boleh menggunakan editor teks apa sahaja yang anda mahukan. Ia tidak penting. Saya hanya menulis ini kerana saya menjumpai tahap produktiviti di Vim yang belum pernah saya miliki di mana-mana editor yang saya gunakan sebelum ini (Sublime Text, Atom atau VSCode).

Sekiranya anda pernah mendengar tentang Vim, dan ingin mencubanya, saya harap artikel ini dapat memberikan sedikit keakraban yang anda dapati dari VSCode.

Kenapa Vim?

Terdapat banyak sebab untuk menggunakan Vim, jadi berikut adalah beberapa alasan saya.

Jaga tangan anda pada 10 dan 2

Apabila anda hanya menggunakan papan kekunci, akan ada peningkatan laju yang melekat hanya dengan tidak perlu menggerakkan tangan secara fizikal. Dan hei, mungkin anda tali pinggang hitam dalam gerakan tetikus, dan anda boleh bergerak ke belakang dengan kelajuan yang tidak dapat dilihat dengan mata kasar. Bagi kita manusia sederhana, memerlukan masa.

Mari buat matematik cepat.

Diperlukan 600ms untuk menggerakkan tangan saya dari "kunci rumah" ke tetikus. Rata-rata, demi hujah, saya melakukannya sekali dalam satu minit semasa saya menulis kod. Sama ada untuk menatal, menavigasi ke fail baru, atau yang serupa.

600 (masa terbuang dalam ms) x 60 (kali per jam) x 5 (jam saya sebenarnya pengekodan) = 180,000ms terbuang =

3. Minit. Setiap. Hari.

Ya, baiklah, mungkin itu tidak terdengar sangat buruk, tetapi, 3 minit itu boleh dihabiskan untuk menulis fungsi, atau memfaktur semula kod, tidak menggangu tangan anda seperti anda Harry Potter!

Kepantasan

Petikan kegemaran saya yang menerangkan bagaimana kod dalam VIM:

"Kod dengan kecepatan berfikir"

Vim dibina berdasarkan idea bahawa anda berkomunikasi secara langsung dengan komputer anda. Anda memberitahu apa yang anda mahukan, dan ia melakukannya untuk anda. Pembuka mata terbesar bagi saya adalah berita kecil ini:

Untuk memadamkan semua perkara di antara dua objek (tanda kurung, petikan, dll), semudah ini:

di'

Itu hanya permukaan perkara pendek yang dapat anda lakukan dengan Vim.

Saya pengaturcara sebenar!

Sebahagian daripada perjalanan belajar VIM adalah memperlihatkan kepada diri anda bagaimana UNIX berfungsi. Saya mendapat kesan bahawa semakin banyak anda mendedahkan diri kepada perkara-perkara seperti bash, semakin baik pengaturcara anda.

Kemungkinannya, anda mempunyai persediaan baris perintah yang cukup manis. Bukankah lebih baik jika penyunting kod dan barisan arahan anda bekerja bersama-sama?

Bagaimana anda keluar dari Vim?

Kebarangkalian adalah tinggi bahawa anda pernah mengedit fail di pelayan Linux, dan tidak dapat mengetahui cara keluar fail. Misalnya, menukar kunci SSH di Digital Ocean. Sekiranya anda mengenali VIM ... anda tidak perlu risau!

Sebab sebenar saya beralih ke Vim

Masa kejujuran. Pemangkin sebenar untuk ingin beralih ke Vim adalah menonton Kyle Mathews (pencipta Gatsby.js) menggunakannya semasa demo.

Ciri-ciri Kod VS dan setara dengannya

Yakin? Hebat, inilah beberapa alat!

Sistem Plugin

Vim dengan sendirinya cantik. Untuk menambahkan pemalam, kita harus mempunyai mekanisme untuk menguruskannya. Masukkan Palam:

junegunn / vim-plug

Catatan: Terdapat beberapa pengurus pemalam di luar sana. Saya mendarat di Plug tanpa sebab tertentu. Saya suka, dan saya tidak mempunyai masalah dengannya. FYI, Vundle sudah tidak digunakan lagi.

Pencarian Fail

Ada banyak penyelesaian untuk pencarian fail selama bertahun-tahun, seperti yang ditunjukkan oleh banyak jawapan di forum. Saya mencuba beberapa yang berbeza, tetapi menggunakan kombinasi ini:

Pencari Fuzzy (fzf) + Ripgrep

Fzf adalah carian kabur yang benar-benar dibina / dikendalikan dengan baik yang berfungsi di baris arahan dan vim.

Catatan: Anda mungkin melihat Ag (Pencari perak) dalam banyak artikel, namun plugin vim yang berkaitan dengan Ag tidak lagi dikendalikan, jadi disarankan untuk menggunakan RipGrep.

Intellisense

Sistem penyelesaian automatik (Intellisense) dalam VSCode boleh dikatakan ciri terbaiknya. Beruntung bagi kami, ia dihantar ke Vim!

neoclide / coc.nvim

CoC mempunyai sistem peluasannya sendiri, yang mencerminkan VSCodes. Ia senang digunakan dan didokumentasikan dengan baik (bahagian yang paling penting).

Nota: Anda mungkin melihat beberapa artikel lama membicarakan YouCompleteMe, tetapi sejauh yang saya tahu, itu tidak dikekalkan lagi.

Penjelajah Sistem Fail

VSCode, seperti kebanyakan editor teks moden, dilengkapi dengan penjelajah fail. Orang asli Vim netrwbaik-baik saja, dan saya telah melihat beberapa artikel yang mengatakan bahawa anda tidak memerlukan perkara lain, seperti di sini. Namun, saya dapati NERDTree terlalu berguna untuk tidak digunakan.

scrooloose / nerdtree

Integrasi Git

Saya harus jujur ​​di sini, saya melakukan sebahagian besar barang git saya terus di Iterm. Namun, VSCode mempunyai skrin split Git Diff yang sangat bagus. Untuk mendapatkan tahap integrasi git, lihat pemalam ini:

tpope / vim-buruan

Pemalam tambahan yang mungkin anda mahukan

Ini adalah beberapa perkara yang saya gunakan dalam Visual Studio Code, yang ingin saya bawa ke dalam Vim.

Kurungan Autolengkap

Pakej kecil yang bagus ini akan menutup kurungan sial secara automatik.

jiangmiao / pasangan auto

Ikon Fail

Ini akan menambahkan ikon untuk barangan seperti NERDTree.

ryanoasis / vim-devicons

Lebih cantik

Tidakkah anda tahu, tetapi pasukan rasmi yang lebih cantik mempunyai plugin vim. Bagusnya! Juga sangat mudah untuk disediakan.

lebih cantik / vim-lebih cantik

Dapatkannya untuk menyimpan secara automatik, lihat artikel ini.

Coretan

Tidakkah anda tahu, dengan menggunakan Conquer of Completion, anda boleh mengimport coretan VSCode!

Lihat ini untuk menunjukkan kepada anda cara melakukannya:

neoclide / coc.nvim

Inilah pakej coretan React yang saya gunakan.

xabikos / vscode-react

Barang Tambahan

Kediaman untuk pemalam Vim adalah Vim Awesome.

Vim Hebat

Tempat yang bagus untuk menonton orang menggunakan Vim:

Vimcast - Skenario percuma mengenai editor teks Vim

Dotfiles

Saya mempunyai beberapa kunci yang dipetakan semula untuk menjadikan semuanya lebih mudah. Lihat dotfiles saya untuk semua itu.

DarthOstrich / dotfiles

Pemikiran Akhir

Perjalanan saya

Saya hanya menggunakan Vim sekarang, setelah menghabiskan masa sekitar satu tahun untuk mempelajarinya. Pada mulanya, saya menggunakannya hanya untuk projek peribadi saya, kerana tahap produktiviti saya rendah. Saya harus terus berhenti untuk mencari cara melakukan sesuatu. Walau bagaimanapun, saya menjatuhkan VSCode sepenuhnya kira-kira 4 bulan yang lalu, dan saya tidak merancang untuk kembali.

Ia memerlukan disiplin

Belajar Vim boleh kelihatan menakutkan, dan terus terang, memang begitu. Ia memerlukan disiplin diri. Namun, tidakkah semuanya dalam pembangunan? Tidak ada alat / bahasa / kerangka yang pernah saya pelajari yang tidak memerlukan tahap latihan yang disengajakan.

Vim adalah pilihan gaya hidup. Ia akan mengambil sedikit masa untuk membiasakannya, dan kadang-kadang akan membuat anda kecewa. Namun, jika anda berpegang teguh, saya jamin ia akan meningkatkan aliran kerja anda. Sekiranya anda mempunyai petua atau pertanyaan tambahan, sila turunkannya di bawah. Seperti biasa, selamat membuat kod!

Sumber Tambahan untuk belajar

Menguasai Vim Dengan Cepat - Jovica Ilic

8 Trik Vim Yang Akan Membawa Anda Dari Pemula hingga Pakar

Rujukan

Beralih ke Vim

10 petua Linux mudah yang menjimatkan 50% masa saya di baris arahan