Sejak memasang "dark" theme, saya cenderung menjadi malas menulis. Untuk sementara, dark theme saya disable dulu yaa. Terima kasih (^_^) (bandithijo, 2024/09/15) ●
Pendahuluan
Saya memerlukan fungsi dimana setiap file yang sudah pernah di buka, kemudian saya meninggalkan posisi cursor pada baris dan kolom tertentu, maka saat file tersebut dibuka kembali, saya menginginkan cursor masih berada pada posisi yang sama.
Hal ini dengan mudah dapat dilakukan oleh plugin bernama:
This is plugin for automatically restore one file’s cursor position and folding information after restart vim.
Permasalahan
Saya menggunakan plugin lightline untuk menghandle statusline.
Nah, kedua plugin ini pasti menggunakan :loadview
untuk me-load folding secara ototmatis ketika file dibuka.
Dampak dari penggunaan :loadview
terhadap lightline adalah, statusline active tidak dapat berpindah secara otomatis.
Apabila terdapat dua buffer, maka statusline yang aktif hanya buffer yang terakhir. Sedangkan buffer sebelumnya menjadi inactive.
Maka dari itu saya memilih untuk tidak menggunakan kedua plugin tersebut. Karena fitur yang saya perlukan hanya “restore cursor position”.
Pemecahan Masalah
Cukup tambahkan konfigurasi berikut ini pada .vimrc
.
Kita akan menggunakan bantuan viminfo agar dapat mengingat marks.
Tanda "
akan mengingat posisi cursor di dalam buffer saat kita keluar (delete buffer/keluar vim).
1
2
3
4
5
" restore cursor position when opening file
autocmd BufReadPost *
\ if line("'\"") > 1 && line("'\"") <= line("$") |
\ execute "normal! g`\"" |
\ endif
Kira-kira begini penjelasannya,
Jika tanda "
mengandung nilai X line number lebih dari 1 dan tidak lebih dari line number dari baris terakhir di dalam file, maka posisi cursor akan di bawa ke baris X tersebut.
Nah, dengan begini, cursor akan tetap berada pada posisi terakhir ketika file atau buffer ditutup.
Kalau teman-teman menggunakan Vim, kalian dapat melihan informasi yang disimpan pada .viminfo
.
Kalau teman-teman menggunakan NeoVim, kalian dapat melihat informasi yang disimpan pada ShaDa File yang berada di ~/.local/share/nvim/shada/main.shada
.
Apa itu ShaDa File?
If you exit Vim and later start it again, you would normally lose a lot of information.
The ShaDa file can be used to remember that information, which enables you to continue where you left off. Its name is the abbreviation of SHAred DAta because it is used for sharing data between Neovim sessions.
Referensi
-
github.com/mhinz/vim-galore#restore-cursor-position-when-opening-file
Diakses tanggal: 2020/03/27 -
StackOverflow - How to make vim restore last cursor position for CURRENT buffer?
Diakses tanggal: 2020/07/11 -
neovim.io/doc/user/starting.html#shada
Diakses tanggal: 2020/07/11 -
vim.fandom.com/wiki/Using_marks
Diakses tanggal: 2020/07/11
Lisensi
Atribusi-NonKomersial-BerbagiSerupa 4.0 Internasional (CC BY-NC-SA 4.0)
Penulis
My journey kicks off from reading textbooks as a former Medical Student to digging bugs as a Software Engineer – a delightful rollercoaster of career twists. Embracing failure with the grace of a Cat avoiding water, I've seamlessly transitioned from Stethoscope to Keyboard. Armed with ability for learning and adapting faster than a Heart Beat, I'm on a mission to turn Code into a Product.
- Rizqi Nur Assyaufi