سؤال

أريد تحديد تعيين في .gvimrc الخاص بي بحيث إذا تم الضغط على المفتاح الأخير، يتم تكرار الإجراء الذي تم تشغيله.على وجه التحديد، أريد أن أفعل شيئا من هذا القبيل

map <SPACE>t :set transparency-=1
map <SPACE>T :set transparency+=1

بالنسبة لـ MacVim، ولكني أريد أن يستمر تقليل/زيادة الشفافية عند الضغط على t/T (لا أريد الاستمرار في الضغط على شريط المسافة).

إذا كان لديك اقتراح لطريقة أفضل لضبط الشفافية، سأكون ممتنًا لذلك أيضًا.

بشكل منفصل، سيكون من الجميل أن تكون قادرًا على الكتابة 20 فضاء ر وانخفضت الشفافية بنسبة 20؛ومع ذلك، عندما أحاول الحصول على

E481: No range allowed.

كيف يمكنني تمكين مواصفات النطاق؟

شكرًا جزيلاً.

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

المحلول

لست متأكدا من الجزء الأول من سؤالك، ولكن للحصول على 20 <Space> ر لتكون قادرة على القيام بعملها:

:map <space>t :<C-U>exe "set transparency-=".v:count1<CR>
  • مع <C-U> تقوم بإزالة نطاق الخط الذي تمت إضافته إلى أمرك السابق عند الكتابة 20 في الوضع العادي.
  • مع exe تقوم بتنفيذ vimscript "الديناميكي".
  • v:count1 هو العدد المعطى لأمر الوضع العادي الأخير (20 في هذا المثال).وإذا لم يكن هناك عدد معين، فسيتم تعيينه افتراضيًا على 1.

للحصول على معلومات إضافية انظر

:h v:count
:h v:count1

تحديث:

يمكنك حذف exe استخدام let شكل بدلا من set واحد:

:map <space>t :<C-U>let &transparency-=v:count1<CR>

يرى :h :let-&.

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