用vim创建一个数组

时间:2013-10-11 02:48:09

标签: vim keyboard-shortcuts code-snippets

我需要一种使用vim创建(数组)的高效方法吗?

在ruby中考虑这个例子:

fruit = ['orange','apple','banana']

有没有办法可以用更少的击键来实现这一目标?

我需要一种使用vim创建(数组)的高效方法吗?

在ruby中考虑这个例子:

fruit = ['orange','apple','banana']

有没有办法可以用更少的击键来实现这一目标?

编辑:感谢@ebenezer在做了一些研究后,我最终使用xptemplate这是vim的片段管理器。如果有人感兴趣,请查看python代码段文件中的def代码段。 这是由插件here的作者演示的。

3 个答案:

答案 0 :(得分:3)

您可以查看Michael Sanders的snipMate插件(在vim.org上:http://www.vim.org/scripts/script.php?script_id=2540)。如果它还没有合适的代码段,那么可以,如同described in an answer to “How to add new snippets to snipMate in VIM”一样,定义您自己的代码段,为了您的示例,可能会执行类似

的操作
:call MakeSnip(&ft, "arr", "= ['${1}', '${2}']")

然后输入后,例如

def fruit arr

Tab 会给你

def fruit = ['', '']

将光标放在第一个''中,准备填写,然后用另一个 Tab 将其移动到第二个。您可以通过将文件类型放在~/.vim/snippets下将其保存为自己的代码段;对于您的Ruby示例,~/.vim/snippets/ruby/arr.snippet可能包含类似

的内容
= ['${1}', '${2}']

然后在处理ruby文件类型的文件时,您将启用它,以便按上述方式使用它。

答案 1 :(得分:2)

加速这种做法的一种方法是使用Tim Pope的surround.vim插件。它提供了一个很好的插入模式映射,可以通过<c-s><c-g>s创建字符配对,具体取决于您的终端。示例:<c-s>]将使用括号之间的光标创建[]。您也可以使用它来创建字符串。然而,环绕声更多。我建议你看看它的文档。

相关插件还提供了一个名为delimitMate的类似功能。但是我不能对它发表评论,因为我没有亲自使用它。

答案 2 :(得分:0)

您可以通过设置以下内容在[]的插入模式下自动完成:

:inoremap [ []<ESC>i