MacOS修改為英文語言之后,忽然出現如題問題:delete鍵不能向左刪除,只可以刪除本次插入模式下插入的文本。原因:
轉載:https://www.smslit.top/2016/11/27/vim-backspace-invalid/
MacOS下打開vim編輯文本,進入插入模式,要刪除編輯之前的保存過的幾個字符,按下delete鍵刪除它們,萬萬沒想到呀!只聽到”duang duang duang”,竟然無效!
有一點先明確一下,在mac的鍵盤中沒有backspace鍵,有個鍵叫delete,其實相當於window下的backspace鍵,編輯文本時按下都具有向左刪除字符的功能。
原因
網上搜索得知,出現開頭說的令人惱火的問題的原因是:
VIM使用了 compatible 模式,或者把 backspace 變量設置為空了…其實compatible模式是VIM為了兼容vi而出現的配置,它的作用是使VIM的操作行為和規范和vi一致,而這種模式下backspace配置是空的。即意味着backspace無法刪除 indent , end of line , start 這三種字符。
在默認狀態下,delete(backspace)按下只會刪除本次插入模式下插入的文本,這跟backspace的模式設置有關,其模式可以設置為以下三種模式:
- 0 same as “:set backspace=” (Vi compatible)
- 1 same as “:set backspace=indent,eol”
- 2 same as “:set backspace=indent,eol,start”
解決
知道了原因,就好解決了,只需要將backspace的模式設置成2就可以了,在~/.vimrc
中添加了一下內容,保存,下次進入vim就可以在插入模式下任意使用delete(backspace)鍵了:
" 解決插入模式下delete/backspce鍵失效問題 set backspace=2