你如何在vim中使用indent进行web开发?

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

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

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

所以,在js中, writing function test(){|}会打开

function test(){
    |
}

如果使用php,写作<?php function test(){|}

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

......等等。 用Python写一个函数定义,然后创建一个for循环语句,它会自动创建一个缩进。

我以autoindent,smartindent,cindent开始,但我对他们的分歧有点困惑。

vim中的缩进如何工作? 我是否应该为每种语言下载插件? 我描述过的行为可能与已有的现有插件或者我必须创建它吗?

我一直在看使用Vim的人,我也试图做到这一点,因为我使用的机器太有限了,但我恐怕无法在其中使用体面的自动缩进解决方案。 我真的认为必须始终手动缩进代码(而不是有时只是)浪费时间,这与vim的“MOTTO”我见过称为“生产力”是对立的。

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


一旦您为制表符大小等定义了正确的设置,Vim通常在缩进方面非常聪明。 (编辑:正如伊戈尔在另一个答案中提到的,一定要打开文件类型特定的缩进。)似乎你想让vim自动插入新行,尽管我不认为没有插件就能做到。

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

一个例子:

php<tab>

变成

<?php
|
?>

用| 作为你的光标。 有些片段甚至定义了多个光标位置,您可以通过另一次按下标签来切换光标位置。


vim通常带有一些用于不同语言的语法插件。 如果你想使用这些缩进,你将需要:

set autoindent
filetype indent on

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


我发现基于博客文章的设置:

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

把它与snipmate.vim和autoclose.vim一起工作是完美的。

链接地址: http://www.djcxy.com/p/49535.html

上一篇: How do you use indent in vim for web development?

下一篇: How to fix broken automatic indentation in vim