Выборочное отключение «отступа плагина типа файла» для определенных типов файлов в Vim 7.3 - PullRequest
6 голосов
/ 07 сентября 2011

У меня есть vim 7.3, с настройкой, которая по умолчанию поставляется с Ubuntu 11.04.Мой .vimrc выглядит следующим образом:

set nocompatible
set autoindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab

filetype plugin indent on
let g:omni_sql_no_default_maps = 1 " Stops Omni from grabbing left/right keys

" syntax, colorscheme and status line directives omitted.

Как мне выборочно отключить этот отступ для разных типов файлов (например, php, phtml, rb)?

Пока я пробовал autocmd FileType php filetype plugin indent off и несколько вариантов, но мне пока не очень повезло.

(Удаление строки filetype plugin ... приводит к желаемому поведению, но, очевидно, влияет на все типы файлов, а не на несколько.)

Ответы [ 3 ]

5 голосов
/ 07 сентября 2011

Обратите внимание, что отключение filetype indent скорее всего не то, что вам нужно:

    :filetype indent off

[...] Это фактически загружает файл "indoff.vim" в "runtimepath". Это отключает авто-отступ для файлов Вы откроете . Он будет продолжать работать в уже открытых файлах. Сброс «autoindent», «cindent», «smartindent» и / или «indentexpr» для отключения отступ в открытом файле.

Если вы хотите, как предложено в этой онлайн-справке, отключить параметры отступа для некоторых типов файлов, вы можете указать это в своем .vimrc:

filetype plugin indent on
au filetype php,phtml,rb call DisableIndent()

function! DisableIndent()
        set autoindent&
        set cindent&
        set smartindent&
        set indentexpr&
endfunction

Кроме того, убедитесь, что вы понимаете, что эти опции вы отключаете, обратившись к интерактивной справке (например, :help autoindent).

4 голосов
/ 07 февраля 2013

Предложение принца с autocmd не работает для меня. Это делает:

filetype plugin on
autocmd BufRead,BufNewFile * filetype indent off
autocmd BufRead,BufNewFile *.py filetype indent on

Включает filetype indent on выборочно для файлов Python. Довольно круто иметь также set ai, потому что он работает для файлов с отступом в качестве запасного варианта.

4 голосов
/ 07 сентября 2011

Все, что делает команда filetype indent on, это источник $VIMRUNTIME/indent.vim, который сам включает тип файла и вызывает отдельного пользователя $VIMRUNTIME/indent/[type].vim.Поэтому вы можете изменить indent.vim по умолчанию, чтобы игнорировать определенные типы файлов (или локально сохранить измененную версию этого файла в .vim / indent.vim).

Если вы недовольны этим, вы можете попробовать установить плагин/ Отступ поведения в вашем vimrc отдельно:

filetype plugin on
au FileType c,vim,lisp filetype indent on

(и, конечно, добавить соответствующие типы файлов).Это работает для меня.

...