วิธีการแสดงเส้นแนวตั้งเพื่อตัดเส้นใน Vim?


117

ฉันสนใจที่จะหาวิธีแสดงเส้นแนวตั้งที่คอลัมน์ 80 ใน Vim (ไม่ใช่ GVim)

ฉันเคยใช้set wrapแต่ฉันแค่ต้องการแสดงเส้นแนวตั้งเพื่อที่ฉันจะได้พันเส้นยาวด้วยตัวเอง


คำตอบ:


15

แก้ไข: สำหรับกลุ่ม> = 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 คอลัมน์


การแสดงสคริปต์กลุ่มของคีย์ผู้นำ ดูแสดงการตั้งค่าคีย์ <leader> ปัจจุบัน
ก้าน

@ จะเรียนรู้ Vimscript the Hard Wayเป็นแหล่งข้อมูลที่ดีในการเรียนรู้เกี่ยวกับ vim rabbit hole
jazzabeanie

310

ใหม่ใน 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

4
ฉันคิดว่ามันเป็นการดีที่จะสังเกตว่าที่นี่สีจะถูกกำหนดโดยสีไฮไลต์ของคุณโดยอัตโนมัติเว้นแต่คุณจะตั้งค่าด้วยตนเองดังในตัวอย่าง
Alex Hart

โปรดทราบว่าhighlightต้องตั้งค่าหลังจากcolorschemeคำสั่งใด ๆซึ่งจะแทนที่สีไฮไลต์ของคุณ
c4urself

7
ฉันไปด้วยความสดใสเผาสมองของคุณแดง ... 'ทำให้คุณรู้ ... ความยาวบรรทัด
Ron Dahlgren

คุณรู้วิธีที่จะมีสองสีที่แตกต่างกันสำหรับคอลัมน์สีหรือไม่? ฉันต้องการมีสองตัว: แบบธรรมดาที่ 80 ตัวอักษรสำหรับโค้ดและอันที่จางมากที่ 72 ตัวอักษรสำหรับข้อความ / ความคิดเห็นที่ต่อเนื่อง
Alice

มันจะเป็นการดีที่จะพูดถึงสิ่งที่textwidthทำให้เกิดการรวมกลุ่มเมื่อคุณกำลังพิมพ์
ลูกไก่



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.