Vim untuk pemula


Seperti pengembang mana pun, Anda terus berkembang. Anda mempelajari teknologi baru dengan membaca buku, menonton pelajaran online, menghadiri beberapa kursus, dan seterusnya dan seterusnya. Anda tahu bahwa jika Anda berhenti belajar, Anda menjadi tidak kompetitif. Tetapi apakah Anda pernah memikirkan kinerja Anda? Bagaimana Anda meningkatkannya? Jika Anda tidak tahu bagaimana menjawab daripada menyambut di bawah potongan.


Level 0 - Taklukkan Rasa Takut


Sentuhan mengetik


Posting ini bukan tentang pengetikan sentuh . Meskipun demikian, ini adalah jawaban pertama untuk pertanyaan di atas. Untuk memahami sisa artikel ini Anda harus mengelola pengetikan sentuh.


Intro Vim



Dalam posting ini, saya akan memberi tahu Anda cara meningkatkan kecepatan coding Anda, cara menavigasi kode lebih cepat dan cara menyingkirkan mouse komputer Anda. Kami akan berbicara tentang VIM (editor teks terbaik yang dikenal dengan jenis manusia). Di tangan yang tidak terampil, itu hanya editor teks yang canggung, dan tidak ada yang tahu bagaimana keluar darinya. Tetapi sebenarnya, ini adalah editor teks yang sangat dapat dikonfigurasi (atau plugin untuk hampir semua IDE) yang dibangun untuk memungkinkan Anda mengelola kode Anda dengan cara yang paling efisien. VIM bukan hanya editor teks. Tidak terlihat gila, tetapi bayangkan Anda tidak membuat kode, Anda berbicara dengan komputer. Jadi proses pengkodean Anda dapat dibangun di monolog berikut:


  • di sini saya akan mengetik: string text = file.ReadAll();
  • buat baris kosong di atas yang ini
  • pindahkan semua baris dengan komentar TODO ke akhir file ini
  • arahkan ke fungsi GetDirectoryFiles dan salin semua kontennya
  • arahkan ke pernyataan "jika" itu dan ganti kontennya dengan teks dari buffer
  • pusatkan garis ini di tengah layar

Tetapi jika Anda ingin menari, Anda harus membayar piper. Untuk "berbicara" dengan VIM, Anda harus mempelajari bahasa yang memiliki kata benda, kata kerja, kata sifat, dll. Itulah sebabnya VIM tidak memiliki pintasan, memiliki kalimat (mis. Ubah tag bagian dalam) . Ketika Anda mempelajari dasar-dasar bahasa ini, Anda akan dapat menggabungkan kalimat Anda sendiri tergantung pada apa yang akan Anda lakukan. Setelah itu Anda akan mengerti bahwa Anda tidak membutuhkan mouse lagi.


Tidak mudah untuk mulai mempelajari bahasa ini karena semua komponennya harus menjadi kebiasaan Anda. Dan itu adalah tantangan yang menyakitkan bagi diri Anda yang bisa memakan waktu setidaknya 2 minggu, jadi pikirkan dua kali sebelum Anda mulai. Tetapi jika Anda mengatasinya, Anda akan membuka dunia baru dari pengelolaan kode Anda.


Manfaat utama dari entri data cepat bukanlah waktu yang disimpan dalam entri data per detik, tetapi peningkatan kesempatan bahwa tangan Anda dapat mengikuti perkembangan otak Anda.

Level 1 - Bertahan


Fitur paling khas dari VIM adalah ia memiliki mode. Kita dapat mendefinisikan empat dari mereka:


  • Mode normal - di sini Anda dapat mengetik perintah teks dan melakukan navigasi. Untuk masuk ke mode ini tekan ESC
  • Sisipkan mode - dalam mode ini Anda dapat mengetik teks seperti di editor lain. Untuk masuk ke mode ini tekan i
  • Mode visual - di sini Anda dapat memilih teks. Untuk masuk ke mode ini tekan v
  • Mode perintah - perintah editor (seperti menyimpan, membuka, dll . ) . Untuk masuk ke mode ini tekan :

Anda juga harus belajar navigasi dasar yang berfungsi dalam mode normal. Lupakan panah karena lambat untuk dikerjakan. Saat Anda mengetik, jari-jari Anda biasanya diletakkan di tengah keyboard Anda. Tangan kiri di asdf dan tangan kanan di jkl; . Dan biasanya, Anda menavigasi dalam kode Anda naik / turun dan jarang ke kiri / kanan (nanti kita akan berbicara tentang navigasi dalam garis). Jadi navigasi di VIM adalah sebagai berikut:


  • down - j (terlihat seperti panah bawah)
  • up - k
  • kiri - h
  • benar - l

Untuk terbiasa dengan gerakan dasar Anda dapat memainkan game VIM Adventures . Sebenarnya, ini yang harus Anda ketahui untuk memulai. Jadi, instal plugin vim pada IDE dan praktik favorit Anda. Perlu diingat, ini akan sulit.



Level 2 - Keyakinan


Ok, Anda memutuskan untuk belajar VIM dan ini luar biasa. Mari kita pastikan Anda melakukannya dengan benar. Jari-jari Anda terbiasa dengan navigasi hjkl dan Anda juga tahu cara mengubah mode dari satu ke yang lain. Jika itu benar, maka Anda sudah siap.


Mendapatkan mode penyisipan


Anda tahu Anda dapat masuk ke mode ini dengan menekan i pada keyboard. Mari kita berpikir bahwa i berdiri untuk memasukkan sebagai menyisipkan teks sebelum kursor. Anda juga dapat menekan yang merupakan singkatan dari append sebagai append text setelah kursor. Mudah untuk mengintensifkan perintah-perintah ini dengan mengubah case, jadi hasilnya adalah sebagai berikut: I menyisipkan teks sebelum non-blank pertama di baris dan A menambahkan teks di akhir baris saat ini.


Untuk membuat pekerjaan masa depan Anda lebih menyenangkan, Anda harus tahu perintah o yang menambahkan baris kosong baru setelah saat ini dan O yang melakukan hal yang sama tetapi sebelum baris saat ini.


Ini adalah perintah insert-switching mode insert yang paling sering digunakan di VIM. Jika Anda menyesuaikan dengan navigasi hjkl , perlu beberapa hari untuk terbiasa dengan perintah ini. Semakin banyak Anda berkeringat dalam pelatihan, semakin sedikit Anda berdarah dalam perang.


Mode normal


Sebelum kita mulai belajar bahasa VIM, kita juga harus meningkatkan keterampilan navigasi kita. Dalam pertanyaan ini, perintah f (kependekan dari find ) akan membantu kita. Perintah ini digunakan untuk menavigasi dalam baris saat ini. Anda mengetikkan f dan huruf yang ingin Anda pindahkan kursor. fP memindahkan kursor dari posisi saat ini ke kemunculan huruf P. Anda dapat mengaktifkan perintah ini ke F yang melakukan hal yang sama tetapi mengubah arah pencarian.


Bahasa Vim


Sekarang saatnya menjadi geek gila. Anda harus "berbicara" dengan VIM dalam mode normal. Pertama, mari kita pertimbangkan beberapa konstruksi bahasa VIM:


Kata benda:
w -word
s - kalimat
p - paragraf
b - (blok / kurung)
t -tag
{ , } , ( , ) , [ , ] - kurung kurawal
" , ' - kutipan


Kata kerja:


  • v - memvisualisasikan
  • c - ubah (hapus teks dan alihkan VIM ke mode penyisipan )
  • d - hapus dan salin (hapus teks dan tidak mengubah mode VIM)
  • y - yank (berarti salinan)

Adverbia:


  • i - di dalam
  • a - sekitar
  • t - sampai
  • f - sampai (inklusif)

Perhatikan bahwa perintah ini dapat bekerja dengan sendirinya tidak seperti yang Anda harapkan. Selain itu, ketika Anda membuat kalimat VIM, itu harus cukup dan semua konstruksi harus ada di tempatnya, jika tidak, Anda akan mendapatkan hasil lain. Sekarang mari kita buat beberapa kalimat VIM mudah sebagai contoh:


  • ciw - change inside word - menghapus seluruh kata di bawah kursor dan beralih ke mode insert, tidak seperti cw yang menghapus kata dari kursor ke akhir kata ini.
  • cis - ubah kalimat di dalamnya.
  • ci" - change inside" brace - menghapus semua teks di antara "braces.
  • da} - hapus sekitar} kurung kurung - menghapus semua teks di dalam kurung kurawal termasuk mereka.
  • vip - visual inside paragraf - memilih semua paragraf.
  • ctp - ubah sampai p - hapus semuanya dari sini ke huruf h .

Perintah kalimat Vim


Untuk memperluas bahasa VIM Anda sekarang, saya sarankan Anda mempelajari pengubah nomor konstruksi VIM yang baru. Mari kita pertimbangkan kode berikut:


 function foo() { function bar() { // some code here } } 

Dan Anda ingin menghapus semua kode di dalam {} dari fungsi foo . Menggunakan pengubah angka itu mudah dilakukan. Cukup ketik 2ci{ - ubah kurung kurawal 2 kali.


Perintah kalimat Vim


Pengubah angka bekerja tidak hanya dalam kalimat tetapi bekerja hampir di mana-mana:


  • 5j - memindahkan kursor ke bawah 5 kali.
  • 2fK - memindahkan kursor ke kemunculan kedua litter k di baris.
  • 2iHello <ESC> - masukkan Hello 2 kali.

Bersikaplah gigih


Ketika Anda belajar VIM, Anda akan menemukan beberapa konstruksi bahasa baru dan memperluas bahasa VIM Anda. Hari demi hari akan lebih mudah untuk "berbicara" dengan VIM. Semua perintah dan konstruksi bahasa digabungkan secara ketat dan dibuat untuk memaksimalkan kinerja Anda, dan itu dibuktikan dengan keberadaan VIM lebih dari 20 tahun.


Level 3 - Menguasai


Anda sedang dalam perjalanan untuk menjadi master VIM. Seperti yang Anda temukan, ini tidak mudah untuk belajar VIM. Ketika Anda merasakan kekuatan di tangan Anda menggunakan VIM, Anda akan menginginkan sesuatu yang lebih dan inilah yang menjadi bagian dari bagian ini. Semua topik ditemukan secara dangkal agar Anda dapat memutuskan apa yang Anda inginkan.


VIM bukan IDE


Ya, VIM bukan IDE meskipun Anda dapat mengaturnya untuk melakukan hampir semua fungsi IDE . Saya yakin Anda tidak akan meninggalkan Visual Studio atau WebStorm favorit Anda dan itulah sebabnya saya menyiapkan daftar plugin untuk IDE Anda dan tidak hanya.


  • VSVim untuk VisualStudio
  • VS VIM untuk VSCode
  • IdeaVim untuk WebStorm, IntelliJ IDEA (dan produk Jetbrains lainnya)
  • Teks luhur memiliki mode Vintage di luar kotak
  • Mode Vim untuk atom
  • XVim untuk Xcode
  • Hardcore! Jangan ulangi ini di rumah! Google Chrome juga memiliki ekstensi untuk navigasi seperti VIM. (temukan di Toko Chrome)

Namun, Anda harus ingat bahwa kinerja maksimum dapat dicapai hanya dengan menggunakan VIM. Pada dasarnya, ini cocok untuk proyek js / html / css kecil, mengedit file konfigurasi atau hanya sebagai pengganti notepad Anda ++ :)


Plugin Vim


VIM memiliki ribuan plugin untuk caprice apa pun. Di sini Anda dapat menemukan hampir semua yang Anda inginkan dari file explorer dan integrasi git ke sistem build.


Salah satu plugin favorit saya adalah EasyMotion . Itu dibuat untuk mempercepat navigasi Anda di VIM. EasyMotion sangat canggih dan sangat terintegrasi dalam filosofi VIM. Misalnya, jika Anda hanya ingin menavigasi ke baris tertentu di belakang yang sekarang, Anda dapat melakukan ini dengan menekan tombol j beberapa kali. Sebagai perbandingan, dengan EasyMotion Anda dapat menekan tombol pemimpin (dalam kasus saya TAB ) dan j untuk menyorot semua baris di belakang dengan huruf yang berbeda. Yang harus dilakukan hanyalah menekan huruf yang mewakili garis yang Anda butuhkan.


EasyMotion


Dalam kasus saya, saya menekan tombol TAB dan ju untuk menavigasi ke jalur yang sesuai. Itu adalah contoh termudah dan seperti biasa, di dunia VIM, Anda dapat membuat hampir semua perintah sesuai dengan kebutuhan Anda.


Pemetaan


Fitur ini saya putuskan untuk dipertimbangkan secara terpisah. Anda mungkin berpikir tentang pemetaan sebagai ikatan utama untuk semua mode. Dengan kata lain, Anda dapat mengikat beberapa pola untuk melakukan beberapa tindakan dalam mode yang berbeda.


Jadi mari kita lihat contoh yang mudah dan nyata. Hampir setiap orang yang bekerja di VIM tidak mengubah mode dari insert ke normal dengan menekan ESC . Kami melakukannya dengan menekan jj atau jk karena kami memiliki pemetaan berikut :imap jj < ESC >. imap adalah singkatan dari mapping mode insert dan berarti itu hanya berfungsi pada mode insert.


Anda dapat memetakan semua yang ingin Anda lakukan dan ini akan menghemat waktu Anda di masa depan. Baca lebih lanjut tentang pemetaan di sini .


Fitur Vim


Ada banyak hal untuk dipelajari di VIM selain fitur yang disebutkan di atas. Anda harus memperhatikan daftar berikut ini:


  • perintah global
  • cari dan ganti
  • macro dan register
  • buffer
  • tab
  • lekukan dan lipatan
  • perintah otomatis

Mereka mungkin ada di alat pengembangan lain, tapi ini VIM. Hari demi hari Anda akan bertanya-tanya betapa briliannya semua hal ini dibangun. Lihat untuk memastikan.


Konfigurasi


Ada banyak pengaturan VIM yang harus disimpan di suatu tempat untuk menggunakan pengaturan yang sama untuk semua editor dengan plugin VIM. Dan ini adalah tanggung jawab file .vimrc. Secara default, di Windows 10 file ini terletak di C:\Users\%username% . Di sini Anda dapat mengatur semua pemetaan, perintah otomatis, plugin, skema warna, dan semua pengaturan lainnya. Saya telah menemukan artikel yang cukup bagus bagaimana mengatur file .vimrc Anda sendiri sehingga Anda dapat berlatih sendiri.


Catatan: Jangan menaruh baris apa pun di .vimrc Anda yang tidak Anda mengerti

Kursus VIM yang luar biasa:



Tuan yoda


Semoga VIM menyertai Anda.

Source: https://habr.com/ru/post/id440130/


All Articles