首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >snipMate只在空缓冲区上工作?

snipMate只在空缓冲区上工作?
EN

Stack Overflow用户
提问于 2012-10-24 08:14:52
回答 3查看 142关注 0票数 1

我试图在sql文件中使用snipMate,但是在编辑现有文件时,它似乎不起作用。

如果我创建了一个新的空缓冲区(没有文件,例如从start菜单中启动gvim ),并将文件类型设置为sql (:set ft=sql),它就能工作。但是,如果我随后尝试打开一个sql文件(例如:e c:\blah.sql)并编辑它,那么snipMate就不再工作了。什么给予了!?

设置:

  • gvim
  • vim 7.3
  • Windows 7
  • snipMate 0.84
  • 而且,实际上,我的.vimrc文件中有.vimrc

编辑

显然,如果我打开一个空缓冲区,将文件类型设置为sql,然后使用w c:\blah.sql保存为文件,我现在打开了一个sql文件,snipMate继续工作。

编辑

下面是我当前.vimrc的要点,以防有帮助:https://gist.github.com/3946877

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-24 16:57:57

我已经在我的电脑上试用过你的.vimrc,它工作得很好。在$VIMRUNTIME中有一个$VIMRUNTIME文件,它在启动时检测文件类型,很可能在该文件中有一些问题。以下是我的相关台词:

代码语言:javascript
复制
" SQL
au BufNewFile,BufRead *.sql         call s:SQL()

func! s:SQL()
  if exists("g:filetype_sql")
    exe "setf " . g:filetype_sql
  else
    setf sql
  endif
endfunc

您可以将它们复制到$VIMRUNTIME/filetype.vim或仅将其复制到.vimrc中,这样就可以解决问题,但首先您不应该遇到这个问题。

让我知道你的进步..。

注意: $VIMRUNTIME在我的机器上是/usr/share/vim/vim73,您可以通过在vim会话中运行:echo $VIMRUNTIME来找到您的

票数 1
EN

Stack Overflow用户

发布于 2012-10-24 11:40:00

看起来vim无法从扩展中识别sql文件类型。尝试将其放入您的.vimrc中:

代码语言:javascript
复制
augroup filetypedetect
  au! BufRead,Bufnewfile *.sql setfiletype sql
augroup END
票数 1
EN

Stack Overflow用户

发布于 2012-10-25 05:34:03

我是个白痴!

我决定删除除snipMate之外的所有插件,然后慢慢地将插件重新添加进来。当我连接snipMate时,我没有意识到这一点,但是我之前已经为代码完成添加了一个名为代码完成的插件。显然,这个书呆子和snipMate正在打仗,所以一旦我删除了代码,snipMate就奇迹般地开始工作了!

希望这能对未来的人有所帮助。

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

https://stackoverflow.com/questions/13045245

复制
相关文章

相似问题

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