我需要一种使用vim创建(数组)的高效方法吗?
在ruby中考虑这个例子:
fruit = ['orange','apple','banana']
有没有办法可以用更少的击键来实现这一目标?
我需要一种使用vim创建(数组)的高效方法吗?
在ruby中考虑这个例子:
fruit = ['orange','apple','banana']
有没有办法可以用更少的击键来实现这一目标?
编辑:感谢@ebenezer在做了一些研究后,我最终使用xptemplate这是vim的片段管理器。如果有人感兴趣,请查看python代码段文件中的def
代码段。
这是由插件here的作者演示的。
答案 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