你如何在vim中使用缩进进行Web开发?

时间:2010-05-10 16:10:15

标签: vim indentation

我开始在工作中使用Linux和Vim。我开始阅读vims文档并创建自己的.vimrc文件等。

我是一名从事HTML,XML,CSS,JS,Python,PHP,ZPT,DTML和SQL的Web开发人员。

我想要一个缩进功能like this one:对于每种语言/集合,都有相应的缩进解决方案。

因此,在js中,writing function test(){|}会转入

function test(){
    |
}

如果是php,请写<?php function test(){|}

<?php
    function test(){
        |
    }
?>

......等等。在Python中编写函数定义,然后创建for循环sentece,它会自动创建缩进。

我是以自我激励,聪明,轻快的方式开始的,但我对他们的分歧感到有些困惑。

vim中的缩进如何工作?我应该为每种语言下载插件吗?我所描述的行为是否可以使用您已经习惯的插件或者我必须创建它?

我一直在看人们使用Vim而我正在努力做到这一点,因为我使用的机器太有限了,但我担心我将无法在其中使用一个像样的自动缩进解决方案。而且我真的认为必须一直手动缩进代码(而不是有时只是),这是浪费时间,而且它违背了vim的“MOTTO”我称之为“生产力”。

(我在Visual Studio中的一个小项目中使用了autoindenting,并且非常喜欢他们的方法。是否有插件?)

3 个答案:

答案 0 :(得分:2)

一旦为标签尺寸等定义了正确的设置,Vim通常非常聪明。 (编辑:正如Igor在另一个答案中提到的,一定要打开特定于文件类型的缩进。)看来你想让vim自动插入换行符,但我认为没有插件就不能这样做。

但是,我想你可能想看snipMate,这是一个为不同的编程语言定义大量“片段”的插件,你也可以定义自己的。它基本上是一种改进的制表完成:

一个例子:

php<tab>

变成

<?php
|
?>

带|成为你的光标。有些片段甚至可以定义多个光标位置,您可以通过另一个按Tab键切换到这些位置。

答案 1 :(得分:0)

vim通常带有一堆用于不同语言的语法插件。如果你想用它们进行缩进,你需要:

set autoindent
filetype indent on

您可能还需要syntax on,但我不确定是否需要进行缩进。虽然不能伤害......

答案 2 :(得分:0)

我根据blog post找到了相应的设置:

set autoindent
inoremap {<CR> {<CR>}<Esc>O<Tab>

与snipmate.vim和autoclose.vim一起工作正在完美无缺。