今天,我將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