2009-12-17 74 views
94

我感興趣的是找到一個方式來顯示,在80列的Vim(不gVim的)一條垂直線。如何在Vim中顯示垂直線以包裝線?

我用set wrap,但我只是想表明一個垂直線,所以我可以換長線自己。

+0

的[Vim的80列布局的擔憂](可能的複製http://stackoverflow.com/questions/235439/vim-80-column-layout-concerns) – 2016-10-21 14:03:02

回答

12

編輯:對於Vim的> = 7.3參見回答below

遺憾的是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被突出。

+0

什麼是? – Will 2013-02-26 22:07:39

+0

領導者密鑰的vim腳本表示。見[顯示當前關鍵設置](http://stackoverflow.com/questions/10389205/show-current-leader-key-setting) – Rod 2013-06-06 13:27:23

+0

@Will,[學習Vimscript的艱難之路](http://learnvimscriptthehardway.stevelosh .com /)是瞭解vim兔子洞的好資源。 – jazzabeanie 2016-09-13 05:52:05

3

幾個答案在這裏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) 
+0

我非常喜歡這個! – 2012-11-14 13:06:52

5

我用match ErrorMsg '\%>80v.\+'將突出超過80個字符什麼與紅色。

我把命令我python.vim和ruby.vim在〜/ vim的/後/文件類型插件/。

265

在新的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 
+3

我認爲這裏很好說明,顏色是由高亮顏色自動確定的,除非您像示例中那樣手動設置顏色。 – 2012-09-18 12:48:49

+0

請注意'highlight'設置必須在任何'colorscheme'命令後設置,因爲這將覆蓋您的高亮顏色。 – c4urself 2013-02-15 18:00:08

+5

我用明亮的,燃燒你的大腦紅色......因爲你知道......線條長度 – 2013-04-30 01:26:16