2012-07-19 389 views
41

我剛剛對.vimrc文件和.bash_aliases文件做了一些更改,從那時起我無法用退格鍵刪除單詞。Backspace鍵在Vim/vi中不起作用

.vimrc文件有:

set nocompatible 

set number 
set incsearch 
set autoindent 
set ruler 
set autowrite 
set smarttab 
set linebreak 
set spell 
set et 
set title 

set mouse=v 
set history=50 
set tabstop=4 
set matchtime=2 
set matchpairs+=<:> 

syntax enable 
filetype plugin indent on 
filetype indent on 
set sw=4 

map <f2> :w\|!python % 

hi SpellBad ctermfg=000 guifg=#000 

而且我.bash_aliases文件有兩個行的Vim:

alias vim="vim -c 'startinsert' -u ~/.vim/.vimrc" 
alias vi="vi -c 'startinsert' -u ~/.vim/.vimrc" 

~/.vim目錄沒有一個插件或腳本,所以有ISN」這個插件會導致這種情況。

~/.vim/.vimrc是一個符號鏈接。實際的.vimrc文件位於~/vimrc/目錄,該目錄是一個git存儲庫。

回答

87

要允許退格中插入模式的一切(包括自動插入縮進,換行和插入的開始),設置以下選項:

:set backspace=indent,eol,start 

:set backspace=2 "compatible with version 5.4 and earlier 

默認情況下,這個選項是空的,不允許你退回上述事情。這是標準的Vi行爲。

參見:help 'backspace'

+0

你能詳細解釋發生了什麼事嗎?你的答案是如何解決這個問題的? – 2012-07-19 15:06:06

+0

這是否解決了您的問題?您是否閱讀過鏈接的幫助文章?它基本上設置允許使用退格鍵刪除的內容。 – Conner 2012-07-19 16:12:20

+0

它仍然對我不起作用= /我有 '設置退格= 2' '設置退格=縮進,EOL start' 'fixdel' – holms 2013-08-02 11:07:29

1

對於我(Debian服務器,與其他linux的「Konsole」連接),卸載vim-tiny軟件包並安裝vim軟件包後,backspace鍵和箭頭鍵出現問題。

+1

也許,這些軟件包會安裝不同的vimrc文件。 – 2015-09-27 13:31:15

1

我在urxvt + tmux上通過SSH在Debian 7.8上遇到了同樣的問題。 我安裝了vim和vim-tiny。

刪除vim-tiny修復了這個問題。

1

很多時候,如果使用像Putty這樣的SSH客戶端,它也是所選getty類型的函數。最好的方法是使用vt100 +,因爲它是最標準的仿真。我已經有:fixdel這是行不通的。我不得不刪除它,並用第一個建議來取代它,以使其起作用

1

對我來說,我有下面的設置,但退格仍然不起作用。

set backspace=indent,eol,start

最後,我發現下面的行導致了這個問題。

inoremap <expr><C-h> neocomplete#smart_close_popup()

當此設置被刪除,退格鍵以及工作在插入模式。

Reason:這是因爲Vim將CTRL-H視爲退格,並且該行在插入模式下重新映射到neocomplete#smart_close_popup()。

0

~/.vimrc文件有內容set nocompatible。新增另一條線到同一個文件,以使退格鍵工作 -

set backspace=indent,eol,start 

而且只需運行

source ~/.vimrc 
在同一個終端變革

採取相同的外殼立竿見影的效果。不需要打開vi並運行

:set backspace=indent,eol,start