답변:
통합 답변 :
listchars를 사용하려고합니다.
:set listchars=tab:\|\
:set list
참고 : 마지막 \
위 뒤에 공백이 있습니다.
이 방법은 Vim의 내장 지원을 사용하여 이런 종류의 것을 보여주기 때문에 좋습니다.
출력 예 :
| if (1) {
| | func();
| }
그러나 선행 공간에서는 작동하지 않습니다. @Josh Petrie가 지적한 것처럼 spaces 용 패치가 있지만 Vim을 다시 컴파일해야합니다.이 답변의 범위를 벗어납니다.
Vaibhav Sagar는 indentLine 플러그인 이이 기능을 수행 한다고 지적했다 .
정상적인 방법으로 설치하고 (플러그인 설치 참조 ) 추가 입력없이 마술처럼 작동하는 것 같습니다. ASCII 막대가 마음에 들지 않으면 글꼴로 아무 작업도 수행 할 필요가 없습니다. 들여 쓰기 설정 및 실행 후 예제 출력 예:IndentLinesReset
45 ¦ var move = function(direction) {
46 ¦ ¦ if(!initialized) { initialize(); }
47
48 ¦ ¦ if(shiftBoard(direction)) {
49 ¦ ¦ ¦ setTimeout(addRandomPiece, 100);
50 ¦ ¦ }
51 ¦ };
플러그인에는 Vim 7.3 이상이 필요하며 해당 버전의 Conceal 기능을 사용할 수 있습니다. 실제로 텍스트를 숨기는 대신 뷰에서 텍스트를 막대로 바꾸지 만 실제 버퍼는 아닙니다. 결과는 막대가 표시되지만 실제로 공백이므로 파일에 저장되지 않습니다.
이 두 가지 방법 모두 "적절하게"들여 쓰기 된 코드를 가정합니다. 그들은 "블록"이 열릴 때 들여 쓰기 레벨을 들여 쓰기 레벨로 배치하지 않고 (들어가는 것처럼 보입니다) 대신 들여 쓰기 설정에 따라 일정한 간격으로 라인을 배치합니다. 또한 실제로 공간이있는 줄에만 막대를 표시합니다 (첫 번째 아래의 vim 출력의 줄에 if
막대가 없으므로 시각적 차이가 발생합니다)
완성을 위해 공백의 색을 번갈아 들여 쓰기 수준을 표시하는 들여 쓰기 가이드 플러그인 도 있습니다. 버전 7.2 이상이 필요합니다. tabstop
및 shiftwidth
변수를 사용하기 때문에 들여 쓰기 설정에 즉시 적용됩니다.
플러그인이 설치되면, 당신은 단순히 사용할 수 있습니다 :IndentGuidesEnable
또는 :IndentGuidesDisable
. 터미널 vim을 사용하는 경우 설명서에 따라
현재 터미널 Vim은 기본 지원 만 제공합니다. 즉, 색상 체계에 따라 색상이 자동으로 계산되지 않습니다. 대신 배경이 어둡거나 밝은 지 여부에 따라 일부 사전 설정 색상이 사용됩니다.
스크린 샷의 가이드 색상을 변경하기 위해 다음을 사용했습니다.
let g:indent_guides_auto_colors=0
버퍼를 교체 할 때 색상이 다시 계산되지 않은 다음
hi IndentGuidesEven ctermbg=238
hi IndentGuidesOdd ctermbg=236
제시된 다른 솔루션과 마찬가지로 공백이있는 줄에 들여 쓰기 가이드 만 표시합니다.
let g:indent_guides_enable_on_vim_startup=1
내 .vimrc에 추가 하여 시작할 때 활성화하십시오.
indentLine 플러그인이 가장 적합 하다는 것을 알았습니다 . 그래도 적절한 기호가있는 글꼴이 필요합니다 .Windows의 Consolas와 Mac OS X의 Menlo가 잘 작동합니다. 위의 통합 답변에서 지적했듯이 (ab) vim의 conceal
기능을 사용하여 올바른 글꼴을 사용하여 수직 막대를 올바른 위치에 배치합니다. 이 솔루션에 매우 만족하지만 단점은 세로 막대가 상자 그리기 글리프의 일부이며 다른 편집기에서와 같이 왼쪽 정렬 대신 중앙 정렬이라는 것입니다. 익숙해졌지만 수동으로 글꼴을 패치하거나 Fantasque Sans Mono 와 같은 글꼴을 사용하여 해결할 수 있습니다 (링크 된 github 저장소의 스크린 샷이 indentLine을 사용하는 방법에 유의하십시오).
indentLine 플러그인은 작은 파일이 아닌 경우 상당히 느리게 진행됩니다. enter를 클릭하면 1 초 정도 지연 될 수 있습니다.
내가 발견 한 VIM-indentguides을 시각적으로 공간 들여 쓰기 대 탭 들여 쓰기를 구별하는 것이 더 빠른 시각적으로 유사한 플러그인이 될 수 있습니다.