我想在 Vim 中触发多行缩写,而不输入“触发”字符,并且光标在特定位置以插入模式结束。
我快到了,只是没能成功。
到目前为止,我已将以下内容添加到我的 _vimrc 中:
" eat characters after abbreviation
function! Eatchar(pat)
let c = nr2char(getchar(0))
return (c =~ a:pat) ? '' : c
endfunction
iabbr <silent> if if ()<left><C-R>=Eatchar('\s')<CR>
:iabbr <silent> rfF <- function( )<CR>{<CR> <CR>}<Esc>3k$h<Insert><c-r>=Eatchar('\m\s<bar>/')<cr>
这是最成功的,因为当我键入rfF Ctr-]
以触发缩写的扩展时,它会产生以下内容:
<- function( )
{
}
但是,结果取决于我如何触发缩写。
如果我触发<space>
括号之间的空格扩展:
<- function( )
{
}
...如果我<CR>
:
<- function(
)
{
}
我最近询问并回答了一个关于防止在单行大小写中添加触发缩写的字符的问题。
这可能与多行缩写吗?