vi - Vim이 탭을 사용하지 않도록 하고(공백을 탭으로 변환하는 것은 좋지 않습니다!), 탭 키를 == 4 공백으로 만들고, Emacs 와 같은 중괄호 블록 뒤에 자동으로 코드를 들여쓰게 합니까?
또한 이러한 설정을 저장하여 다시 입력할 필요가 없도록 하려면 어떻게 해야 합니까?
이것과 관련된 다른 질문을 본 적이 있지만 항상 내가 원하는 것과 조금 다른 것 같습니다.
질문자 :mmcdole
vi - Vim이 탭을 사용하지 않도록 하고(공백을 탭으로 변환하는 것은 좋지 않습니다!), 탭 키를 == 4 공백으로 만들고, Emacs 와 같은 중괄호 블록 뒤에 자동으로 코드를 들여쓰게 합니까?
또한 이러한 설정을 저장하여 다시 입력할 필요가 없도록 하려면 어떻게 해야 합니까?
이것과 관련된 다른 질문을 본 적이 있지만 항상 내가 원하는 것과 조금 다른 것 같습니다.
몇 가지 다른 답변에서 지적했듯이 이제 선호하는 방법은 smartindent를 사용하지 않고 대신 다음을 사용하는 것입니다( .vimrc
).
filetype plugin indent on " show existing tab with 4 spaces width set tabstop=4 " when indenting with '>', use 4 spaces width set shiftwidth=4 " On pressing tab, insert 4 spaces set expandtab
set smartindent set tabstop=4 set shiftwidth=4 set expandtab
도움말 파일에 익숙해지는 데 시간이 조금 걸리지만 읽을수록 Vim이 더 좋아집니다.
:help smartindent
더 나아가 이식성을 위해 다음 설정을 소스에 포함할 수 있습니다.
:help auto-setting
현재 설정을 보려면:
:set all
으로 graywh 의견에서 지적 smartindent은 cindent로 대체되어있는 "작품 더 영리하게",하지만 여전히 주로와 언어 C와 같은 구문 :
:help C-indenting
관련 항목이 있다고 가정하고 탭과 공백을 모두 사용하는 파일을 여는 경우
set expandtab ts=4 sw=4 ai
다음을 사용하여 전체 파일의 모든 탭을 공백으로 바꿀 수 있습니다.
:%retab
파일 유형별 들여쓰기를 얻는 가장 좋은 방법은 filetype plugin indent on
를 사용하는 것입니다. 그런 다음 .vim/ftplugin/c.vim에서 set sw=4 sts=4 et
과 같은 것을 지정할 수 있습니다. 너무 (심지어 입술) .
대부분의 파일에 4칸 탭, Makefile에 실제 8칸 탭 문자, C/C++를 포함한 다양한 파일에 자동 들여쓰기를 사용하려면 다음을 ~/.vimrc
파일에 넣으십시오.
" Only do this part when compiled with support for autocommands. if has("autocmd") " Use filetype detection and file-based automatic indenting. filetype plugin indent on " Use actual tab chars in Makefiles. autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab endif " For everything else, use a tab width of 4 space chars. 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.
Ubuntu와 같은 많은 Linux 시스템에서는 .vimrc
파일이 기본적으로 존재하지 않으므로 먼저 생성하는 것이 좋습니다.
홈 디렉토리에 있는 .viminfo
파일을 사용하지 마십시오. 다른 용도로 사용됩니다.
1단계: 홈 디렉토리로 이동
cd ~
2단계: 파일 생성
vim .vimrc
3단계: 위에서 설명한 구성 추가
filetype plugin indent on set tabstop=4 set shiftwidth=4 set expandtab
3단계: Shift + ZZ 를 눌러 파일을 저장합니다.
권장되는 방법은 파일 형식 기반 들여쓰기를 사용하고 충분하지 않은 경우 smartindent 및 cindent만 사용하는 것입니다.
.vimrc에 다음을 추가하십시오.
set expandtab set shiftwidth=2 set softtabstop=2 filetype plugin indent on
다른 답변으로 도움이 되길 바랍니다.
~/.vimrc 편집
$ vim ~/.vimrc
다음 줄을 추가하십시오.
set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab
VIM 위키에서 :
:set tabstop=4 :set shiftwidth=4 :set expandtab
자동 들여쓰기는 현재 구문 모드를 기반으로 합니다. Foo.java를 편집하는 경우 {
를 입력하고 Enter 키를 누르면 다음 행이 들여쓰기됩니다.
탭의 경우 두 가지 설정이 있습니다. Vim 내에서 콜론을 입력한 다음 "set tabstop=4"를 입력하면 탭이 4개의 공백으로 표시되도록 설정됩니다. 콜론을 다시 누르고 "set expandtab"을 입력하면 탭에 공백이 삽입됩니다.
이러한 설정을 홈 디렉토리의 .vimrc(또는 Windows의 경우 _vimrc)에 넣을 수 있으므로 한 번만 입력하면 됩니다.
결국 .vimrc를 편집한 다음 conf를 추가할 수 있습니다.
set tabstop=4
또는 명령을 실행
첫째, 수동 들여쓰기를 위해 Vim 에서 Tab 키를 사용하지 마십시오. Vim에는 들여쓰기 양을 수동으로 늘리거나 줄이기 위한 삽입 모드의 한 쌍의 명령이 있습니다. 이러한 명령은 Ctrl-T 및 Ctrl-D 입니다. tabstop
, shiftwidth
및 expandtab
값을 관찰하고 공백과 탭의 올바른 혼합(최대 탭 수와 필요한 수의 공백)을 유지합니다.
둘째, 자동 들여쓰기를 사용하는 경우 이러한 수동 들여쓰기 키를 많이 사용할 필요가 없습니다.
Tab 대신 Ctrl-T가 귀찮다면 다시 매핑할 수 있습니다.
:imap <Tab> ^T
Shift-Tab 을 다시 매핑하여 Ctrl-D 들여쓰기를 수행할 수도 있습니다.
:imap <S-Tab> ^D
여기서 ^T 및 ^D 는 Ctrl-V Ctrl-T 로 삽입할 수 있는 리터럴 제어 문자입니다.
이 매핑을 사용하면 Ctrl-V Tab 을 사용하여 버퍼에 리터럴 Tab을 계속 입력할 수 있습니다. 이렇게 하면 :set expandtab
이 켜져 있어도 확장되지 않은 탭 문자가 표시됩니다.
<Tab>
맵과 유사한 효과 :set smarttab
사용하여 얻을 수 있으며, 이는 줄 앞의 백스페이스도 스마트하게 동작하게 합니다.
smarttab
모드에서 Tab 이 줄의 시작 부분이 아닌 곳에 사용되면 특별한 의미가 없습니다. 위의 Tab 을 Ctrl-T 로 매핑하는 것과는 다릅니다. 왜냐하면 삽입 모드에서 행의 어느 곳에서나 Ctrl-T를 사용하면 해당 행의 들여쓰기가 증가하기 때문입니다.
다른 유용한 매핑은 다음과 같습니다.
:map <Tab> > :map <S-Tab> <
이제 일부 줄을 선택하고 Tab 키 를 눌러 들여쓰기와 같은 작업을 수행할 수 있습니다. 또는 들여쓰기를 늘리려면(명령 모드에서) 한 줄에서 Tab 키를 두 번 누르십시오.
적절한 들여쓰기 관리 명령을 사용하면 모든 것이 세 가지 매개변수인 shiftwidth
, tabstop
및 expandtab
의해 제어됩니다.
shiftwidth
매개변수는 들여쓰기 크기를 제어합니다. 4개의 공백 들여쓰기를 원하면 :set shiftwidth=4
또는 약어 :set sw=4
.
noexpandtab
이 기본값이기 때문에 공백과 탭을 혼합하여 들여쓰기가 생성됩니다. 사용 :set expandtab
. 이로 인해 버퍼에 입력하는 탭 문자가 공백으로 확장되고 Vim 관리 들여쓰기의 경우 공백만 사용됩니다.
expandtab
이 켜져 있고 모든 적절한 Vim 메커니즘을 통해 들여쓰기를 관리하는 경우 tabstop
의 값은 관련이 없습니다. 파일에서 탭이 발생하는 경우 탭이 표시되는 방식을 제어합니다. set tabstop=8 expandtab
을 설정한 다음 Ctrl-V Tab 을 사용하여 하드 탭을 파일에 몰래 넣으면 평소와 같이 다음 8열 기반 탭 위치에 대한 정렬이 생성됩니다.
출처 : http:www.stackoverflow.com/questions/234564/tab-key-4-spaces-and-auto-indent-after-curly-braces-in-vim
MySQL 쿼리 결과를 CSV 형식으로 출력하려면 어떻게 해야 합니까? (0) | 2023.04.14 |
---|---|
PHP에서 암호 해싱에 bcrypt를 어떻게 사용합니까? (1) | 2023.04.14 |
내 스크립트를 실행하는 Python 버전을 어떻게 확인합니까? (0) | 2023.04.14 |
Bitmap 개체에 이미지를 로드하는 동안 이상한 OutOfMemory 문제 (0) | 2023.04.14 |
JavaScript에서 문자열을 자르시겠습니까? (0) | 2023.04.14 |