我开始在工作中使用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,并且非常喜欢他们的方法。是否有插件?)
答案 0 :(得分:2)
一旦为标签尺寸等定义了正确的设置,Vim通常非常聪明。 (编辑:正如Igor在另一个答案中提到的,一定要打开特定于文件类型的缩进。)看来你想让vim自动插入换行符,但我认为没有插件就不能这样做。
但是,我想你可能想看snipMate,这是一个为不同的编程语言定义大量“片段”的插件,你也可以定义自己的。它基本上是一种改进的制表完成:
一个例子:
php<tab>
变成
<?php
|
?>
带|成为你的光标。有些片段甚至可以定义多个光标位置,您可以通过另一个按Tab键切换到这些位置。
答案 1 :(得分:0)
set autoindent
filetype indent on
您可能还需要syntax on
,但我不确定是否需要进行缩进。虽然不能伤害......
答案 2 :(得分:0)
我根据blog post找到了相应的设置:
set autoindent
inoremap {<CR> {<CR>}<Esc>O<Tab>
与snipmate.vim和autoclose.vim一起工作正在完美无缺。