我試圖在 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()
這不會是完美的,但可以改進。