バックスペースキーがVim / viで機能しない


89

.vimrcファイルと.bash_aliasesファイルにいくつかの変更を加えたところ、それ以降、バックスペースキーで単語を削除できなくなりました。

私の.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の2行があります:

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

私の~/.vimディレクトリにはプラグインやスクリプトが1つもないので、プラグインがこれを引き起こす可能性はありません。

~/.vim/.vimrcシンボリックリンクです。実際の.vimrcファイルは~/vimrc/、gitリポジトリであるディレクトリにあります。


これで私の問題は解決しました:askubuntu.com/a/899059/525661
ヘム

回答:


166

挿入モード(自動的に挿入されたインデント、改行、挿入の開始を含む)ですべてをバックスペースできるようにするには、次のbackspaceオプションを設定できます。

:set backspace=indent,eol,start

または

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

デフォルトでは、このオプションは空であり、上記のものをバックスペースすることはできません。これは標準のViの動作です。

この行をvimrcファイルに追加して、Vimの起動時に自動的に設定することができます。

set backspace=indent,eol,start  " more powerful backspacing

また、Vim 8.0以降、ユーザーvimrcファイルが見つからない場合、Vimはスクリプトをbackspaceロードすることでこの値に設定しdefaults.vimます。


それはまだ私には機能しません= /私は持っています set backspace=2 set backspace=indent,eol,start fixdel
holms 2013

2
@holmsはset backspace=2一人で試す
Hoang Huynh

バックスペースがキャレットを左に移動しているようなデフォルトの理由は何ですか?
Vitaly Zdanevich 2017

2
上記のvim80を使用する場合は、次を参照してください:stackoverflow.com/questions/52438373/…–
ルイスチャン

9

linux-newbのように、Ubuntu 18.04を新しくインストールしたところ、vimエディターの動作が、使用している他のマシンでの動作とは異なりました(説明しているバックスペースの動作を含めるため)。私は実際にvimではなくviを使用していることに気づいていませんでした(どちらもで実行されます)。vi

vimをインストールしてからファイルを編集すると、期待どおりに動作するバックスペースなど、以前の動作が復活しました。

sudo apt install vim

4

私の~/.vimrcファイルには内容が含まれていましたset nocompatible。バックスペースを機能させるために、同じファイルに別の行を追加しました-

set backspace=indent,eol,start

そしてただ走る

source ~/.vimrc

同じシェルですぐに有効になるように変更するために同じ端末で。viを開いて実行する必要はありません

:set backspace=indent,eol,start

2

urxvt + tmuxのSSH経由のDebian7.8でも同じ問題が発生しました。vimとvim-tinyをインストールしました。

vim-tinyを削除すると問題が修正されました。


2

私の場合、以下の設定をしましたが、バックスペースはまだ機能しません。

set backspace=indent,eol,start

最後に、次の行がこの問題につながることがわかりました。

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

この設定を削除すると、バックスペースキーは挿入モードで適切に機能します。

Reason:これは、VimがCTRL-Hをバックスペースと見なし、この行が挿入モードでneocomplete#smart_close_popup()に再マップされるためです。


1

私(Debianサーバー、他のLinuxの「Konsole」に接続)の場合、vim-tinyパッケージをアンインストールしてvimパッケージをインストールした後、バックスペースキーと矢印キーの問題が解決されました。


1
おそらく、これらのパッケージは異なるvimrcファイルをインストールします。
Eugene Yarmash 2015

1

多くの場合、PuttyなどのSSHクライアントを使用している場合は、選択されたgettyタイプの関数でもあります。最も標準的なエミュレーションであるvt100 +を使用するのが最も望ましいでしょう。

私はすでに:fixdel働いていなかったものを持っていました。私はそれを削除し、それを機能させるために最初の提案に置き換える必要がありました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.