今天,我将Vim从7.3升级到7.4。但是,下面的函数CleverTab()
似乎不起作用。 (我不知道如果这件事是更新。)该功能无法正常工作
function! CleverTab()
if strpart(getline('.'), 0, col('.')-1) =~ '^\s*$'
return "\<Tab>"
endif
if pumvisible()
return "\<C-N>"
endif
return "hello"
endfunction
inoremap <silent><tab> <C-R>=CleverTab()<CR>
该功能的目的是根据当标签按目前的情况做不同的事情:
- 如果当前行充满空间,然后只需添加一个选项卡。
- 如果出现弹出式菜单,请向下移动。
- 否则,添加字符串“hello”。
(说实话,我要在方案3中做的是调用另一个函数,但是,不管 - 。使问题容易了,我只是想证明在这种情况下字符串)
假设我通过Vim编辑我的文件并输入了字符串“123”(例如)。目前,当我按标签时,实际结果是添加了<tab>
。预期的结果是流程应该符合条件3并添加字符串“hello”。我今天下午花了它。
那么,谁能帮我弄明白吗?不胜感激!
测试了你的函数和映射,“hello”打印在我的vim 7.4上。顺便说一句,你可以创建一个''地图而不是' =',这是专为这种情况而设计的。 –
Kent
感谢您的回复。但它仍然适用于我。所以你可以请帮助让我知道是否有什么封锁我的函数CloverTab()? – kevin
抱歉错字错误。它仍然不起作用! – kevin