Bisakah saya menyimpan lipatan?

13

Hari ini saya belajar cara melipat / membuka di Vim; ini cukup berguna.

Tanpa diduga, ketika saya keluar dari file dan memasukkannya kembali, lipatan yang saya buat sudah hilang (tidak dilipat).

Dalam proyek besar perusahaan kami, ada cukup banyak blok kode lengket (warisan) yang agak usang tetapi sangat diperlukan.

Saya benar-benar perlu melipatnya hampir secara permanen.

Apakah ada cara singkat untuk memberitahu Vim untuk menyimpan preferensi lipat saya untuk file?

Zen
sumber
1
Saya tidak tahu apakah itu akan menyelesaikan masalah Anda, tapi mungkin :mkviewdan :loadviewperintah bisa membantu. Anda bisa mencoba menambahkan 2 baris ini di dalam vimrc Anda au BufWinLeave *.c mkviewdan au BufWinEnter *.c silent loadviewdan menyesuaikannya dengan kebutuhan spesifik Anda. Ini adalah perintah otomatis yang akan dieksekusi secara otomatis setiap kali Anda meninggalkan buffer untuk buffer pertama, dan ketika Anda memasukkan buffer untuk buffer kedua, tetapi hanya untuk file C. Saya telah menyalinnya dari bantuan :mkviewperintah ( :help :mkview).
Saginaw
1
Menurut bantuan, itu harus mengembalikan lipatan saat menggunakan lipatan manual dan opsi 'viewoptions'berisi folds. Jika Anda ingin perintah otomatis dijalankan untuk tipe file lainnya, Anda dapat mengubah perintah otomatis tersebut. Misalnya, jika Anda ingin menambahkan file python, Anda bisa mengubahnya *.cmenjadi *.c,*.py.
Saginaw
Maaf, saya salah ketika saya mengatakan bahwa perintah otomatis akan dieksekusi setiap kali Anda memasukkan / meninggalkan buffer. Yang pertama akan dieksekusi setelah buffer ditampilkan di jendela, yang kedua akan dieksekusi sebelum buffer dihapus dari jendela.
Saginaw

Jawaban:

6

Saya melakukan ini persis untuk satu file saya merujuk banyak yang NOTES.otlsaya lakukan berikut ini di .vimrc:

" Useful for my Quick Notes feature in my tmuxrc
augroup QuickNotes
  au BufWrite,VimLeave NOTES.otl mkview
  au BufRead           NOTES.otl silent loadview
augroup END

Artinya, dalam kasus Anda, Anda dapat menangani lipatan manual menggunakan perintah :mkviewdan :loadview.

Sukima
sumber