vim / gvim에서 줄 길이 마커를 설정하는 방법은 무엇입니까?


75

일부 GUI 텍스트 편집기에는 줄 길이 표시 자 역할을하는 세로 줄이 있습니다 (소스 코드 파일에서 줄을 80 자 미만으로 유지하는 데 도움이 됨).

vim / gvim에서 비슷한 것을 가질 수 있습니까? ruler vim 옵션 에 대해 알고 있지만 큰 화면에서 시각적으로 따르는 것이 그리 편리하지 않습니다.

편집 : "colorcolumn"에 대한 인터넷 검색을 할 때이 질문은 https://stackoverflow.com/questions/235439/vim-80-column-layout-concerns 의 사본이라는 것을 알았습니다.


답변:


131

그냥 이것을 실행

:set colorcolumn=72

당신은 또한에 인수를 앞에 수 있습니다 -또는 +왼쪽이나 오른쪽에 많은 열이있는 마커를 넣어 textwidth, 그것은 열을 쉼표로 구분 된 목록을 받아들입니다. colorcolumn옵션이 Vim 7.3에만 있다고 생각합니다 . 보다

:help colorcolumn

8
와우, vim은 결코 나를 놀라게하지 않습니다!
피터 노어

4
좋은! columns=80, wrap가 설정되고 colorcolumn=81,161,241,321,401,481,561,641,721,801– 첫 번째 열이 강조 표시된 최대 10 개의 줄 바꿈을 표시하는 경우에도 유용합니다 .
Amir

20

OSCON 2013에서 열린 Damian Conway의 "More Instantly Better Vim"이야기 :

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

이로 인해 DarkCyan줄이 최대 80 자 이상이되면 문자가 자홍색으로 강조 표시됩니다 (스크린 샷은 ).

강조 표시가 활성화 된 vim

gVim의 경우 : 2 줄을.vimrc 파일 의 마지막 부분 으로 이동하여 작동하는지 확인하는 것이 가장 좋습니다.


응! 나는 이것에 대한 당신의 매우 비슷한 질문에 대답 했습니다 ... 작은 세계! superuser.com/questions/771558/…
lornix 2018 년

이 답변을 넣은 다음 gVim에서 할 수 없다는 것을 기억하여 물었습니다. ;)
Isxek

와, 정말 대단해! 이것은 내가 알지도 못하는 종류의 기능입니다. '\$81v\S'공백이 아닌 문자와 만 일치 하는 패턴 을 사용하고 있습니다. 이것은 줄이 정확히 80 자일 때 하이라이트가 표시되지 않음을 의미합니다 (실제로 나를 괴롭힌 것입니다). 자세한 내용은 이것을 참조하십시오 stackoverflow.com/questions/12985042/…
fvgs

1
내 이전 의견을 몇 가지 수정하고 싶습니다. 는 $를 있었어야 %. 마찬가지로, \%81v.81 번째 열이 81 번째 열의 모든 문자에 대해 강조 표시 되므로 패턴을 사용합니다 .
fvgs

2

당신은 이것을 시도 할 수 있습니다 :

grep '.\{81\}' file

또는

set colorcolumn=80

(또는 속기)

set cc=80

또는 전술 한 바와 같이 :

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

0

다음은 Kim Schultz 의 최신 Vim 편집기를 최대한 활용하는 Hacking Vim : A Cookbook 의 서투른 트릭입니다 .

ErrorMsg80자를 초과하는 줄을 강조 표시합니다 (보통 밝은 빨간색). 나를 위해 잘 작동합니다.

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

이 스 니펫으로 무엇을해야합니까? .vimrc에 붙이시겠습니까?
vtest

전화 :call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4)하면 충분합니다. 그러나 @garyjohn이 더 나은 것을 알고 있기 때문에 더 이상 권장하지 않습니다.
unperson325680
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.