에서는 또는 로 vim
설정하고 싶습니다 . 하지만 나는 탭에 관심이 없습니다.nbsp
!
·
내 것에는 .vimrc
다음이 있습니다.
set listchars=nbsp:·
set list
그러나 vim 세션을 열면 탭이 여전히 ^I
.
달리기
:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
...오류 없이 실행되며 변경 사항을 볼 수 있습니다.
내가 달리면
:set listchars=nbsp:!,tab:>
또는
:set listchars=nbsp:!,tab:
알겠어요
E474: Argument invalide: listchars=nbsp:!,tab:>
여기서 무슨 일이 일어나고 있는 걸까요? listchars
Vim에서 탭을 강조 표시하지 않고 강조 표시만 하도록 어떻게 설정할 수 있나요 nbsp
?
달리기VIM - Vi IMproved 7.4
답변1
문제는 ^I
Vim 방식이아니요탭 문자가 표시되는 이유는 필요한 탭이 a처럼 파일에 저장되어 있고 Vim이 Ctrl 문자 기호를 나타내는 방식이기 때문입니다 Ctrl+I
.^I
탭이 사용될 때만 공백으로 표시되도록 하려면 :set list
아래에서 그렇게 하도록 설정해야 합니다 'listchars'
. (항목에 2~3개의 문자가 필요하므로 공백이 2개 필요하다는 점에 유의하세요 tab:
.) 물론 트릭이 있습니다. 공백은 일반적 :set
으로 명령의 구분 기호이므로 백슬래시를 사용하여 이스케이프 처리해야 합니다.
이것은 작동합니다:
set listchars=tab:\ \ ,nbsp:·
tab:\ \
옵션 끝에 를 추가할 수도 있지만 후행 공백이 약간 어색해 보일 수 있습니다.
또 다른 옵션은 :let
옵션 값에 액세스하기 위한 구문을 사용하여 설정하는 것입니다.&
let &listchars = 'tab: ,nbsp:·'
두 번째 접근 방식의 한 가지 장점은 nbsp의 중간점과 같이 문자열의 특수 문자에 대해 문자열 이스케이프 시퀀스를 사용할 수도 있다는 것입니다.
let &listchars = "tab: ,nbsp:\xb7"
(단순한 기본 ASCII 문자만 사용하여 vimrc 또는 그 조각을 보존하려는 경우, 예를 들어 복사 및 붙여넣기를 사용하여 이러한 조각을 다른 시스템으로 전송할 때 서식 및 공백을 보존하는 것이 걱정되는 경우에 이는 이점이 될 수 있습니다. 요즘에는 대규모로 대부분의 경우 원격으로 연결하는 것은 큰 문제가 아니지만, 그래도 언급해야겠다고 생각했습니다.)