在 vim 中加入空格縮寫

在 vim 中加入空格縮寫

我試圖在 vim 中添加以下縮寫,但它不起作用。

    noreabbrev <space><space>  .<space>

就像大多數現代手機的鍵盤一樣。

那麼有人可以告訴我我在這裡做錯了什麼以及如何讓它發揮作用嗎?

答案1

縮寫分為三種類型:full-id、end-id、non-id,每種縮寫在允許的字元集上都有特定的條件。看:help abbreviations。其中任何一個都不允許有兩個空格。

您必須使用:inoremap(並忍受不可避免的延遲,第一個空格字符將出現在緩衝區中),或者建立一個複合體:inoremap <expr> <Space>來檢查前一個字符,然後才發揮其魔力。

答案2

我很快就把它拼湊在一起。將其放入名為或其他名稱的檔案中InsertSpace.vim,然後從 vimrc 中取得它,或將其放入~/.vim/plugin/~\vimfiles\plugin在 Windows 上):

function! s:InsertSpace()
    if getline('.')[col('.')-3:col('.')-2] =~ '[^. ]\s$'
        return "\<bs>. "
    else
        return ' '
    endif
endfunction

inoremap <expr> <space> <SID>InsertSpace()

這不會是完美的,但可以改進。

相關內容