首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在autocmd中不展开?

如何在autocmd中不展开?
EN

Stack Overflow用户
提问于 2020-06-15 03:29:33
回答 1查看 75关注 0票数 0

我有下面的autocmd来定义log缩写:

代码语言:javascript
复制
autocmd FileType vim,filetype_vim     iabbrev <buffer> log 
\ call LogOutput('', "DEBUG", {'line': expand('<sflnum>'), 'func': expand('<sfile>')[9:]})

当我输入log时,我希望它准确地输入:

代码语言:javascript
复制
call LogOutput('', "DEBUG", {'line': expand('<sflnum>'), 'func': expand('<sfile>')[9:]})

这将发送到日志函数,因此<sflnum><sfile>由日志调用的执行位置决定。

然而,当我在vim中输入log空间时,下面是它输出的内容:

代码语言:javascript
复制
call LogOutput('', "DEBUG", {'line': expand('<sflnum>'), 'func': expand('/Users/david/.vim/vimrc')[9:]})

因此,似乎不是展开sflnum (这是我想要的,但确实是展开sfile )。我怎样才能使缩写/autocmd不再扩展它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-15 05:43:06

来自:h :autocmd

注意,在定义自动命令时,":autocmd“参数中的特殊字符(例如"%”、"")不会展开。当事件被识别并执行{cmd}时,这些值将被展开。唯一的例外是在定义自动The时展开"<sfile>“。

停止不必要的扩展,利用<lt>,例如"\<lt>sfile>"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62380889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档