سؤال

أحتاج إلى القيام بأحداث AutoCMD المنطقية والمنطقية في VIM. في الأساس، يجب تشغيل الأمر على AirstressLeave عندما يكون النمط في TEX. يبدو أن هذا يجب أن يعمل (في .vimrc):

autocmd FileType tex :autocmd InsertLeave :w

لكنها لا. لا يبدو أن الخيار المتداخل يساعد أيضا، على الرغم من أن الدليل يشير إلى أنه ينبغي.

من السهل القيام به منطقية أو:

autocmd BufEnter,BufLeave ...

يجب ألا يكون من الصعب جدا القيام بمنطقية و.

هل كانت مفيدة؟

المحلول

لدي تصحيح إلى Evevee Answer: لجعل AutoCommand العمل لعازلة واحدة فقط، يجب عليك استخدام

augroup TexAutoWrite
    autocmd FileType tex :autocmd! TexAutoWrite InsertLeave <buffer> :update
augroup END

, ، انظر `: h autocmd-buflocal.

نصائح أخرى

Insertleave لا يزال يحتاج إلى معلمة.

هذا يعمل بالنسبة لي:

autocmd FileType tex :autocmd InsertLeave * :w

لاحظ أن هذا السلوك سيبقى إذا قمت الآن بتحرير غيرtex ملف في نفس المخزن المؤقت. لست متأكدا مما إذا كانت هناك طريقة بسيطة لإزالتها عند تحرير أي شيء لكن نوع معين من الملف.

يمكنك استخدام خيار نمط AutoCMND.

autocmd InsertLeave *.tex w
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top