سؤال كيفية إعداد علامة طول الخط في vim / gvim؟


تحتوي بعض برامج تحرير النص GUI على خط عمودي يعمل كمؤشر طول الخط (يساعد في الحفاظ على الخطوط أقصر من 80 حرفًا في ملفات التعليمات البرمجية المصدر).

هل من الممكن الحصول على شيء مشابه في vim / gvim؟ وأنا أعلم عن مسطرة خيار vim ، ولكن ليس من السهل جدا متابعته بصريا على شاشة كبيرة.

تعديل: عند googling لـ "colorcolumn" لمعرفة المزيد ، لقد وجدت أن هذا السؤال هو نسخة مكررة من https://stackoverflow.com/questions/235439/vim-80-column-layout-concerns


69
2018-02-24 13:44


الأصل


مكررة على موقع آخر ... stackoverflow.com/questions/235439/... - Trevor Boyd Smith


الأجوبة:


فقط قم بتنفيذ هذا

:set colorcolumn=72

يمكنك أيضا بادئة الوسيطة مع - أو + لوضع علامة على العديد من الأعمدة إلى اليسار أو اليمين textwidth، ويقبل قائمة من الأعمدة مفصولة بفواصل. اعتقد ان colorcolumn الخيار هو فقط في Vim 7.3. نرى

:help colorcolumn

114
2018-02-24 16:46



نجاح باهر ، vim لا يتوقف عن تدهش لي! - Peter Nore
لطيف! مفيد أيضا عندما columns=80، wrap تم تعيين و colorcolumn=81,161,241,321,401,481,561,641,721,801 - يعرض ما يصل إلى 10 خطوط ملفوفة مع تمييز العمود الأول. - Amir


من داميان كونواي "حديث على نحو أفضل فيم أفضل" في OSCON 2013:

highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)

ينتج عن هذا الحرف الذي يتم تمييزه باللون الأرجواني (لقطة الشاشة موجودة في DarkCyan) عندما يتجاوز الخط 80 حرفًا كحد أقصى.

vim with highlighting enabled

ل gVim: من الأفضل نقل هذه الخطوط 2 إلى الجزء الأخير من الخاص بك .vimrc ملف لضمان العمل.


15
2018-06-21 04:12



هاه! أنا فقط أجبت الخاص بك للغاية سؤال مماثل حول هذا ... عالم صغير! superuser.com/questions/771558/... - lornix
أضع هذا الجواب في ، تذكرت أنني لا يمكن أن تفعل ذلك في gVim ، لذلك سألت. ؛) - Isxek
نجاح باهر، وهذا شيء عظيم حقا! هذا هو نوع الميزة التي لا أعلم حتى أنها تبحث عنها. أنا أستخدم النمط '\$81v\S' الذي يطابق فقط أحرف غير بيضاء. هذا يعني أن التظليل لن يظهر عندما يبلغ طول الخط 80 حرفًا (وهو الشيء الذي أزعجني حقًا). انظر هذا لمزيد من المعلومات stackoverflow.com/questions/12985042/... - fvgs
تريد إجراء بعض التصحيحات على تعليقي السابق. ال $ ينبغي أن يكون %. وبالمثل ، أنا الآن استخدم هذا النمط \%81v. نظرًا لأن هذا يضمن تمييز العمود 81 في أي حرف في العمود 81 ، وهو على الأرجح ما تريده. - fvgs


يمكنك تجربة هذا:

grep '.\{81\}' file

أو

set colorcolumn=80

(أو معادل الاختزال)

set cc=80

أو كما ذكر آنفا:

match ErrorMsg '\%>80v.\+'

2
2018-05-02 07:21





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

يسلط الضوء مع ErrorMsg (عادة أحمر ساطع) أي خطوط تتجاوز 80 حرفًا. يعمل بشكل جيد بالنسبة لي.

function! RemoveWidthLimitWarnigns()
    silent! call matchdelete(4)
endfunction
function! InsertWidthLimitWarnings()
    call RemoveWidthLimitWarnigns()
    call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4)
endfunction

0
2018-02-24 14:26



ما المفترض أن أفعله مع هذا المقتطف؟ مجرد التمسك بها في .vimrc؟ - vtest
تحاول أولا عن طريق الدعوة فقط :call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4) يكفي. ولكني لا أوصي بهذا بعد الآن لأنgrijohn عرف شيئًا أفضل - progo