탭을 문자로 표시


119

파이썬에서 파일을 작업 할 때 때로는 공백으로 탭을 착각하거나 그 반대의 경우도 있습니다. Vim이 탭 대신 탭의 문자를 표시하는 방법이 있습니까?


참고로, retab파일을 저장할 때마다 모든 탭을 공백으로 변환하도록 구성 할 수 있습니다 .
0xc0de

vim-faq를 설치 한 경우 오프라인 답변을 얻을 수 있습니다 : :h vim-faq및 검색 /invisible. 기억하기 어려운 태그는 :h faq-19.8입니다.
Hotschke

답변:


119

예, listchars를 사용하십시오.

set list
set listchars=tab:>-

이 두 줄을 .vimrc에 넣으면 >시작 위치와 -나머지 탭을 통해 탭이 표시됩니다.

(Sidenote : listchars는 후행 공백을 표시 할 수도 있습니다 trail:x( 후행 공백 x에 사용하려는 문자로 대체 ).


6
참고 : 사용 set listchars=tab:!·,trail:·하고 싶습니다 . IMHO ·는 다음보다 훨씬 더 명확합니다 -. btw (정확하게는 7.3.x라고 생각합니다)를 작동 시키려면 상당히 최근의 Vim 버전이 필요합니다 ...
Martin Tournoij

8
유니 코드 문자 는보다 약간 작으므로 유니 코드 문자 를 사용하는 것이 좋습니다 >. 현재 나는 eol을 표시하여 후행 공백을 봅니다 (위의 시도를 할 수도 있음). 내 설정은 다음 set listchars=eol:¬,tab:▸\ 과 같습니다.
Martin York

58

기본 답변은 :set list입니다. 그러면 탭이로 표시됩니다 ^I.

그러나 나는 그 이상을 권장합니다. 그냥 :set list이 화면에 시각적 정렬을 유지하는 데 실패한다는 점에서 문제가있다. 예를 들면 다음과 같습니다.

%.o: %.cpp
^Ig++ -c $<

당신이 예상 특히, 잘 보이지 않는 g의이 g++첫 번째 아래에 표시 pcpp(가정 tabstop=8).

따라서, 당신의 제안 .vimrc이 같은 것을 넣어 :set listchars=tab:␉· (명확하게하려면, 즉 유니 코드 문자의 수평 표 작성을위한 U가 + 2409 SYMBOL 다음에 U + 00B7 MIDDLE DOT ).

에서 설명했듯이 시각적 정렬이 유지되도록 :help listchars하는 두 문자 설정입니다 tab:xy.

tab:xy        Two characters to be used to show a tab.  The first
              char is used once.  The second char is repeated to
              fill the space that the tab normally occupies.
              "tab:>-" will show a tab that takes four spaces as
              ">---".  When omitted, a tab is show as ^I.

위의 예는 다음과 같이 화면에 나타납니다.

%.o: %.cpp
␉·······g++ -c $<

개인적으로, 나는 내 모든 것을 다 사용합니다 listchars.

:set listchars=eol:⏎,tab:␉·,trail:␠,nbsp:⎵

이 문자들은 문자 그대로 문서 텍스트에 거의 나타나지 않을 정도로 독특합니다.

이 특수 문자를에 입력하려면에 설명 된대로 삽입 모드에서 vimrc입력 Ctrl-vu23CE하십시오 :help utf-8-typing.


2
참조set lcs=tab:├─
SCH

이것은 단지 나에게? eol
WendyG

14

강조 표시 탭

임시 Tab하이라이트

가끔 사용하려면 다음 검색 /명령을 사용하여 문서의 모든 탭을 강조 표시하면됩니다 .

/\t

강조 표시를 제거하려면 간단히 높은 조명 :noh이없는 짧게 입력하십시오 :nohlsearch.

영구 Tab강조

" Highlight tabs as errors.
" https://vi.stackexchange.com/a/9353/3168
match Error /\t/

vim에서 탭 강조 표시

더 강조

후행 공백과 함께 사용하고이를 영구적으로 만드는 등의 유용한 강조 명령에 대한 자세한 내용은 Vim 위키를 참조하십시오 .


4
또한 :match Error /\t/검색 레지스터 및 hlsearch (탭 :match을 지우려면 입력)와 독립적으로 탭 (또는 해당 사항의 다른 패턴)을 강조 표시 하는 데 사용할 수 있습니다 .
Martin Tournoij

1
@Carpetsmoker 원치 않는 공간을 강조하는 것에 대해 Vim 위키 에서 유용한 강조 표시 명령 (후행 공백과 함께 포함!)을 훨씬 더 많이 찾을 수 있습니다 .
Stroobandt Serge

9

필자는 개인적 으로 들여 쓰기 수준에서 세로 줄을 표시하는 플러그인 indentLine 사용을 좋아합니다 .

들여 쓰기가 중요한 파이썬에서는 특히 큰 도움이됩니다.

(위의 링크에서 가져온 이미지)

무엇보다도 키 조합에 매핑 할 수있는 토글 명령을 제공하므로 필요할 때 끌 수 있습니다.


2
나는이 플러그인이 공백 들여 쓰기를위한 것이라고 생각합니까?
Jake Byman

5

일반 터미널과 gvim에서 탭을 다르게 표시 할 수 있습니다.

set list!
if has('gui_running')
    set listchars=tab:▶\ ,trail:·,extends:\#,nbsp:.
else
    set listchars=tab:>.,trail:.,extends:\#,nbsp:.
endif

(다른 사람들이 유용하다고 생각하는 경우 완전성을 추가 함).


4

가장 쉬운 방법은 :set list탭을 표시 ^I하고 행 끝을 표시하는 것 $입니다.

호출하는 매핑을 사용하고 싶습니다

:set invlist 

일반 표시와 목록 표시간에 전환합니다.

예를 들면 다음과 같습니다.

:nmap <leader>l :set invlist<cr>

이를 통해 탭 대 공간 문제가 있는지 빠르게 확인한 다음 일반 디스플레이로 돌아갈 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.