Vim with Dvorak keymap

Vim with Dvorak keymap

Akhirnya ada yang nanya tentang Vim dan Dvorak, jadi ada topik. :3

Jika anda menggunakan Vim dengan keyboard layout Dvorak, bukan berarti anda harus mengganti semua tombol menjadi Dvorak. Anda bisa menggunakan Dvorak hanya pada saat mengetik (insert mode), dan tetap menggunakan Qwerty di normal/visual mode. Jadi posisi tombol HJKL tetap berurutan di DHTN, tidak terpecar-pencar. Ini mirip dengan Dvorak-Qwerty yang pernah saya bahas.

Mau? Lha, trus caranya supaya bisa gitu gimana?

Gampang sekali. Buka vim anda, lalu ketik :set keymap=dvorak. Well done. Sekarang anda bisa menggunakan Qwerty di normal/visual mode, dan Dvorak di insert mode.

Kalau mau permanent, tambahkan saja command tadi ke ~/.vimrc.

Bagi yang ingin tau lebih lanjut, sebenernya Vim menyimpan dvorak keymap ini pada /usr/share/vim/vim80/keymap/dvorak.vim.

Vim tidak bisa jalan karena versi libruby tidak sesuai

Ceritanya dapat koneksi bagus pas main ke Gongshin. Langsung upgrade semuanya, dari Mac AppStore, brew, composer, npm, dll, sampai ruby gem.

Keesokan harinya saat buka vim, dapat error seperti ini

dyld: Library not loaded: /usr/local/opt/ruby/lib/libruby.2.3.0.dylib
 Referenced from: /usr/local/bin/vim
 Reason: Incompatible library version: vim requires version 2.3.1 or later, but libruby.2.3.0.dylib provides version 2.3.0
[1] 33234 trace trap vim

Error-nya sih sudah jelas. Tapi tetep cari solusinya di internet. Ternyata tidak ada yang memuaskan.

Tanya di facebook group Vim Indonesia, malah di-like. Saya heran juga, kenapa di-like? 😕 Apa dia senang kalau saya kesulitan? Apa dia suka melihat vim tidak bisa jalan? Atau dia suka dengan error? Ntahlah…

Saat coba brew reinstall ruby, katanya sudah terinstall 2.3.1. Akhirnya saya coba telusuri sana-sini, dan menemukan /usr/local/Cellar/ruby/ mengandung dua versi, yaitu 2.3.0 dan 2.3.1.

Saya coba remove ruby

brew remove ruby

Lalu dapat message

Uninstalling /usr/local/Cellar/ruby/2.3.0... (1,260 files, 19.0M)
ruby 2.3.1 is still installed.
Remove them all with `brew uninstall --force ruby`.

Aha! Berarti aman sudah ini. Tinggal di-link saja dengan brew link ruby.

Tada!! Vim sudah bisa dijalankan kembali. 😀

Manfaat Local History di IDE/Editor

Manfaat Local History di IDE/Editor

Hohoo… Hari ini agak sedikit stress. Ceritanya saya buat private composer package untuk salah satu project. Setelah package itu di-pull dari repository dengan composer install, saya mengerjakan project seperti biasa. Tapi karena lagi agak malas, beberapa file di folder vendor saya edit langsung. Niat hati sih nanti di-push ke repo.

Ntah apa yang ada dipikiran saya saat itu. Setelah aplikasi berjalan sebagaimana mestinya, saya hapus folder vendor lalu saya lakukan composer update. Dan, seperti yang sudah diduga, file yang sudah di-edit menjadi seperti awal lagi 😐 Oh God, Why? Dan karena folder vendor ini termasuk folder yang masuk dalam list .gitignore, jadi tidak bisa di-restore dengan VCS (kecuali pernah pake git add --force, lalu commit).

Local History for Rescue

Setelah beberapa jam mencoba mengumpulkan kembali serpihan code sebelumnya dari otak, akhirnya saya ingat dengan local history. Biasanya saya menggunakan vim, tapi kebetulan saya menggunakan IDE dari JetBrains. Solusinya simple banget, cukup dengan right click di folder atau root project, lalu pilih Local History > Show History. Kita bisa mencari file-file berdasarkan perubahan yang pernah kita lakukan. Baik itu perubahan langsung dari IDE, maupun perubahan dari luar. Kita bisa memilih hanya file tertentu yang di-revert, suatu folder ataupun keseluruhan perubahan. Atau bisa juga dengan copy paste hanya pada bagian yang dibutuhkan.

Fiuhh… Thanks JetBrains 😀

Berikut penampakan Local History

local-history

Vim

Bila anda juga pengguna vim, sebenernya ada fitur yang serupa. Setiap kali anda edit file akan dibuat file .swp. Sebaiknya dari awal sudah dikonfigurasi agar file backup ini dipisah dari working folder. Detailnya bisa pelajari disini http://vim.wikia.com/wiki/Remove_swap_and_backup_files_from_your_working_directory

Saya belum pernah coba, tapi sepertinya “plugin” ini layak untuk dicoba:
https://github.com/hjdivad/vimlocalhistory
https://github.com/serby/vim-historic

Sepertinya saya harus explore fitur vim yang ini. Btw, punya info vim plugin lain? :/