你如何在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