今天,我将我的 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>
Tab此函数的目的是在按下时根据当前条件做一些不同的事情:
- 如果当前行用空格填充,则只需添加一个制表符。
- 如果出现弹出菜单,请向下移动。
- 否则,添加字符串“hello”。
(老实说,在场景 3 中我想做的是调用另一个函数。但无论如何——为了让问题变得简单,我只是想在这种情况下显示一个字符串。)
假设我正在通过 Vim 编辑我的文件并输入了字符串“123”(例如)。目前,当我按下 时Tab,实际结果是<tab>
添加了 a。预期的结果是流程应该转到条件 3 并添加字符串“hello”。我花了今天下午的时间。
那么,任何人都可以帮我弄清楚吗?赞赏!