0

我之前在这里问过这个问题:Add the % on tab when working with HAML on vim

那里的解决方案没问题,但事实证明,函数调用也在 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很陌生,所以如果我问一个菜鸟问题,请原谅我。

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

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

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

谢谢!

4

2 回答 2

1

您必须使您的缩写本地化到缓冲区:

iabbrev <buffer> h1 %h1

或者尝试像 snipmate 或 utisnips 这样的片段引擎。

于 2013-08-29T05:04:53.557 回答
0

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

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

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

于 2013-12-14T19:31:19.933 回答