Menjadi lebih baik di Vim [tutup]

116

Saya telah menggunakan Vim untuk waktu yang cukup lama, tetapi saya berada pada level di mana saya menggunakan mode penyisipan sebagian besar waktu, dan saya masih menggunakan tombol panah untuk bergerak (!).

Saya merasa seperti saya tidak mendapatkan yang terbaik dari editor saya yang cantik, terutama mengenai navigasi (terutama kode), salin & tempel, dan melakukan manipulasi lain dari kode yang ada. (meskipun saya cukup nyaman dengan pola cari / ganti yang rumit).

  • Bagaimana saya harus belajar lebih banyak?
  • Sumber daya apa yang akan direkomendasikan orang?
James
sumber
8
Apa salahnya menggunakan tombol panah untuk bergerak? Itulah yang mereka untuk !
Vilx-
39
@Vilx, Anda tidak bergerak dengan tombol panah bahkan di game aksi komputer ! Jangankan editor teks ...
P Shved
6
@Vilx: Tombol panah pada keyboard berada di tempat yang sangat tidak nyaman untuk segala jenis navigasi. Itu sebabnya kanon di ViM menggunakan HJKL, sama seperti Anda menggunakan WASD di game orang pertama.
Will Vousden
4
WASD ada di sana karena lebih mudah digunakan dengan tangan kiri, karena tangan kanan mengontrol mouse. Orang kidal menggunakan panah. Dan HJKL sangat kontra-intuitif. Mana yang pindah kemana?
Vilx-
8
Saya rasa ini bukan tentang "panah vs hjkl" karena ini adalah "gerakan kursor vs objek teks".
Matteo Riva

Jawaban:

78

"Mengapa, oh MENGAPA, melakukan #? @! Orang gila menggunakan vi?" adalah pengantar yang bagus untuk "cara Vim", terutama tentang objek teks yang merupakan salah satu fitur Vim yang paling menentukan.

Matteo Riva
sumber
3
Sebagai bonus, ada lembar contekan grafis yang bagus (ditautkan di akhir artikel).
Csaba_H
Sepertinya saya tidak dapat mengakses tautan itu. Bahkan tidak dengan ikal. Adakah yang bisa mengkonfirmasi?
H.Rabiee
66

Berikut adalah beberapa screencast keren yang akan memberi Anda gambaran tentang apa yang harus dipelajari selanjutnya. Ada juga video untuk topik menengah dan lanjutan, tetapi yang pemula sebenarnya yang paling penting.

Juga, ketika saya merasa bahwa saya stagnan dan tidak benar-benar mempelajari "cara Vim", saya memilih untuk menonaktifkan tombol panah baik dalam mode normal maupun mode insert. Ini memaksa Anda menggunakan ESC untuk pergi ke suatu tempat, dan membuat Anda berpikir lebih mirip Vim. Akhirnya, saya mengaktifkan tombol panah lagi dalam mode penyisipan, tetapi saya hampir tidak pernah menggunakannya. Ada, paling sering, cara yang lebih baik untuk bepergian.

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

Dan khususnya

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>
Sarah
sumber
5
Saya suka ide untuk menonaktifkan tombol panah, ini cara yang bagus untuk memaksa diri Anda sendiri untuk berhenti menggunakannya.
Idan K
1
Itu bekerja dengan sangat baik bagi saya, tetapi beberapa hari pertama sangat membuat saya frustrasi. Setelah Anda terbiasa, dan membuang kebiasaan berpindah-pindah TERLALU banyak dalam mode penyisipan, saya sarankan untuk mengaktifkan kembali imaps.
Sarah
Screencast ini luar biasa. Terima kasih telah menunjukkannya.
Mert Nuhoglu
2
Menonaktifkan tombol panah adalah ide yang LUAR BIASA, saya sedang melakukannya sekarang.
gorsky
Menonaktifkan tombol panah didasarkan pada asumsi bahwa tombol panah lebih jauh daripada hjkl. Lebih baik mendapatkan keyboard yang lebih baik. Saya menggunakan Kinesis Advantage. Meskipun saya menggunakan keyboard standar, hjkl tetap tidak masuk akal karena saya menggunakan dvorak. Yang ingin saya katakan adalah: intinya bukanlah "jangan gunakan tombol panah", intinya adalah "Gunakan cara yang paling efisien dan jangan mengabaikan perolehan efisiensi karena kurva pembelajaran."
Penebusan Terbatas
23
  1. ketik vimtutordi baris perintah
  2. masuk ke vim, ketik: bantuan atau <F1>
  3. berlangganan milis
  4. dokumen vim resmi
anjing hantu74
sumber
1
Satu hal yang tidak saya pertimbangkan adalah bergabung dengan milis: selesai sekarang :)
James
1
ini adalah tempat yang baik untuk mendapatkan bantuan dan melatih keterampilan vim Anda dengan memecahkan masalah orang lain.
ghostdog74
1
1 untuk vimtutor - cara terbaik untuk memasukkan vim ke dalam memori otot Anda.
Hamish Downer
16

Dua tip lagi:

  • Gunakan Vim untuk mengedit semuanya (email, formulir web, kode, ...). Saat sesuatu terasa lambat, mungkin ada cara yang lebih cepat untuk melakukannya. :helpgrepadalah temanmu.

  • Kepala ke http://vimgolf.com/ dan bersaing. Saya telah mempelajari banyak tip dan trik dengan cara itu. [ Penafian : Tidak ada tanggung jawab yang diterima untuk jangka waktu lama yang "hilang" saat berkompetisi di VimGolf ].

Johnsyweb
sumber
2
Baik, saya tidak tahu tentang vimgolf!
James
1
@Autopulated: Telah menambahkan penafian.
Johnsyweb
2
@Johnsyweb: Saya benar-benar ingin dapat menggunakan vim untuk semuanya-- tapi bagaimana caranya? Mendapatkan klon vim yang tepat di dalam setiap formulir web akan ideal - karena semua add-on browser yang saya temukan biasanya hanya menerapkan subset acak kecil dari fitur vim dan memetakan ulang keybindings untuk mengakomodasi fakta bahwa browser masih membutuhkan akses ke keymappings tertentu.
Conrad.Dean
10

Beginilah cara saya mempelajari Vim (dan banyak hal lainnya). Sangat mudah.

Jelajahi dokumen bantuan dan temukan perintah untuk sesuatu yang Anda lakukan sepanjang waktu. Hapus seluruh kata, misalnya. Pastikan untuk mengingat ini.

Sekarang, lain kali Anda menemukan diri Anda menekan 'xxxxx' untuk menghapus sebuah kata, hentikan, letakkan kembali dan gunakan perintah baru. Cari tahu jika perlu. Jadi, alih-alih menekan 'xxxxxx' Anda kembali dan menekan 'dw'.

Lakukan ini berulang kali, ini akan lambat pada awalnya tetapi akhirnya akan melekat.

Setelah Anda memiliki perintah itu, mulailah dari atas. Temukan perintah lain untuk tindakan yang Anda lakukan sepanjang waktu ...

Anda akan terkejut betapa cepatnya Anda dapat mengambil perintah dan teknik baru dengan cara ini.

Dennis Hostetler
sumber
7

Memetakan ulang / menonaktifkan tombol panah seperti yang disarankan adalah cara yang bagus untuk memaksa diri Anda sendiri agar tidak menggunakannya.

Hal lain yang perlu dipertimbangkan: jika menekan Esc pada keyboard Anda sama sekali tidak nyaman, Anda mungkin ingin memetakan ulang Caps Lock ke Esc di OS Anda. Bagi saya ini adalah langkah yang sangat membantu, karena Esc adalah jangkauan yang canggung pada KB saya dan itu adalah kendala lain yang membuat saya tetap dalam mode Sisipkan (karena sulit untuk keluar). Memiliki Esc di Caps Lock membuatnya mudah dijangkau dan masuk dan keluar dari mode Insert sangat cepat.

Untuk mempelajari hal-hal lanjutan di Vim, sumber daya terbaik adalah: bantuan, tetapi untuk memahami dasar-dasarnya Anda hanya perlu melakukannya; itu memori otot lebih dari apapun. Anda bilang Anda tahu pencarian. Secara sadar menggunakannya sebagai alat navigasi. Pencarian [/,?] Dan pencarian berbasis karakter inline [f, F, t, T] adalah beberapa alat navigasi Vim utama. Gunakan saja; digabungkan dengan tombol kursor yang dinonaktifkan Anda akan menavigasi pada memori otot saja dalam waktu singkat.

Objek Teks. Salah satu fitur editor terbaik dengan mudah. Ini adalah hal lain untuk segera berlatih secara sadar. Hal-hal seperti 'yiw', 'dit', dll. Begitu kuat dan cepat; mempelajari dan memanfaatkannya saja akan membuat Anda merasa seperti pengguna Vim.

Setelah Anda mendapatkan objek teks dan navigasi dasar ke bawah, maka inilah saatnya untuk beralih ke membaca dan belajar dari: bantuan secara teratur dan menjelajahi web untuk plugin yang luar biasa. Serius, Anda bisa menggunakan Vim selama bertahun-tahun dan memiliki "ah ha!" saat secara tidak sengaja tersandung pada beberapa berita menarik yang tidak jelas di: bantuan yang tidak pernah Anda ketahui.

nomor 1311407
sumber
Alih-alih memetakan ulang ke Caps Lock, saya akan menyarankan Ctrl-C. Ini mudah diketik dan cukup familiar bagi pengguna linux.
BandGap
6

Lihat utas ini: Apa pintasan paling produktif Anda dengan Vim?

Terutama jawaban pertama.

Konrad Garus
sumber
3
Sebagai penulis jawaban "pertama", saya harus mengatakan, sejujurnya, bahwa ini belum tentu merupakan panduan terbaik untuk secara umum meningkatkan penguasaan editor Anda. Ini mencakup banyak hal tentang apa yang dapat dilakukan dengan vi ketika Anda menganggapnya sebagai bahasa untuk mengekspresikan cara yang Anda inginkan untuk memanipulasi teks, layar / terminal Anda dan lingkungan editor itu sendiri. Namun, banyak barang di sana cukup canggih.
Jim Dennis
1
Saya tidak belajar banyak dari membaca jawaban itu sehingga saya rasa saya tidak akan pernah belajar dengan membaca dokumentasi!
Yakobus
3

Bagaimana saya harus belajar lebih banyak?

Baca manual vim sepenuhnya (ketik :h; Anda dapat menelusuri dari sana). Beginilah cara Anda mengetahui semua gerakan dan perintah. Itu paling berguna jika Anda sudah mengetahui dasar-dasarnya dan ingin meningkatkan diri.

Sumber daya apa yang akan direkomendasikan orang?

vim.org, lihat skrip vim paling populer . Periksa sumbernya jika Anda menemukan sesuatu yang menarik. Atau cukup instal dan nikmati. Situs itu terdiri dari banyak tautan ke skrip yang membantu menjelajahi kode sumber dalam berbagai bahasa; dan relatif mudah untuk menemukannya di sana.

StackOverflow.com juga mungkin bisa membantu .

P Shved
sumber
3

Saya membuat game ini untuk membantu keponakan saya belajar, tetapi hanya berfungsi di Firefox dan Chrome>. < http://kikuchiyo.org

Untuk saat ini, ini hanya berhubungan dengan gerakan dan memasuki mode penyisipan. Versi beta memungkinkan Anda untuk menyerang musuh dengan pedang cahaya, 'i' ke kiri, dan 'a' ke kanan: P

Teruslah mencoba mempelajari Vim, itu sepadan dengan usahanya!

:)

kikuchiyo
sumber
Nah, itu ide yang sangat bagus!
Yakobus
Pembaruan: sekarang situsnya ada di kikuchiyos-vim-game.herokuapp.com .
kikuchiyo
2

Saya masih menggunakan tombol panah untuk bergerak (!).

Saya tidak melihat ada masalah dengan ini.

Terus terang, berapa kemungkinan Anda harus menggunakan vim dan keyboard yang tidak memiliki tombol panah?

Anda tahu, kebanyakan orang menggunakan vim karena vim melakukan tugasnya (oh baiklah, karena mereka menguasainya hingga level saat ia melakukan tugasnya untuk mereka), bukan karena elitis (seperti tidak menggunakan tombol panah).

Beberapa saran untuk meningkatkan pengetahuan vim Anda:

  • secara berkala buka bantuan vim di tempat acak dan baca tentang fitur berbeda yang acak. Ini akan memakan waktu beberapa menit. Ada kemungkinan Anda tidak akan menggunakan fitur ini selama X tahun ke depan. Tetapi jika Anda beruntung, Anda akan berada dalam situasi di mana Anda akan melihat bahwa Anda dapat menerapkan pengetahuan Anda tentang fitur tersebut untuk mencapai tugas tertentu. Anda akan membuka bantuan itu lagi untuk menyegarkan ingatan Anda. Setelah menggunakan fitur dalam latihan beberapa kali, itu akan melekat. Pada titik ini, pengetahuan vim Anda akan ditingkatkan.
  • gunakan: helpgrep untuk menggali tempat-tempat dokumentasi secara acak. Jika Anda perlu melakukan sesuatu dan Anda menemukan tempat yang menjelaskannya di dokumen, jangan berhenti di situ. Baca potongan dokumen sekali lagi. Temukan kata kuncinya. Untuk setiap kata kunci, gunakan kata kunci: helpgrep untuk menemukan tautan logis dengan bagian lain dari dokumentasi vim.
Alex_coder
sumber
Saya kira masalah yang saya hadapi hanya dengan membaca dokumentasi adalah saya merasa saya tidak mempelajari banyak hal dengan sangat efektif tanpa benar - benar melakukannya .
Yakobus
1
Menggunakan tombol kursor untuk memindahkan kursor dalam jarak dekat bisa seefisien menggunakan tombol [h], [j], [k], [l] ... jika jari-jari Anda kebetulan berada di dekatnya karena beberapa alasan lain. Menggunakan setiap gerakan kursor linier mengerikan untuk lebih dari beberapa kolom atau garis gerakan. Biasanya yang terbaik adalah memikirkan tentang apa yang Anda cari dan mengungkapkannya secara langsung di vi menggunakan / atau? perintah dan ekspresi reguler. Sedikit teks terakhir di dekat foo? G? Foo [Enter] (enam penekanan tombol). Baris pertama dengan "bar ... sesuatu .. bang di dalamnya? 1G / bar. * Bang [Enter] (sekitar selusin penekanan tombol) ... dan seterusnya.
Jim Dennis
Meskipun tombol panah mungkin lebih efisien daripada meraih mouse, jika Anda mengetik dengan menggunakan tombol baris utama untuk menyusun kembali tangan Anda setelah mengetik dalam urutan karakter, maka tidak ada gerakan yang diperlukan untuk memasukkan salah satu tombol gerakan dasar dari 'j', 'k', 'l', dan sedikit 'kedutan' ke kiri untuk mendapatkan tombol 'h'. Jika Anda melakukan berbagai hal dengan cara Vim, tangan Anda harus selalu lebih dekat ke tombol baris rumah daripada ke tombol panah. Teruslah berlatih dan Anda akan mendapatkannya. :)
kikuchiyo
2

Saya melihat daftar Tips VIM Terbaik ini sesekali dan saya masih mengambil trik baru secara teratur.

Brian Rasmussen
sumber
2

cara saya berhenti menggunakan tombol panah tidak menonaktifkannya (saya masih menggunakannya dalam mode Sisipkan) tetapi jika Anda memikirkannya jika Anda ingin pergi ke kanan, gunakan jari kelingking Anda yang merupakan lkuncinya, ke kiri Jari telunjuk htombol, & jari manis ke atas ("deringkan") ktombol & "ambil" jkunci.

Jadi pertama dari empat digit di tangan Anda (lupakan ibu jari) Indeks satu paling kiri & Kelingking paling kanan. Gunakan ungkapan "menelepon" seperti dalam panggilan telepon untuk naik dengan jari manis Anda & jari tengah tidak punya tempat lain untuk pergi selain ke bawah.

Ini juga banyak membantu saya untuk melupakan tentang apa nama kunci itu (h, j, k, l). Tidak ada mnemonik yang baik untuk mengingatnya seperti yang saya temukan & tidak ada terlalu banyak pemetaan yang menggunakan tombol itu juga.

phildobbin
sumber
0

1- baca ini

2- Jika Anda menggunakan pembaca rss berlangganan ke halaman ini

Halaman 1

halaman 2

aliva
sumber