etc./StackOverFlow

탭을 4칸으로 재정의

청렴결백한 만능 재주꾼 2023. 4. 30. 00:08
반응형

질문자 :Ricky


현재 설정은 8칸으로 가정합니다. 어떻게 재정의할 수 있습니까?



그것은 당신이 의미하는 바에 달려 있습니다. 파일의 실제 탭 문자 4칸 너비로 나타나도록 하시겠습니까, 아니면 "탭"이란 실제로 탭 키를 눌러 생성된 들여쓰기를 의미합니까? 입력하는 각 "탭"?

답변에 따라 다음 설정 중 하나가 적합합니다.

  • 4칸 너비로 나타나는 탭 문자의 경우 :

     set tabstop=4

    소스 코드에서 실제 탭 문자를 사용하는 경우 다음 설정도 원할 것입니다(실제로 기본값이지만 방어적으로 설정할 수 있음).

     set softtabstop=0 noexpandtab

    마지막으로 들여쓰기가 단일 탭에 해당하도록 하려면 다음도 사용해야 합니다.

     set shiftwidth=4
  • 4개의 공백 문자로 구성 되지만 탭 키로 입력되는 들여쓰기의 경우:

     set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab

위의 설정을 영구적으로 만들려면 다음 행을 vimrc 에 추가하십시오.

조정이 필요하거나 이러한 옵션이 모두 의미하는 바를 간단히 이해하려는 경우 각 옵션이 의미하는 바에 대한 분석은 다음과 같습니다.

tabstop

"공백"으로 측정된 하드 탭 스톱의 너비 -- 사실상 실제 탭 문자의 (최대) 너비입니다.

shiftwidth

"들여쓰기"의 크기입니다. 또한 공백으로 측정되므로 코드 기반이 탭 문자로 들여쓰기되면 shiftwidth 가 탭 문자 수에 tabstop 을 곱한 것과 같게 하고 싶습니다. = , >< 명령과 같은 것들에서도 사용됩니다.

softtabstop

tabstop 이외의 0이 아닌 값으로 설정하면 탭 키(삽입 모드에서)가 이 너비에서 탭 중지 를 시뮬레이트 하기 위해 공백(및 탭 가능) 조합을 삽입하게 됩니다.

expandtab

이것을 활성화하면 탭 키(삽입 모드에서)가 탭 문자 대신 공백을 삽입합니다. retab 명령의 동작에도 영향을 줍니다.

smarttab

이것을 활성화하면 커서가 행의 시작 부분에 있을 때 탭 키(삽입 모드에서)가 공백이나 탭을 삽입하여 다음 탭 정지의 다음 들여쓰기로 이동합니다(즉, 선행 문자만 공백임).

이들 중 하나에 대한 자세한 내용은 vim의 :help ' optionname ' :help 'tabstop' )을 참조하십시오.


Laurence Gonsalves

현재 사용자에 대해 이를 영구적으로 정의하려면 .vimrc 파일을 생성(또는 편집)하십시오:

 $ vim ~/.vimrc

그런 다음 아래 구성을 파일에 붙여넣습니다. vim이 다시 시작되면 탭 설정이 적용됩니다.

 set tabstop=4 " The width of a TAB is set to 4. " Still it is a \t. It is just that " Vim will interpret it to be having " a width of 4. set shiftwidth=4 " Indents will have a width of 4 set softtabstop=4 " Sets the number of columns for a TAB set expandtab " Expand TABs to spaces

Alan Haggai Alavi

또는 vim modeline의 약어:

 vim :set ts=4 sw=4 sts=4 et :

zen

공백 또는 탭을 사용할지 여부를 정의하는 설정은 거의 없습니다.

~/.vimrc 파일에 정의할 수 있는 편리한 기능입니다.

 function! UseTabs() set tabstop=4 " Size of a hard tabstop (ts). set shiftwidth=4 " Size of an indentation (sw). set noexpandtab " Always uses tabs instead of space characters (noet). set autoindent " Copy indent from current line when starting a new line (ai). endfunction function! UseSpaces() set tabstop=2 " Size of a hard tabstop (ts). set shiftwidth=2 " Size of an indentation (sw). set expandtab " Always uses spaces instead of tab characters (et). set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts). set autoindent " Copy indent from current line when starting a new line. set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts). endfunction

용법:

 :call UseTabs() :call UseSpaces()

파일 확장자별로 사용하려면 다음 구문을 사용할 수 있습니다( .vimrc 추가됨).

 au! BufWrite,FileWritePre *.module,*.install call UseSpaces()

참조: 탭을 공백으로 변환 .


다음은 탭과 공백 사이 를 전환하는 데 사용할 수 있는 Wikia의 또 다른 스니펫입니다.

 " virtual tabstops using spaces set shiftwidth=4 set softtabstop=4 set expandtab " allow toggling between local and default mode function TabToggle() if &expandtab set shiftwidth=8 set softtabstop=0 set noexpandtab else set shiftwidth=4 set softtabstop=4 set expandtab endif endfunction nmap <F9> mz:execute TabToggle()<CR>'z

모든 탭에 4개의 공백을 사용하고 설정을 토글 하기 위해 F9에 매핑할 수 있습니다.


kenorb

이것을 복사하여 .vimrc 파일에 붙여넣었습니다.

 " size of a hard tabstop set tabstop=4 " always uses spaces instead of tab characters set expandtab " size of an "indent" set shiftwidth=4

처음 2개의 설정은 Tab 키를 누를 때 4개의 공백이 있음을 의미합니다. 세 번째 설정은 V> (즉, 시각적 및 들여쓰기)를 수행할 때 4개의 공백도 얻는다는 것을 의미합니다.

허용되는 답변만큼 포괄적이지는 않지만 복사하여 붙여넣기를 원하는 사람들에게 도움이 될 수 있습니다.


Snowcrash

~/.vimrc 파일에 원하는 설정을 넣으십시오 -- 몇 가지 지침과 모범 사례는 아래를 참조하십시오.

Vim에서 탭을 사용하는 네 가지 주요 방법이 있습니다.

  1. 항상 'tabstop'을 8로 유지하고 'softtabstop'과 'shiftwidth'를 4(또는 3 또는 원하는 대로)로 설정하고 'noexpandtab'을 사용하십시오. 그러면 Vim은 탭과 공백을 혼합하여 사용하지만 를 입력하면 4자(또는 3자)마다 탭이 표시되는 것처럼 작동합니다.

    참고: 'tabstop'을 8이 아닌 다른 값으로 설정하면 파일이 여러 위치에서 잘못 표시될 수 있습니다(예: 인쇄할 때).

  2. 'tabstop'과 'shiftwidth'를 원하는 대로 설정하고 'expandtab'을 사용하세요. 이렇게 하면 항상 공백이 삽입됩니다. 'tabstop'이 변경되면 형식이 엉망이 되지 않습니다.

  3. 'tabstop'과 'shiftwidth'를 원하는 대로 설정하고 |modeline|을 사용하세요. 파일을 다시 편집할 때 이 값을 설정합니다. Vim을 사용하여 파일을 편집할 때만 작동합니다.

  4. 항상 'tabstop'과 'shiftwidth'를 같은 값으로 설정하고 'noexpandtab'을 설정하십시오. 그러면 사람들이 사용하는 모든 탭 스톱 설정에 대해 작동해야 합니다(초기 들여쓰기에만 해당). 그래도 이렇게 하면 공백이 아닌 첫 번째 탭 뒤에 공백이 삽입되는 것이 좋을 수 있습니다. 그렇지 않으면 'tabstop'이 변경될 때 정렬된 주석이 잘못됩니다.

원천:


ElasticThoughts

한 가지 더, 사용
:retab
기존 탭공백 으로 변환하려면 http://vim.wikia.com/wiki/Converting_tabs_to_spaces


DawnSong

라인 추가
set ts=4
~에
사용자별 ~/.vimrc
또는
시스템 전체에 대한 /etc/vimrc


Alok Singh Mahor

:set sw=4

VI 편집기 마스터하기 참조


Amarghosh

내 기본 ~/.vimrc와 주석:

 set number " show line number set tabstop=2 " set display width of tab; 1 tab = x space with set expandtab " transform tab to x space (x is tabstop) set autoindent " auto indent; new line with number of space at the beginning same as previous set shiftwidth=2 " number of space append to lines when type >>

o0omycomputero0o

모든 사용자에게 영구적입니다(서버에 혼자 있는 경우):

 # echo "set tabstop=4" >> /etc/vim/vimrc

구성 파일에 설정을 추가합니다. 일반적으로 새 서버에서는 apt-get purge nano mc 및 기타 모든 것을 사용합니다. git , crontab 등에서 편집기를 재정의하게 됩니다.


Vasilii Suricov

vartabstop 이 설정되지 않았는지 확인하십시오.

 set vartabstop=

tabstop 을 4로 설정

 set tabstop=4

Vivian De Smedt

출처 : http:www.stackoverflow.com/questions/1878974/redefine-tab-as-4-spaces

반응형