문제

나는 가지고있다 정력 CentOS 5에서 7 (강화) 및 모든 일반적인 VIM 플러그인/스크립트가 제공 될 준비가되어 있습니다.

$ find /usr/share/vim/vim70/ -name \*python\*
/usr/share/vim/vim70/syntax/python.vim
/usr/share/vim/vim70/ftplugin/python.vim
/usr/share/vim/vim70/indent/python.vim
/usr/share/vim/vim70/autoload/pythoncomplete.vim

파일을 열 때 .py (.py)vim file.py)이 플러그인을 자동으로로드하지만 그렇습니다. 내가 원하는 것은 :

누르다 그리고 4 개의 공간을받습니다. 스위트, 조건부 등에 대한 자동 들여 쓰기 다음 라인

.VIMRC 파일에서 Tabstop, ShiftWidth 등을 명시 적으로 설정 하여이 작업을 수행합니다. 이것이 위의 일이 아닙니다 파이썬 파일은? 왜 이런 것들을 내 .vimrc? 대신 VIM 플러그인에서 이러한 기능을 얻으려면 어떻게해야합니까?

현재 .VIMRC :

syntax on
set hls
set expandtab
set textwidth=0
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set backspace=indent,eol,start
set incsearch
set ignorecase
set ruler
set wildmenu
set smarttab
filetype indent on
filetype on
filetype plugin on
도움이 되었습니까?

해결책

VIMRC에서 Tabstop, ShiftWidth 등을 설정하는 것이 정확합니다. 이로 인해 글로벌 설정을 설정하고 Filetype 별 압입 지원의 매개 변수 역할을합니다.

언어 들여 쓰기 플러그인은 이러한 설정을 사용하지만 일반적으로 들여 쓰기 표현을 설정합니다 (:he inde) 언어에 적합합니다. 따라서 Python Indenter는 블록 오프닝 문 (def, class, for ...) 후에 자동으로 들여 쓰고, 닫은 후 (반환, 패스, 계속 ...) TS, SW, SW, ... 당신은 설정했습니다.

플러그인이 버퍼로로드되는지 확실하지 않은 경우 :filetype 감지, 플러그인 및 들여 쓰기 설정을 보여주기 위해 :set ft? 감지 된 유형을 볼 수 있습니다.

다른 팁

Python.vim 파일은 Python 파일을 여러 가지 방법으로 들여 줄 수 있기 때문에 Python.vim 파일은 구문 높이 조명 파일 일 가능성이 있다는 것입니다. pep8 4 개의 공간을 처방하지만 탭 사용을 포함하여 레거시 파일이 다를 수 있습니다.

우리의 레거시 파이썬 파일 중 일부는 실제로 계니 당 두 개의 공간을 사용합니다. 따라서 Python은 VIM에 들여 쓰기하고 파일 및 파일 타입 당 구성합니다. .VIMRC의 다음 줄은 내 XML, XHTML 및 HTML (2 개의 공백)과 다른 파이썬 특정 설정을 제공합니다.

au FileType python setl shiftwidth=4 tabstop=4

파일별로 특정 설정을 Modeline 레거시 파일이 있으면 편리합니다.

# vi: set tabstop=2 expandtab textwidth=70 filetype=python:
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top