所以我想我不是在寻找正确的东西,而是在寻找如何让Vim像Textmate一样工作,当它编写一组花括号,圆括号或方括号时,按Enter键,你会得到这个。
function doSomething(){
|
}
#selector{
|
}
字符串
而不是这些垃圾
function doSomething(){
|}
#selector{
|}
型
我已经有了[{(关闭对方时,他们键入只是返回和缩进是顶。像往常一样,任何帮助将不胜感激。
8条答案
按热度按时间t3psigkw1#
我在
.vimrc
中使用以下Map:字符串
所以当我输入:
型
我明白了:
型
类似于
(<cr>
和[<cr>
。3b6akqbq2#
delimitMate用户须知
当使用delimitMate插件时,其他答案的Map会干扰插件。幸运的是,通过设置
delmitMateExpansion
选项,这种行为已经在delimitMate中可用(但默认情况下禁用)。例如,add字符串
到您的
.vimrc
xxls0lw83#
这是我对Randy Moris的回答的修改,对我来说更好:
字符串
2mbi3lxu4#
我的解决方案是将这个小函数(带有相应的插入模式Map)放在我的.vimrc中:
字符串
您可以更改autocmd,使其适用于您首选的文件类型。
它在插入模式下重新Map
<CR>
,以检查光标当前是否在花括号内,并在适当的地方添加额外的行和缩进。rdrgkggo5#
如果你喜欢Text make,你应该选中Vim plugin, snipMate,如tarek 11011所示。
对于C/C++,默认情况下它有一个函数片段
字符串
,这将解决花括号问题。
ugmeyewa6#
我的.vimrc上有以下内容
字符串
好,解释一下:当你点击{,有时你想打破一行,并把和结束},但有时你只是想留在同一行,就像:a = {1,2,3};
#
表示光标所在的位置:因此,当你点击
{
,然后点击空格->{ # }
,当你点击{
,经过一点延迟或使用空格以外的任何东西时,当你在回车后点击{
时,这一行将被打破,代码将是:型
当你点击
(.
时,结果是().<call to omnicomplete>
只是行namespace::Singleton::Create()。您必须将
inoremap
与"
一起使用,以避免无限“”pxyaymoc7#
这是我的密钥Map。
字符串
strpart(getline('.'), col('.') - 2, 2)
表示获取周围的字符。例如,{|}
(其中|
是插入模式下的光标)将返回{}
。'\[\]\<Bar>{}\<Bar>()'
是VimSript中的正则表达式,表示匹配[]
或{}
或()
。我使用<Bar>
来进行转义。1.在我的例子中,
O
将有自动缩进,所以我使用一个简单的<Esc>O
。你可以调整它以适应你的要求。jdzmm42g8#
我有
set ai
在我的vimrc,我相信你想要什么?