我试图在sql文件中使用snipMate,但是在编辑现有文件时,它似乎不起作用。
如果我创建了一个新的空缓冲区(没有文件,例如从start菜单中启动gvim ),并将文件类型设置为sql (:set ft=sql),它就能工作。但是,如果我随后尝试打开一个sql文件(例如:e c:\blah.sql)并编辑它,那么snipMate就不再工作了。什么给予了!?
设置:
.vimrc文件中有.vimrc。编辑
显然,如果我打开一个空缓冲区,将文件类型设置为sql,然后使用w c:\blah.sql保存为文件,我现在打开了一个sql文件,snipMate继续工作。
编辑
下面是我当前.vimrc的要点,以防有帮助:https://gist.github.com/3946877
发布于 2012-10-24 16:57:57
我已经在我的电脑上试用过你的.vimrc,它工作得很好。在$VIMRUNTIME中有一个$VIMRUNTIME文件,它在启动时检测文件类型,很可能在该文件中有一些问题。以下是我的相关台词:
" 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来找到您的
发布于 2012-10-24 11:40:00
看起来vim无法从扩展中识别sql文件类型。尝试将其放入您的.vimrc中:
augroup filetypedetect
au! BufRead,Bufnewfile *.sql setfiletype sql
augroup END发布于 2012-10-25 05:34:03
我是个白痴!
我决定删除除snipMate之外的所有插件,然后慢慢地将插件重新添加进来。当我连接snipMate时,我没有意识到这一点,但是我之前已经为代码完成添加了一个名为代码完成的插件。显然,这个书呆子和snipMate正在打仗,所以一旦我删除了代码,snipMate就奇迹般地开始工作了!
希望这能对未来的人有所帮助。
https://stackoverflow.com/questions/13045245
复制相似问题