VIM dengan nyontek

Kamu pasti tahulah vim adalah text editor jadul yang sampai sekarang masih banyak dipakai oleh programmer-programmer senior. Walaupun umurnya sudah 20 tahun tetapi tetap enak banget digunakan bukan karena kemudahannya tapi karena kesulitannya menghapal perintah-perintah dalam menggunakannya.

Sebenarnya memperlajarinya menyenangkan dengan vim tutor kita bisa mengetahui cara menggunakannya.

Pada vim tutor juga menyebutkan bahwa vim adalah teks editor yang sangat punya tenaga alias powerful dengan banyak perintah-perintahnya.

Hal yang pertama sekali membuat kamu nanti sedikit kebigungan adalah ketika

  • Atas : K
  • Bawah : J
  • Kanan : H
  • Kiri : L

Dari vee-eye yang dirancang oleh bill joy (co-founder Sun Mycrosystem) telah memperkenalkan kita tentang kekuatan mengetik dan sudah 44 tahun yang lalu. Begitu pula bram moolenaar mengembangkan vee-eye tersebut dengan IMproved dilakukannya akirnya membuat penamaan menjadi vim 29 tahun yang lalu dengan menambahkan beberapa mode seperti normal, visual, select, insert, commandline, hingga ex yang mirip dengan commandline dan pada 2014 lalu mulailah generasi pembaharuan dengan munculnya NeoVim dengan penambahan user experience, plugin dan GUI.

Neovim tidak punya tujuan ingin menjadikan nvim sebagai IDE dan terlihat ingin menjadikan text editor vim lebih bertenaga.

Setup VIM

Saya tidak memberikan penjelasan tentang setup atau custom ini lebih detail karena sudah banyak yang membahasnya dan kamu bisa langsung lihat-liat di

  • https://github.com/theniceboy/nvim
  • https://github.com/afshinm/neovim-config
  • https://www.bha.ee/neovim-config-for-frontend-development/
  • https://github.com/hiyali/nvim
  • https://github.com/HendrikPetertje/neovim-starter
  • https://github.com/rafi/vim-config
  • https://afnan.io/posts/2018-04-12-my-neovim-development-setup/
  • https://dev.to/ryanlanciaux/neo-vim-for-web-development-56n9

Okeh setup yang saya lakukan adalah untuk kebutuhan development dan yang paling sering itu web development dan kusus di front-endnya. Kalau lainnya saya setup untuk datascience toolkit dan flutter.

Plugin VIM

Ada beberapa plugin yang menjadi catatan untuk saya

  • PlugInstall Plugin for web development :
  • Vim Surround : https://github.com/tpope/vim-surround​
  • Coc-Pairs : https://github.com/neoclide/coc-pairs​
  • Auto Pairs : https://github.com/jiangmiao/auto-pairs​
  • Vim-Closetag : https://github.com/alvan/vim-closetag
  • Emmet-Vim : https://github.com/mattn/emmet-vim
  • Markdown Preview : https://github.com/iamcco/markdown-preview.nvim
  • Polyglot : untuk syntax highlight
  • fzf : untuk pencarian file
  • presenting : untuk presentasi (https://github.com/sotte/presenting.vim/blob/master/examples/PresentingDemo.markdown)
  • devicon : untuk icon
  • coc : untuk auto complite, lsp, host language server

Membuat Shortcut di Terminal

Untuk pemanggilan vim atau nvim keknya agak lebih banyak makan waktu untuk mengetik 3 atau empat kata tersebut maka dari itu kita bisa buat alias untuk perintahnya misalkan diganti dengan v

alias v = "vim"
alias f = "mc"
alias  r = "ranger"

Untuk aliasnya mah tergantung dari preferensi masing-masing.

touch ~/.bashrc

Kenapa pakai VIM ?

oh ya ada beberapa alasan kenapa saya mulai menggunakan nvim ini. Hal ini didasarkan karena laptop saya rusak dan dengan mobilitas yang tinggi saya tidak bisa didepan komputer selamanya. Sedangkan yang miliki hari ini adalah laptop bekas low-end (1.1Ghz/2gb) dan mau tidak mau harus bisa dipakai untuk menunjang segala kepentingan development. Sedangkan untuk aktifitas multimedia, saya tetap menggunakan komputer pc saya.

untuk mengusai vim ini setidaknya butuh waktu satu harian juga.

https://github.com/junegunn/vim-plug https://www.cyberciti.biz/programming/vim-plug-a-beautiful-and-minimalist-vim-plugin-manager-for-unix-and-linux-users/

Ini seperti keyboard warior berasa ninja gitu. soalnya kita tidak membutuhkan mouse sama sekali dan semuanya dengan bantuan tombol-tombol yang ada dikeyboard.

Contekan di VIM

contekkan menggunakan neovim

  • :q! : untuk keluar
  • alt+x : hapus dari belakang
  • alt+k : mode normal kursor untuk ke atas
  • alt+j : mode normal kursor untuk ke bawah
  • alt+h : mode normal kursor untuk ke kanan
  • alt+l : mode normal kursor untuk ke kiri
  • esc : untuk masuk ke mode normal
  • a : untuk append text atau masuk ke mode editing
  • A : untuk append text mode insert di ujung text
  • i : untuk masuk ke mode insert
  • shift+left : untuk pindah satu kata ke samping kiri
  • shift+right : untuk pindah satu kata ke samping kanan
  • :wq namafile : untuk menyimpan file baru dan keluar
  • :wq : untuk menyimpan dan keluar
  • /kata-kata : untuk melakukan pencarian kata
  • c : merubah atau change
  • cw : merubah kata di mulai dari akhir change+word
  • w : pindah perkata word
  • b : pindah ke awal begining
  • d : hapus delete
  • dw : hapus kata delete+word
  • ciw : rubah kata di word satu kata keseluruhan
  • ciW : rubah semua kata yang terhubung tanpa spasi
  • ci” : rubah semua kata yang didalam tanda petik dua
  • ci+tanda : rubah semua kata yang ada di dalam tanda misalkan {
  • cit : rubah semua yang didalam tag seperti tag html
  • u / :u / :undo : undo untuk kembali kesebelumnya
  • ctrl+r / :redo : redo untuk kembali setelahnya
  • 4u : empat langkah kembali kesebelumnya
  • 4 ctrl+r : empat langkah kembali setelahnya
  • :set number : untuk menampilkan angka pada baris
  • ctrl+v : untuk paste bisa dari luar terminal
  • y : untuk copy atau yangking\
  • dd : untuk cut atau hapus satu baris line
  • 3dd : untuk cut atau hapus 3 baris selanjutnya
  • d$ : untuk cut atau hapus dari awal hingga akhir
  • p : untuk paste atau pasting dalam terminal
  • v : untuk masuk ke mode visual atau seleksi
  • :e file /:edit : untuk membuka file
  • r /R : refresh folder struktur di nerdtree

Navigasi Dasar:

  • tombol h untuk menggeser cursor ke kiri.
  • tombol j untuk menggeser cursor ke bawah.
  • tombol k untuk menggeser cursor ke atas.
  • tombol l untuk menggeser cursor ke kanan.

Navigasi Baris:

  • tombol 0 (angka nol) untuk memindahkan cursor ke awal baris.
  • tombol $ (dollar) untuk memindahkan cursor ke akhir baris.

Navigasi Kata:

  • tombol b untuk memindahkan cursor ke awal Kata
  • tombol w untuk memindahkan cursor ke awal kata berikutnya
  • tombol e untuk memindahkan cursor ke akhir kata

Navigasi Jendela:

  • tombol H (H besar) untuk memindahkan cursor ke posisi atas
  • tombol L (L besar) untuk memindahkan cursor ke posisi bawah
  • tombol M (M besar) untuk memindahkan cursor ke posisi tengah

Scrolling:

  • Ctrl+f untuk melakukan forward scrolling (satu halaman ke depan)
  • Ctrl+b untuk melakukan backward scrolling (satu halaman ke belakang)
  • Ctrl+u untuk melakukan scroll up (setengah halaman ke atas)
  • Ctrl+d untuk melakukan scroll down (setengah halaman ke bawah)

Navigasi Tambahan:

  • tombol gg (g kecil dua kali) untuk melompat ke awal file
  • tombol G (G besar) untuk melompat ke akhir file

Catatan penting lain:

  • Beralih ke Normal Mode (tekan tombol Esc)
  • Beralih ke Insert Mode (tekan tombol Esc lalu tekan tombol i)
  • neralih ke Visual Mode (tekan tombol Esc lalu tekan tombol v)
  • Beralih ke Command Mode (tekan tombol Esc lalu :)
  • Esc :q adalah cara untuk keluar dari Vim.
  • Esc :q! adalah cara untuk keluar dari Vim dan mengabaikan proses saving data.

  • Tombol / digunakan untuk memulai proses pencarian dengan diikuti kata yang akan dicari lalu diakhiri tombol enter
  • Tombol n digunakan untuk melakukan pencarian ke depan
  • Tombol N digunakan untuk melakukan pencarian ke belakang
  • Tombol ggn digunakan untuk melakukan proses pencarian dimulai dari awal dokumen
  • Tombol GN digunakan untuk melakukan proses pencarian dimulai dari akhir dokumen
  • Tombol * digunakan untuk melakukan proses pencarian (ke depan) untuk kata yang sedang ditunjuk kursor
  • Tombol # digunakan untuk melakukan proses pencarian (ke belakang) untuk kata yang sedang ditunjuk kursor
  • Command :set hlsearch untuk mengaktifkan fitur highlight search
  • Command :set nohlsearch untuk menonaktifkan fitur highlight search
  • Command :set incsearch untuk mengaktifkan fitur incremental search

Belajar dari vim: seharusnya membuat diri belajar lebih keras, bukan malah menyalahkan keadaan.