过渡到vim。有缩进问题

时间:2015-01-06 17:56:04

标签: vim vim-plugin

我正在从手术中康复,因此,我正在过渡到VIM。作为我的起点,我选择使用vim-sensible插件作为我配置的基础。另外,我已经安装了' vim-rails'和' vim-ruby'插件。这些都是通过病原体加载的。

无论出于何种原因,插件都没有根据文件类型调整缩进设置。标签似乎锁定为9列。我可以手动设置它们,但显然这并不理想。

这是我的.vimrc。如你所见,这是非常基本的。

execute pathogen#infect()
syntax on
filetype plugin indent on

2 个答案:

答案 0 :(得分:3)

Vim提供以下用于管理缩进的缓冲区本地选项:'softtabstop''shiftwidth''tabstop''expandtab'。我们的想法是为特定的文件类型设置这些选项,例如ruby使用autocommand或使用after ftplugin目录(我的偏好)。{/ p>

目录接近后

将以下内容添加到~/.vim/after/ftplugin/ruby.vim文件中:

setlocal softtabstop=2
setlocal shiftwidth=2
setlocal tabstop=2

自动命令方法

将以下内容添加到~/.vimrc文件中:

augroup MyIndentSettings
  autocmd!
  autocmd FileType ruby setlocal softtabstop=2 shiftwidth=2 tabstop=2
augroup END

了解更多

当您刚开始使用vim时,最好学习如何查询这些选项,以便跟踪未来的错误。查询选项就像:verbose set {option}?一样简单,例如:verbose set expandtab?

您可能也对Tim Pope的vim-sleuth感兴趣,启发式设置缩进设置。

如需更多帮助,请参阅:

:h :set
:h 'softtabstop'
:h 'shiftwidth'
:h 'tabstop'
:h 'expandtab'
:h after-directory

答案 1 :(得分:1)

在我的vimrc中,我有以下内容:

set autoindent
set expandtabs
set shiftwidth=4
set tabstop=4

其实我只是

set ai et sw=4 ts=4

您可以使用FileTypeBufEnter

更改具体设置
autocmd BufEnter *.py ai et sw=4 ts=4