سؤال

هل من الممكن وضع علامة على نطاق من النص في Vim وتغيير لون التمييز الخاص به (إلى الأحمر) بدلاً من تحديد نطاق آخر من النص وتغيير هذا اللون (إلى الأخضر) مع الاحتفاظ بالتمييز السابق وما إلى ذلك؟

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

المحلول

وأعتقد أن <م> Txtfmt البرنامج المساعد هو ما كنت تبحث عن ...

Txtfmt (وفيم تمييز)

Txtfmt يوفر نوعا من القدرة على "نص غني" عن نص عادي في فيم. ويتم إنجاز تسليط الضوء عبر الحروف علامة خفية إدراجها مباشرة في المخزن المؤقت، بحيث يتم تسليط الضوء المستمر دون الحاجة إلى تخزين بيانات التعريف وبصرف النظر عن الملف.

وTxtfmt هو شكلي للغاية. الإعدادات الافتراضية تدعم 8 (شكلي) الألوان الأمامية و 8 (شكلي) ألوان الخلفية، وكافة تركيبات جريئة، تؤكد وسمات مائل (على سبيل المثال، جريئة وجريئة، مائل، غامق، تسطير، الخ ...). A التكوين غير الافتراضية يدعم السمات الإضافية التالية: الصدارة، عكس وundercurl

.

وهناك ملف مساعدة واسعة جدا، والمؤلف هو أكثر من سعداء للرد على أسئلة استخدام ...

نصائح أخرى

الأشياء الأساسية التي يجب البدء منها هي:

:hi Green guibg=#33ff33
:syntax region Green start=/\%20l/ end=/\%30l/

ماذا يفعل:

  1. حدد مجموعة التمييز "الأخضر" بلون الخلفية الخضراء.
  2. حدد منطقة بناء الجملة التي يجب تمييزها باستخدام مجموعة التمييز "الأخضر" التي تبدأ من السطر رقم 20 إلى السطر رقم 30.

يمكنك الآن كتابة وظيفة و/أو أمر يأخذ النص المحدد بصريًا ويطبق عليه إحدى مجموعات الألوان المتعددة المحددة مسبقًا.بمجرد حصولك على هذه الوظيفة - اربطها بمفاتيحك:على سبيل المثال \ز للأخضر، \ص للأحمر،

تحديث:

وهنا القليل من vimscript:

function! HighlightRegion(color)
  hi Green guibg=#77ff77
  hi Red guibg=#ff7777
  let l_start = line("'<")
  let l_end = line("'>") + 1
  execute 'syntax region '.a:color.' start=/\%'.l_start.'l/ end=/\%'.l_end.'l/'
endfunction

vnoremap <leader>g :<C-U>call HighlightRegion('Green')<CR>
vnoremap <leader>r :<C-U>call HighlightRegion('Red')<CR>

ملحوظة:

لا يمكن إعادة تطبيق التمييز (من الأخضر إلى الأحمر على سبيل المثال).

وهناك المساعد / النصي دعا العلامة:

<اقتباس فقرة>   

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

http://www.vim.org/scripts/script.php؟ script_id = 1238

ويبدو أن المساعد الأقسام لا ما تريد. بمجرد الحصول على تثبيته، وجعل مجرد اختيار البصرية والصحافة \ م .

وأنا لست على علم بأي حال من الأحوال من القيام بشيء من هذا القبيل لأنه يتطلب تخزين البيانات الوصفية لا علاقة لها المحتوى الفعلي للملف. حتى لو كان فقط في الذاكرة أثناء تشغيل فيم، وأنا لا أعرف من وسيلة للقيام بذلك.

ولا يعني ليست هناك وسيلة منذ معرفتي فيم محدودة. ولكن يبدو وكأنه شيء من شأنه فيم لا.

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