때로는 탭을 사용하는 스타일이 인기 있는 다른 소스 코드를 편집하기도 합니다. 이 경우 리터럴 탭을 사용하는 기존 규칙을 유지하고 싶습니다.
대신 내가 직접 만든 파일과 기본 들여쓰기 스타일로 공백을 사용하는 파일에 이 방법을 사용하고 싶습니다.
vim에서 어떻게 할 수 있나요?
답변1
~/.vimrc
공백/탭의 적절한 사용을 조정하기 위해 파일에서 다음과 같은 것을 사용할 수 있습니다 .
" By default, use spaced tabs.
set expandtab
" Display tabs as 4 spaces wide. When expandtab is set, use 4 spaces.
set shiftwidth=4
set tabstop=4
function TabsOrSpaces()
" Determines whether to use spaces or tabs on the current buffer.
if getfsize(bufname("%")) > 256000
" File is very large, just use the default.
return
endif
let numTabs=len(filter(getbufline(bufname("%"), 1, 250), 'v:val =~ "^\\t"'))
let numSpaces=len(filter(getbufline(bufname("%"), 1, 250), 'v:val =~ "^ "'))
if numTabs > numSpaces
setlocal noexpandtab
endif
endfunction
" Call the function after opening a buffer
autocmd BufReadPost * call TabsOrSpaces()
답변2
예를 들어 다양한 플러그인이 있습니다(내 플러그인부터 시작):
- 내 들여쓰기 일관성 경찰버퍼의 들여쓰기를 확인하고 들여쓰기 폭과 사용된 방법을 분석한다. 충돌이 있거나 탭과 공백의 잘못된 조합이 발견되면 경고를 표시하고 친절한 경찰관처럼 위반자를 찾는 데 도움을 줍니다. >
- 들여쓰기 찾기로드된 버퍼를 검색하고 적절한 들여쓰기 설정을 구성하는 Python 스크립트 및 Vim 플러그인입니다.
- yaifa.vim위의 vimscript 포트입니다.
- 들여쓰기 감지.vim작성자: Ciaran McCreesh 들여쓰기 설정을 자동으로 감지하려고 시도 중
- 들여쓰기 추측detectorindent.vim 기반
- 들여쓰기 감지.vim 작성자: Eric Van Dewoestine 간단한 탐지를 수행하고 파일 사양에 따라 기본값을 설정할 수 있습니다.
- indent.vim과 일치탭, 2 및 4 공백 들여쓰기를 감지하고 그에 따라 들여쓰기 설정을 조정합니다.
- 빔 형사작성자: Tim Pope 자동으로 "shiftwidth" 및 "tabstop"을 경험적으로 조정하거나(오류나 일관되지 않은 들여쓰기를 확인하지 않고 간단한 샘플링을 통해) 또는 동일한 유형의 다른 파일을 확인하여 조정합니다.
- 파일 스타일'expandtab'을 설정하면 탭, 후행 공백 및 'textwidth'보다 긴 줄이 강조 표시되지만 실제로 들여쓰기 일관성을 확인하지는 않습니다.
- 전시공간각 버퍼/파일 형식의 들여쓰기 내 공백을 강조 표시합니다.
- 압입 감지기파일을 열거나 쓸 때 실행할 때 탭/공백 혼합 들여쓰기에 대한 경고가 표시되며 이에 따라 Vim의 옵션이 자동으로 조정될 수 있습니다.
답변3
이전에 출시된 플러그인 중 하나는 일반적인 사용에 적합해야 합니다.
그러나 공유 프로젝트를 개발하는 경우 사람들은 다음을 사용할 수 있습니다.다른편집한 다음 사용하는 것이 좋습니다..editorconfig
모든 편집자 간에 구성을 공유하는 파일입니다. 예를 들어:
[*]
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
이것은 꽤 잘 알려진 표준입니다. 일부 편집자는 기본적으로 이를 존중하지만 다른 편집자는 플러그인이 필요합니다. 이것은 Vim용 플러그인입니다:
https://github.com/editorconfig/editorconfig-vim
이 플러그인을 설치한 후에는 다른 사람의 프로젝트에 참여할 수 있었고 내 편집자는 새 파일에서도 즉시 형식 지정 규칙을 존중한다는 사실을 알게 되었습니다.
파일 을 생성하면 .editorconfig
다른 사람이 내 프로젝트를 더 쉽게 열 수 있습니다.