首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vim:合并autocmd?

Vim:合并autocmd?
EN

Stack Overflow用户
提问于 2009-08-21 17:14:46
回答 3查看 3.2K关注 0票数 6

我需要在vim中对两个autocmd事件进行逻辑与运算。基本上,当FileType为tex时,该命令必须在InsertLeave上运行。看起来这应该可以工作(在.vimrc中):

代码语言:javascript
复制
autocmd FileType tex :autocmd InsertLeave :w

但事实并非如此。嵌套选项似乎也无济于事,尽管手册上指出应该这样做。

做逻辑或很容易:

代码语言:javascript
复制
autocmd BufEnter,BufLeave ...

做逻辑与不能太难。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-11 03:13:02

我对@Eevee答案有一个更正:要使自动命令只对一个缓冲区起作用,您应该使用

代码语言:javascript
复制
augroup TexAutoWrite
    autocmd FileType tex :autocmd! TexAutoWrite InsertLeave <buffer> :update
augroup END

参见`:h autocmd-buflocal。

票数 9
EN

Stack Overflow用户

发布于 2009-08-21 17:27:59

InsertLeave仍然需要一个参数。

这对我来说很有效:

代码语言:javascript
复制
autocmd FileType tex :autocmd InsertLeave * :w

请注意,如果稍后在同一缓冲区中编辑非tex文件,则此行为将保持不变。我不确定是否有一种简单的方法可以在编辑特定类型的文件时删除它。

票数 4
EN

Stack Overflow用户

发布于 2011-03-11 01:46:06

可以使用autocmnd的pattern选项。

代码语言:javascript
复制
autocmd InsertLeave *.tex w
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1313171

复制
相关文章

相似问题

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