2013-08-29 34 views
0

标签我问起这个以前在这里:Add the % on tab when working with HAML on vim添加%至自动HAML只有在HAML

有好的解决办法,但事实证明,函数调用也正在SCSS文件类型触发。

这是我目前有:

function! s:haml_settings() 
    iabbrev h1  %h1 
    iabbrev p   %p 
    iabbrev section %section 
endfunction 

autocmd BufNewFile,BufRead *.haml setlocal filetype=haml 
autocmd FileType haml call <sid>haml_settings() 

我是很新,vim的,所以请原谅我,如果我要问一个问题noobie。

如何确保只在HAML文件中调用此函数?或者如果无法完成,我如何重新映射它,以便在给定标签之前按option-space时才会触发它?我在Mac上,所以我有一个选项键。

换句话说:如果我可以按p<space>然后输出为%p(后面有空格),我想要它。或者我想按p<option><space>并让它输出相同%p

我有tim popes vim-haml插件,但它没有提供这种功能。

谢谢!

回答

1

你必须让你的缩写本地缓冲区:

iabbrev <buffer> h1 %h1 

或尝试如snipmate或utisnips片段引擎。

+0

完美!这正是我需要的。谢谢。 – DavidVII

+0

在更新到vim 7.4.22后,它似乎不再有效。我不知道为什么? – DavidVII

+0

因此,我升级到7.4后停止工作。我一直无法弄清楚发生了什么事。任何指针?我真的很感激任何帮助。日Thnx! – DavidVII

0

我回答了我自己的问题,但我会与其他人分享,以防他们也遇到此问题。

看来Auto Pairs插件是罪魁祸首。一旦我禁用了这个插件,空格键就可以很好地处理缩写。

我发现了这个:verbose imap <space>,这直接指出了问题的根源。

+0

我之前为什么不工作的具体问题。 – DavidVII