Sering kali saya mengedit file - berpikir pekerjaan saya sudah selesai - kemudian tutup file dan beralih ke hal berikutnya. Tapi kemudian saya sadar bahwa saya harus kembali ke kode itu dan mengubah sedikit lagi.
Jika saya membuka file lagi, saya dapat menggunakan .
tanda dan melompat ke posisi edit terakhir dengan '.
.
Sekarang saya mencoba menemukan cara untuk menggunakan tanda vim untuk melompat ke lokasi dalam file yang baru-baru ini saya kunjungi, tetapi tidak diubah.
Saya tahu saya dapat menetapkan tanda secara manual, tetapi sebagian besar waktu, saya tidak berharap untuk kembali dan jadi saya tidak menetapkan tanda dan perlu menggunakan tanda yang vim hasilkan secara otomatis.
The "
mark tampaknya seperti ini bisa menjadi cara untuk mencapai hal ini, dari :h motion
.
"
Ke posisi kursor saat terakhir keluar dari buffer saat ini. Default ke karakter pertama dari baris pertama. Lihat | posisi-terakhir-lompat | untuk cara menggunakan ini untuk setiap file yang dibuka. Hanya satu posisi yang diingat per buffer, bukan satu untuk setiap jendela. Selama buffer terlihat di jendela posisi tidak akan berubah. {tidak dalam Vi}.
Namun jika saya
- tutup semua jendela yang menunjukkan buffer (tetapi buffer masih ada dalam daftar buffer). atau:
- bunuh semua instance buffer
tanda tampaknya tidak memperbarui, bagaimana saya bisa menggunakan tanda untuk melompat ke lokasi posisi kursor terakhir di buffer / file?
sumber
Ctrl+o
danCtrl+i
...:h jump-motions
untuk info lebih lanjutviminfo
"
tanda ketika Anda membuka file. Saya benar-benar ingin hanya melompat ke posisi kursor terakhir secara manual. Juga, saya hanya tidak bisa memahami kapan"
tanda itu diatur dan diperbarui sehingga bagi saya"
tanda itu tidak dapat digunakan.Jawaban:
Berikut ini adalah solusi klasik: gunakan
untuk melompat ke file HTML terakhir dan seterusnya ...
sumber
WinLeave
karena saya perhatikanBufLeave
sepertinya tidak menyala ketika Anda menutup split dan buffer masih terbuka di tempat lain. Saya tahu ini sedikit dari kasus tepi, tetapiWinLeave
tampaknya bekerja pada rentang yang lebih luas dari situasi jenis "penutupan file", tapi saya masih hanya menguji ...Saya menulis pernyataan vimscript ini yang sepertinya berhasil
Penjelasan
BufLeave
perintah otomatis: ini tampaknya memicu ketika Andabd
:normal
- tampaknya secara default,command
bagian dari autocmd adalah perintah ex. Jadi untuk memberitahu vim untuk menjalankan perintah mode normal, Anda perlu menambahkan:normal
ml
- menetapkan tandal
(mnemonik: terakhir )Pemakaian
untuk mengingat posisi kursor dari terakhir kali Anda berada di buffer cukup tekan
atau
sumber
Jika Anda ingin kursor Anda mengembalikan posisi terakhir yang dikenal ke viminfo , Anda dapat menggunakannya
Jawaban romainl sangat berguna bagi saya, dan saya sudah sering menggunakan ini (karena saya seorang web dev):
Final Hal berpotensi berguna adalah pilihan,
:help 'nostartofline
:sumber