ฉันสนใจที่จะหาวิธีแสดงเส้นแนวตั้งที่คอลัมน์ 80 ใน Vim (ไม่ใช่ GVim)
ฉันเคยใช้set wrap
แต่ฉันแค่ต้องการแสดงเส้นแนวตั้งเพื่อที่ฉันจะได้พันเส้นยาวด้วยตัวเอง
ฉันสนใจที่จะหาวิธีแสดงเส้นแนวตั้งที่คอลัมน์ 80 ใน Vim (ไม่ใช่ GVim)
ฉันเคยใช้set wrap
แต่ฉันแค่ต้องการแสดงเส้นแนวตั้งเพื่อที่ฉันจะได้พันเส้นยาวด้วยตัวเอง
คำตอบ:
แก้ไข: สำหรับกลุ่ม> = 7.3 ดูคำตอบด้านล่าง
น่าเสียดายที่ vim ไม่มีกลไกในการแสดงเส้นแนวตั้งหลังคอลัมน์อย่างที่คุณต้องการ (ไม่เหมือนกับ TextMate) อย่างไรก็ตามมีตัวบ่งชี้ภาพทางเลือกอื่นที่คุณสามารถใช้เพื่อแสดงว่าบรรทัดยาวเกินไป
นี่คือสิ่งที่ฉันใช้ (คุณสามารถใส่ไว้ในของคุณได้.vimrc
):
nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr>
hi OverLength ctermbg=none cterm=none
match OverLength /\%>80v/
fun! s:LongLineHLToggle()
if !exists('w:longlinehl')
let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0)
echo "Long lines highlighted"
else
call matchdelete(w:longlinehl)
unl w:longlinehl
echo "Long lines unhighlighted"
endif
endfunction
ดังนั้นคุณสามารถใช้<Leader>H
เพื่อสลับคอลัมน์ที่มีการไฮไลต์มากกว่า 80 คอลัมน์
ใหม่ใน Vim 7.3:
'colorcolumn' คือรายการคอลัมน์หน้าจอที่คั่นด้วยเครื่องหมายจุลภาคซึ่งไฮไลต์ด้วย ColorColumn มีประโยชน์ในการจัดแนวข้อความ จะทำให้การวาดหน้าจอใหม่ช้าลง คอลัมน์หน้าจออาจเป็นตัวเลขสัมบูรณ์หรือตัวเลขที่นำหน้าด้วย "+" หรือ "-" ซึ่งเพิ่มหรือลบออกจาก "ความกว้างข้อความ"
ตัวอย่างจากเอกสาร:
:set colorcolumn=+1 " highlight column after 'textwidth'
:set colorcolumn=+1,+2,+3 " highlight three columns after 'textwidth'
:highlight ColorColumn ctermbg=lightgrey guibg=lightgrey
คุณสามารถใช้ตัวเลขที่แน่นอนได้เช่นกัน:
:set colorcolumn=80
highlight
ต้องตั้งค่าหลังจากcolorscheme
คำสั่งใด ๆซึ่งจะแทนที่สีไฮไลต์ของคุณ
textwidth
ทำให้เกิดการรวมกลุ่มเมื่อคุณกำลังพิมพ์
มีอีกวิธีหนึ่งในการแจ้งเตือนเกี่ยวกับสายยาว
ไฮไลต์ OverLength ctermbg = ctermfg สีแดง = guibg สีขาว = # 592929
จับคู่ OverLength /\%81v.*/
ฉันใช้match ErrorMsg '\%>80v.\+'
ซึ่งจะเน้นอะไรมากกว่า 80 ตัวอักษรด้วยสีแดง
ฉันใส่คำสั่งนั้นใน python.vim และ ruby.vim ภายใต้ ~ / .vim / after / ftplugin /
คำตอบมากมายที่นี่http://vim.wikia.com/wiki/Highlight_long_linesคำสั่งอัตโนมัติแบบง่ายๆ
:au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1)
:au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)