Vim 80 열 레이아웃 문제
Vim에서 80 열 표시 방식이 잘못되었다고 생각 set columns=80
합니다. 때때로 나는 또한 대안으로 set textwidth
라인 오버플로를보고 기대할 수 있기를 set columns
원합니다.
이것은 불행한 부작용이 있습니다 set number
. 줄 번호가 다른 파일을 분할하는 것을 두려워 할 수 없습니다 . 즉, <100 개의 줄 파일과> = 100 개의 줄 파일은 set columns
추가 숫자 표시에 사용되는 추가 열 때문에 두 개의 다른 값 이 필요 합니다. 또한 창을 세로로 나누지 않고 새 (g) Vim 세션을 시작하여 창 관리자의 클립 보드를 사용해야합니다. 창을 열거 나 닫을 때마다 vsplit
강제 set columns
로 새 세션을 시작하는 것이 번거 로움이 없습니다.
set numbers
, 수직 분할 등 을 원할 때 80 자 표시를 어떻게 처리 합니까?
내 .vimrc 에이 설정이 있습니다.
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%81v.\+/
이것은 80 열 제한을 초과하는 텍스트에 대해 미묘한 빨간색으로 배경을 강조 표시합니다 (GUI 모드에서는 미묘하지만 터미널 모드에서는 덜 중요합니다).
vim 7.3부터 set colorcolumn=80
( set cc=80
짧게) 사용할 수 있습니다 .
이전 버전에서는이를 지원하지 않으므로 .vimrc
대신 다음을 사용합니다.
if exists('+colorcolumn')
set colorcolumn=80
else
au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
endif
옵션 에 대한 온라인 설명서colorcolumn
도 참조하십시오 .
더 짧은 방법 :
match ErrorMsg '\%>80v.\+'
나는 선호한다:
highlight ColorColumn ctermbg=gray
set colorcolumn=80
사이먼 하워드의 대답은 훌륭합니다. 그러나 /\%81v.\+/
열 81을 초과하는 탭을 강조 표시하지 못합니다. 그래서 VIM 위키 에서 찾은 내용 과 HS의 색상 선택을 기반으로 약간의 조정을 수행했습니다 .
highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
match OverLength /\%>80v.\+/
그리고 이제 VIM은 열 80을 초과하는 모든 것을 강조 할 것입니다.
최소한의 최고의 접근 방식. 너무 긴 줄의 79 번째 문자 만 강조 표시됩니다. 몇 가지 일반적인 문제를 극복합니다. 새 창에서 작동하고 넘친 단어가 올바르게 강조 표시됩니다.
augroup collumnLimit
autocmd!
autocmd BufEnter,WinEnter,FileType scala,java
\ highlight CollumnLimit ctermbg=DarkGrey guibg=DarkGrey
let collumnLimit = 79 " feel free to customize
let pattern =
\ '\%<' . (collumnLimit+1) . 'v.\%>' . collumnLimit . 'v'
autocmd BufEnter,WinEnter,FileType scala,java
\ let w:m1=matchadd('CollumnLimit', pattern, -1)
augroup END
참고 : FileType scala,java
이것은 Scala 및 Java 소스 파일로 제한됩니다. 아마도 이것을 사용자 정의하고 싶을 것입니다. 생략하면 모든 파일 형식에서 작동합니다.
또한 80 개의 한계를보기 위해 선을 그릴 수 있습니다.
let &colorcolumn=join(range(81,999),",")
let &colorcolumn="80,".join(range(400,999),",")
결과:
지정된 범위를 벗어나는 첫 번째 문자 만 표시하는 좋은 방법입니다.
highlight ColorColumn ctermbg=magenta "set to whatever you like
call matchadd('ColorColumn', '\%81v', 100) "set column nr
Damian Conway의 이야기에서 .
최신 버전의 vim은 :set numberwidth=x
값을 허용 하여 행 번호 표시의 너비를 설정합니다. 나는 실제로 접는 등을 사용하지 않으므로 그것에 대해 알지 못합니다. 얇은 세로선을 그리는 것은 콘솔 응용 프로그램의 기능을 뛰어 넘습니다. GVim은 이것을 허용 할 수 있습니다 (사용하지 않으므로 주석을 달 수 없습니다).
널 세트로 남겨 두는 솔루션 세트에 제한을 두는 것이 두렵습니다.
를 사용 :set textwidth=80
하면 줄 한도를 쉽게 확인할 수 없다는 점 을 제외하고 언급 한 모든 문제가 해결 됩니다. 이 경우 :set ruler
상태 표시 줄에서 x, y 위치 표시를 활성화하여 현재 열을 확인할 수 있습니다.
그 외에도, 당신에게 무엇을 말 해야할지 모르겠습니다. 숫자 열을 잃어 버리고 열을 접고 나누는 것이 부끄러운 일 :set columns=80
입니다.
당신은 이것을 시도 할 수 있습니다 :
au BufWinEnter * if &textwidth > 8
\ | let w:m1=matchadd('MatchParen', printf('\%%<%dv.\%%>%dv', &textwidth+1, &textwidth-8), -1)
\ | let w:m2=matchadd('ErrorMsg', printf('\%%>%dv.\+', &textwidth), -1)
\ | endif
이렇게하면 모든 버퍼에 두 개의 하이라이트가 설정됩니다. 하나 &textwidth
는 설정 하기 전에 8 개의 열에있는 문자에 대한 것이고 다른 하나는 그 열에없는 문자에 대한 것입니다. 그렇게하면 어느 정도의 기대감을 갖게됩니다. 물론 당신이 (예를 들어 열에서 구문 강조 표시의 손실로 지불하는) 예상을 원한다면 다른 너비를 사용하도록 조정할 수 있습니다.
글 : : help 열을 보면 실제로 엉망이되지는 않습니다.
콘솔에서는 일반적으로 콘솔 설정에 의해 결정됩니다 (즉, 자동 감지). GUI에서 gvim 창의 너비를 결정합니다 (및 결정).
따라서 일반적으로 콘솔과 창 관리자가 작업을 수행하도록합니다. set columns
"라인 오버플로 참조 및 예상"의 의미를 잘 모르겠습니다. EOL을 대략 열 80에 삽입하려면 set textwidth
또는 set wrapmargin
;를 사용하십시오 . 소프트 랩을 원할 경우 (즉, 줄 바꿈은되지만 실제 EOL은 없음) set linebreak
and으로 재생하십시오 set showbreak
.
이것은 왼쪽 필드에 없지만 줄 번호가있는 경우 현재 분할을 80 자로 크기를 조정하는 멋진 작은 맵입니다.
" make window 80 + some for numbers wide
noremap <Leader>w :let @w=float2nr(log10(line("$")))+82\|:vertical resize <c-r>w<cr>
실제 텍스트의 80자를 허용하도록 창 크기를 설정할 수 있습니다. 그래도 여전히 세로 분할에서는 작동하지 않습니다.
let &co=80 + &foldcolumn + (&number || &relativenumber ? &numberwidth : 0)
상대 숫자의 경우 vim 7+, 7.3이 필요합니다.
참고 URL : https://stackoverflow.com/questions/235439/vim-80-column-layout-concerns
'development' 카테고리의 다른 글
PHP 스크립트를 어떻게 디버깅합니까? (0) | 2020.02.21 |
---|---|
정의 : HashSet이란 무엇입니까? (0) | 2020.02.21 |
cp 명령으로 파일을 대상에 복사하는 데 필요한 폴더를 작성하는 방법 (0) | 2020.02.20 |
Chrome과 같은 더 나은 브라우저로 .NET WebBrowser 컨트롤을 대체 하시겠습니까? (0) | 2020.02.20 |
프레임 버스터 버스터 ... 버스터 코드 필요 (0) | 2020.02.20 |