Vim 如何不在autocmd中展开?
我使用以下autocmd在vim中定义Vim 如何不在autocmd中展开?,vim,Vim,我使用以下autocmd在vim中定义log缩写: autocmd FileType vim,filetype_vim iabbrev <buffer> log \ call LogOutput('', "DEBUG", {'line': expand('<sflnum>'), 'func': expand('<sfile>')[9:]}) 这将发送到日志函数,因此无论在何处执行日志调用,和都由确定 但是,当我在vim中输入日志[space]时,它
log
缩写:
autocmd FileType vim,filetype_vim iabbrev <buffer> log
\ call LogOutput('', "DEBUG", {'line': expand('<sflnum>'), 'func': expand('<sfile>')[9:]})
这将发送到日志函数,因此无论在何处执行日志调用,
和
都由确定
但是,当我在vim中输入日志[space]时,它的输出如下:
call LogOutput('', "DEBUG", {'line': expand('<sflnum>'), 'func': expand('/Users/david/.vim/vimrc')[9:]})
调用LogOutput(“”,“DEBUG”,{'line':expand(“”),'func':expand('/Users/david/.vim/vimrc')[9:})
因此,它似乎没有扩展sflnum
(这是我想要的,但它确实扩展了sfile
。我如何才能使abbrev/autocmd永远不会扩展它?From:h:autocmd
请注意:autocmd中的特殊字符(例如“%”、“”)
定义自动命令时不展开参数。这些参数将
在识别事件并执行{cmd}时展开
例外情况是,定义autocmd时会展开“
”
要停止不必要的扩展,请使用
,例如“\sfile>”
call LogOutput('', "DEBUG", {'line': expand('<sflnum>'), 'func': expand('/Users/david/.vim/vimrc')[9:]})