vim中delete(backspace)鍵不能向左刪除


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

參考

  1. Mac 的 Vim 中 delete 鍵失效的原因和解決方案
  2. Vim


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM