Câu trả lời:
Chỉnh sửa: Đối với Vim> = 7.3 xem câu trả lời bên dưới .
Thật không may, vim không có cơ chế để hiển thị một dòng dọc sau một cột như bạn muốn (không giống như TextMate). Tuy nhiên, có các chỉ báo trực quan thay thế mà bạn có thể sử dụng để cho biết một dòng quá dài.
Đây là những gì tôi sử dụng (bạn có thể đưa cái này vào của bạn .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
Vì vậy, bạn có thể sử dụng <Leader>H
để chuyển đổi các cột trên 80 được đánh dấu.
Điểm mới trong Vim 7.3:
'colorcolumn' là danh sách các cột màn hình được phân tách bằng dấu phẩy được đánh dấu bằng ColorColumn. Hữu ích để căn chỉnh văn bản. Sẽ làm cho việc vẽ lại màn hình chậm hơn. Cột màn hình có thể là một số tuyệt đối hoặc một số đứng trước dấu '+' hoặc '-', được thêm vào hoặc trừ đi từ 'độ rộng văn bản'.
Ví dụ từ tài liệu:
:set colorcolumn=+1 " highlight column after 'textwidth'
:set colorcolumn=+1,+2,+3 " highlight three columns after 'textwidth'
:highlight ColorColumn ctermbg=lightgrey guibg=lightgrey
Bạn cũng có thể sử dụng số tuyệt đối:
:set colorcolumn=80
highlight
cài đặt phải được đặt sau bất kỳcolorscheme
lệnh vì điều đó sẽ ghi đè màu tô sáng của bạn.
textwidth
cũng gây ra vim quấn khi bạn đang gõ.
Có một cách khác để thông báo về hàng dài.
đánh dấu OverLength ctermbg = red ctermfg = white guibg = # 592929
match OverLength /\%81v.*/
Tôi sử dụng match ErrorMsg '\%>80v.\+'
sẽ làm nổi bật bất kỳ thứ gì trên 80 ký tự với màu đỏ.
Tôi đặt lệnh đó trong python.vim và ruby.vim của mình dưới ~ / .vim / after / ftplugin /.
Một số câu trả lời ở đây http://vim.wikia.com/wiki/Highlight_long_lines autocommand đơn giản
:au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1)
:au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)