使用vim打开特殊文件时如何设置特殊的tabstop?

时间:2015-08-13 16:56:30

标签: vim

这是我的vimfiles

我写

 se tabstop=4 

在我的vimrc中。但有时我会阅读一些项目源代码,他们使用TAB缩进并设置tab等于8个空格。所以我必须

:set tabstop=8

使代码缩进正确。

如果我可以确定源代码的路径(例如/ home / foo / erlang /),  有没有办法让我的生活更美好?

我的意思是在vimrc中编写一些代码,比如

if file in path "home/foo/erlang"
 then set tabstop=8
end

或其他一些vim设置。

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以在要应用设置的目录中创建.vimrc文件。它将包含您的tabstop和其他特定于Erlang的设置。

% cd ~/erlang
% ls
... .vimrc
% vim somefile.erl

Vim会自动查看并使用.vimrc中的$PWD。 (为此,您的set exrc中应该~/.vimrc。有关详细信息,请参阅:help 'exrc'

如果您不想cd并打开该目录中的文件,您始终可以使用显式启动文件调用Vim:

vim -u /path/to/erlang.vimrc somefile.erl

答案 1 :(得分:1)

如果您想将这些内容添加到您自己的.vimrc文件中,那么您可以执行的一件事就是打开autocmd文件来调用函数来设置您喜欢的内容。 ..文档谈到这样做,请参阅:help autocmd-patterns

autocmd   BufRead   */home/foo/erlang/*   set tabstop=8

我实际上有一些autocmds可以做"大"根据文件类型的目录和其他属性设置文件类型。其中一个可能是这样的:

autocmd BufRead *.txt   call SetUpTextFileBuffer(expand("<afile>:p"))

然后该函数执行路径匹配等,以配置一系列选项(自动格式化,文本宽度等)。如果你能插入它们,那么Modelines当然会更好,但有时候你会和别人一起工作。代码,你不想留下巨大的足迹。

答案 2 :(得分:0)

您可以在文件中使用modeline。 (您需要在set modeline中使用.vimrc才能生效。)

在文件的第一行或最后一行中,添加以下注释;

% vim: tabstop=8:

默认情况下,会扫描第一行和最后五行的模型。