Python 파일 편집을 위해 Vim 자동 들여 쓰기를 올바르게 설정하려면 어떻게해야합니까?


82

Python 파일 (* .py)을 편집하기 위해 Vim (7.1.xxx)을 설정하는 데 문제가 있습니다. 들여 쓰기가 끊어진 것 같습니다 (최적 4 칸). Google을 통해 찾은 몇 가지 자습서를 따랐습니다. 여전히 효과가 없습니다 : / 도와주세요.


2
당신의 문제는 정확히 무엇입니까? 들여 쓰기가 어떻게 끊어 졌습니까?
cschol

1
어떤 플랫폼을 사용하고 있습니까? Windows / Mac / Linux?
Jamie

답변:


74

내 macbook에서 이것을 사용합니다.

" configure expanding of tabs for various file types
au BufRead,BufNewFile *.py set expandtab
au BufRead,BufNewFile *.c set expandtab
au BufRead,BufNewFile *.h set expandtab
au BufRead,BufNewFile Makefile* set noexpandtab

" --------------------------------------------------------------------------------
" configure editor with tabs and nice stuff...
" --------------------------------------------------------------------------------
set expandtab           " enter spaces when tab is pressed
set textwidth=120       " break lines when line length increases
set tabstop=4           " use 4 spaces to represent tab
set softtabstop=4
set shiftwidth=4        " number of spaces to use for auto indent
set autoindent          " copy indent from current line when starting a new line

" make backspaces more powerfull
set backspace=indent,eol,start

set ruler                           " show line and column number
syntax on               " syntax highlighting
set showcmd             " show (partial) command in status line

(들여 쓰기 / 탭과 관련된 항목 만 표시하도록 수정 됨)


1
C 스타일 언어를 편집 할 때 탭을 사용하지 마십시오. s / noexpandtab / expandtab
badeip

@AlexKreimer 당신 말이 맞을 것입니다-저는 2008 년에 이것을 썼습니다-그것은 오래 전 일입니다. 업데이트하고 싶지만 대부분의 경우 vim을 사용하지 않게되었습니다. 더 나은 해결책을 찾으면 여기로 돌아와 더 나은 답변에 대한 링크를 게시하거나 직접 작성하십시오!
다렌 토마스

@DarenThomas IMO하는 매우 오래된 대답
알렉스 Kreimer

15

나는 사용한다:

$ cat ~/.vimrc
syntax on
set showmatch
set ts=4
set sts=4
set sw=4
set autoindent
set smartindent
set smarttab
set expandtab
set number

하지만 저는 Daren의 항목을 시도해 볼 것입니다.


2
공지 사항 smartindentC 파일이 아닌 파이썬 파일을 편집에만 적합 (어쨌든 지금에 의해 사용되지는; 참조 stackoverflow.com/a/234578/37639을 ).
corwin.amber 2016-08-08

12

더 간단한 옵션 : / etc / vim / vimrc 파일에서 구성의 다음 부분 (원래 주석 처리됨)의 주석 처리를 제거하십시오.

    if has("autocmd")
      filetype plugin indent on
    endif


3

VIM에 대한 올바른 구성 파일을 편집하고 있는지 확인하십시오. 특히 Windows를 사용하는 경우 파일 이름은 다른 플랫폼에서와 같이 .vimrc 대신 _vimrc로 지정할 수 있습니다.

정력 유형

:help vimrc

_vimrc / .vimrc 파일의 경로를 확인하십시오.

:echo $HOME

:echo $VIM

하나의 파일 만 사용하고 있는지 확인하십시오. 구성을 더 작은 청크로 분할하려는 경우 _vimrc 파일 내부에서 다른 파일을 가져올 수 있습니다.

:help source


1

Daren과 Thanos가 제안한 솔루션을 결합하면 좋은 .vimrc 파일이 있습니다.

-----
" configure expanding of tabs for various file types
au BufRead,BufNewFile *.py set expandtab
au BufRead,BufNewFile *.c set noexpandtab
au BufRead,BufNewFile *.h set noexpandtab
au BufRead,BufNewFile Makefile* set noexpandtab

" --------------------------------------------------------------------------------
" configure editor with tabs and nice stuff...
" --------------------------------------------------------------------------------
set expandtab           " enter spaces when tab is pressed
set textwidth=120       " break lines when line length increases
set tabstop=4           " use 4 spaces to represent tab
set softtabstop=4
set shiftwidth=4        " number of spaces to use for auto indent
set autoindent          " copy indent from current line when starting a new line
set smartindent
set smarttab
set expandtab
set number

" make backspaces more powerfull
set backspace=indent,eol,start

set ruler                           " show line and column number
syntax on               " syntax highlighting
set showcmd             " show (partial) command in status line


0

고급 파이썬 편집을 위해 simplefold vim 플러그인 설치를 고려하십시오 . 정규식을 사용하여 고급 코드 접기를 수행 할 수 있습니다. 빠른 편집을 위해 클래스 및 메서드 정의를 접는 데 사용합니다.

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