Plugin Neovim bernama hardtime.nvim telah mendapatkan perhatian di komunitas pengembang karena pendekatan uniknya dalam meningkatkan keterampilan navigasi Vim. Plugin ini bertujuan untuk menghilangkan kebiasaan buruk pengguna dengan membatasi penekanan tombol berulang dan menyarankan perintah navigasi yang lebih efisien, namun reaksi komunitas mengungkapkan perbedaan filosofis tentang apa yang dianggap sebagai alur kerja pengeditan teks yang optimal.
Menghilangkan Kebiasaan Buruk Melalui Pembatasan
hardtime.nvim bekerja dengan memblokir penekanan tombol berulang dalam waktu singkat, pada dasarnya memaksa pengguna untuk meninggalkan pola navigasi yang tidak efisien seperti menekan tombol h, j, k, atau l berulang kali untuk bergerak. Sebagai gantinya, plugin ini mendorong penggunaan gerakan Vim yang lebih canggih seperti lompatan relatif (misalnya, 5j
untuk bergerak turun lima baris), gerakan kata (w
, b
, e
), dan perintah pergerakan horizontal seperti f
, t
, dan $
. Plugin ini juga memberikan petunjuk yang bermanfaat ketika mendeteksi pola navigasi yang kurang optimal, menciptakan lingkungan belajar yang secara bertahap meningkatkan kemahiran pengguna dalam Vim.
Seorang pengguna membagikan pengalamannya dengan fitur pelaporan plugin:
Meskipun menggunakan vim dan neovim selama lebih dari 20 tahun, saya ternyata masih seperti manusia gua dalam hal navigasi. Saya suka sekaligus benci bahwa plugin ini menegur saya untuk itu. Fitur Hardtime Report sangat bagus, benar-benar menunjukkan betapa meluasnya kebiasaan buruk saya.
Fitur Utama hardtime.nvim
- Memblokir penggunaan tombol yang berulang dalam waktu singkat
- Memberikan petunjuk untuk gerakan Vim yang lebih cepat
- Melaporkan kebiasaan buruk yang paling sering dilakukan
- Pembatasan dan petunjuk yang dapat disesuaikan
- Membutuhkan Neovim >= v0.10.0
- Dapat menonaktifkan dukungan mouse
- Sistem notifikasi yang dapat dikonfigurasi
- Opsi untuk keluar paksa dari mode Insert setelah tidak aktif
Teknik Navigasi Vim yang Direkomendasikan
- Gunakan lompatan relatif (misalnya,
5j
) untuk pergerakan vertikal dalam layar - Gunakan
CTRL-U
,CTRL-D
,CTRL-B
,CTRL-F
,gg
,G
untuk pergerakan vertikal di luar layar - Gunakan gerakan kata (
w
,W
,b
,B
, dll.) untuk pergerakan horizontal jarak pendek - Gunakan
f
,t
,F
,T
,;
,,
,0
,^
,$
untuk pergerakan horizontal jarak menengah hingga jauh - Gunakan operator + gerakan/objek-teks (misalnya,
ci(
,y5j
,dap
) bila memungkinkan - Gunakan
%
dan perintah kurung untuk melompat di antara tanda kurung
Perbedaan Filosofis tentang Efisiensi Navigasi
Komentar-komentar mengungkapkan perbedaan menarik dalam komunitas Vim mengenai apa yang dianggap sebagai navigasi efisien. Sementara plugin ini mempromosikan lompatan relatif dan gerakan khusus, beberapa pengguna Vim berpengalaman mempertanyakan pendekatan ini. Seorang pengguna dengan pengalaman Vim lebih dari 10 tahun berpendapat bahwa menekan tombol arah berulang kali tidak selalu tidak efisien, terutama dengan pengaturan penundaan pengulangan tombol yang tepat. Mereka menyarankan bahwa menghitung lompatan relatif (seperti 15j
) mungkin sebenarnya lebih mengganggu keadaan alur mereka daripada sekadar menekan tombol beberapa kali.
Perspektif ini digemakan oleh orang lain yang mencatat bahwa menghitung lompatan relatif membutuhkan usaha mental yang dapat menarik mereka keluar dari alur pengeditan. Beberapa pengguna menunjuk pada solusi navigasi alternatif seperti plugin easymotion yang memungkinkan melompat langsung ke lokasi yang terlihat dengan mengetikkan urutan karakter, menunjukkan bahwa tidak ada pendekatan satu-ukuran-cocok-untuk-semua dalam navigasi teks yang efisien.
Kustomisasi dan Aksesibilitas
Diskusi komunitas menyoroti pentingnya kustomisasi dalam editor teks. Beberapa pengguna menyebutkan bahwa mereka lebih suka tombol tertentu seperti Home/End tersedia dalam mode insert karena selaras dengan antarmuka input teks lain di berbagai aplikasi. Pengembang plugin mengklarifikasi bahwa hardtime.nvim memang memungkinkan kustomisasi seperti itu, mencatat bahwa beberapa konfigurasi distribusi mungkin menimpa pengaturan default ini.
Beberapa pengguna mengungkapkan kegembiraan untuk mencoba plugin tersebut meskipun berpotensi menimbulkan frustrasi, dengan satu orang bahkan menyarankan bahwa ini mungkin dorongan yang mereka butuhkan untuk akhirnya beralih dari Vim ke Neovim. Yang lain mengusulkan pendekatan alternatif yang menarik, seperti secara artifisial meningkatkan latensi terminal untuk mencegah penekanan tombol berulang tanpa mengandalkan fungsionalitas plugin tertentu.
Di Luar Neovim
Diskusi ini juga memicu minat untuk membawa fungsionalitas serupa ke editor lain. Seorang pengguna bertanya-tanya apakah konsep tersebut dapat digeneralisasi menjadi mesin optimasi yang dapat bekerja di berbagai platform pengeditan, khususnya menyebutkan editor Helix. Pengguna lain mempromosikan proyek terkait mereka, vimgolf.ai, yang tampaknya mengubah peningkatan keterampilan Vim menjadi permainan, meskipun beberapa tanggapan mengindikasikan bahwa pengguna menginginkan informasi lebih banyak sebelum mendaftar.
Percakapan seputar hardtime.nvim menunjukkan betapa pentingnya alur kerja pengeditan teks bagi para pengembang. Sementara beberapa menerima alat yang menegakkan disiplin dan pola optimal, yang lain lebih suka kebebasan untuk mengembangkan gaya navigasi mereka sendiri. Yang jelas adalah bahwa pencarian efisiensi pengeditan tetap menjadi topik yang digemari dalam komunitas pengembang, dengan alat seperti hardtime.nvim berfungsi sebagai utilitas praktis dan pemicu percakapan tentang bagaimana kita berinteraksi dengan teks.
Referensi: hardtime.nvim