Saya membuat beberapa augroup
di saya .vimrc
mengandung autocmd
dan saya harus mengaktifkan / menonaktifkan ini autocommand
dengan cepat.
Idenya adalah untuk membuat pemetaan (katakanlah F4misalnya) yang akan mengaktifkan perintah otomatis ini ketika ditekan sekali dan menonaktifkannya ketika ditekan lagi tanpa harus sumber file atau memuat ulang .vimrc
.
Bagaimana saya bisa melakukan itu?
key-bindings
autocmd
statox
sumber
sumber
else
cabang, dengan menjalankanautocmd!
tanpa syarat di awal.exists('#TestAutoGroup#BufEnter')
kembali setelah suatuautocmd!
?(Saya benar-benar menemukan jawabannya sendiri tetapi karena saya tidak menemukan jawaban di situs ini, saya pikir itu bisa berguna untuk membuat pertanyaan yang dijawab sendiri )
Untuk melakukannya dimungkinkan untuk membuat fungsi berikut dan meletakkannya di
.vimrc
:Fungsi membuat variabel yang digunakan untuk menentukan apakah grup itu sebelumnya diaktifkan atau tidak.
Ketika tidak diaktifkan, grup tersebut diisi dengan perintah otomatis yang diinginkan. Jika grup sebelumnya diaktifkan, kami menggunakan
autocmd!
"reset" yaitu menghapus perintah yang sebelumnya dimasukkan di dalamnya.Dokumentasi yang relevan ada di sini
Akhirnya dimungkinkan untuk membuat pemetaan berikut:
digunakan F4untuk memanggil fungsi.
EDIT : Karl Yngve Lervåg menyarankan versi yang ditingkatkan dari fungsi ini yang mengurangi jumlah baris kode, saya merasa akan lebih baik untuk menjaga kedua versi yang pertama tetap berfungsi mungkin lebih mudah dimengerti oleh debutan vimcript seperti saya.
Inilah fungsi Karl yang ditingkatkan, terima kasih banyak padanya:
Dalam versi ini grup ini selalu diatur ulang, dan jika tidak diaktifkan, ia diisi dengan perintah otomatis yang diinginkan
sumber
Saya menemukan cara mudah adalah dengan menggunakan variabel global. Contoh:
Untuk bantuan lebih lanjut lihat:
sumber