挿入モードでLinux viの矢印キーが壊れる


95

私の矢印キーは、viの自宅での挿入モードでは機能しません。矢印キーは、それぞれ 'A'のように改行と大文字を挿入するだけです。それを修正する方法はありますか?


3
Linuxのディストリビューションを意味しますか?
ミケル

彼らは家から離れて働きますか?:-)
ブライアンアグニュー

4
明らかに、解決策はemacsです。明らかに。
ポールネイサン

38
@Paul Nathan-解決策がemacsの場合、問題が何であるか知りたくありません。
Chas。オーエンス

回答:


107

これはLinuxとしてタグ付けされているため、vimを使用していると思います。試してください:

:set nocompatible

(これに.vimrcを設定するには、このコマンドを追加します。ホームディレクトリにまだ存在しない場合は、新しい.vimrcファイルを作成し、実行echo $HOMEしてホームディレクトリのパスを確認します。)


7
viではvimなく、コマンドで起動してくださいvi。でvim起動しない限り、の高度で便利な機能のほとんどはデフォルトで無効になっていますvim
PTS

1
@pts-壊れたシステムでのみ。私のすべてのボックスでviとしてvimを起動しても問題ありません。ただし、私が使用したCentOSボックスの中には、あなたが話している動作を示すものがあります。
Chas。オーウェンズ

誰かがこの回答を編集して、vimrcでどのように見えるかを含めることはできますか?
ステファン

1
@Stephan Add set nocompatible.vimrcの独自の行に追加
Matthew Wilcoxson

Ubuntuでは、vimのその瞬間からvimをインストールするだけでこれを解決しました(sudo apt install vim)。挿入モードの矢印キーでviが正常に動作します。編集:私はこれがここでハンによってすでに言及されていることを知っています。
pizzamonster

74

Ubuntuにはがデフォルトで付属vim-tinyしており、vimのすべての機能が備わっているわけではありません。

sudo apt-get install vim誰もが話しているすべてのジューシーな機能をすばやく取得します。


1
これはまさにミントLinuxで必要なものでした。vimをインストールすることで、「vi」の使用を開始でき、すべてのコードの強調表示が有効になりました。Linuxのすばらしい知識の1つである:)
ワイヤード00

1
これは私のRaspberry Pi(Jessie Lite)で機能しました。シェルを保護するときにこの問題が発生していましたが、今では完全に解決されています:-)
JakeD

35

:set term=builtin_ansi

私のために修正しました。エスケープモード(ブリープモード)のときにvimに貼り付けるか、先頭の ":"なしで〜/ .vimrcの最後に追加できます。


:set term = xtermも機能する可能性があります(覚えやすい)。
Alexx Roche 2016

FYI :set term=builtin_ansiは私のために働きました。:set term=xtermしませんでした。
FractalSpace 2017年

Linuxのボックスの1つで、export TERM=xtermviを呼び出す前にコマンドラインで使用し、その後:set term=xtermvimで7.2が機能します
Alexx Roche

完璧に動作します!ありがとうございました!
Akhmedzianov Danilian 2018

これは矢印キーナビゲーションを有効にするために機能しますが、ターミナルのすべてのカラーコーディングを完全に無効にします。
ケンイングラム

16

viは挿入モードでは矢印キーをサポートしていません。vimを使用します。viは単なるvimへのリンクである可能性がありますが、「元の」viのように動作するように構成されているため、矢印キーが無効になります。vimを直接呼び出すだけです。


これは解決策ではありませんが、それは間の違いを明らかにし、行動(IMO)のための最良の説明ですvivim。しかし、私の箱には次のようにvim印刷されますcommand not found:D
ダニエルW.

@DanFromGermany vimがインストールされていて、vimがインストールされていない可能性があります。使用したい場合は、Linuxシステムのパッケージマネージャーを介してvimをインストールしてみてください。
lothar 2014年

:set term=ansiラズに感謝しました。あなたはそれを「サポートしていない」と言います。あなたがいるためと言った私は疑問に思ってvim-tinyいるubuntu -I're using-のパッケージはバニラと異なっているviか、用語、あまりにもその中で仕事を設定するのでしょうか?
n611x007

8

さらに別のバリエーション:この問題は、いくつかの.vimrcを変更した後に発生しました。一致した検索の結果、通常モードでのESCの賢い再マッピングは良い考えではないことが明らかになりました。それを削除すると問題が解決しました:

" this is NOT something you want in .vimrc:
" In normal mode, hitting Esc turns off search highlights:
nmap <ESC> :nohl<CR>  " Do NOT add this to .vimrc

この問題が発生した後、私はすべてを試しました、そしてこれは私が探していたものでした、ありがとう!
Dan Bartlett

修正してくれてありがとう。エスケープの再マッピングが問題を引き起こす理由は何ですか?
2016年

6

私のために働いた唯一のものは「:set term = ansi」でした


1
これは、Dockerコンテナーを使用する場合にも機能したようです。
オーランド

1
これも私のために働いた。私はWindowsでcmd.exeを使用し、vagrantを使用してubuntuにsshします
codelogn '19年

@ CodeCodeO-1-O-log-n viでは、WindowsとUbuntuのどちらの側を使用していましたか?:)
n611x007

Windowsでは、cmd.exeを実行し、次にvagrant sshをubuntuサーバーに、次にviをサーバーに実行しました。しかし、後で私はパテを使い始めました、そして私はもうそれをする必要はありません、そしてパテは私にとって素晴らしい働きをしています。
codelogn

2

矢印キーで同じ問題がありましたが、使用したときにnocpまたはnocompatibleを設定すると、バックスペースが正しく機能しませんでした

何らかの理由ででvimをインストールしたとき sudo apt-get install vim、矢印やバックスペースの問題はもうありませんでした


1

.vimでgitを使用するように切り替えた後、矢印キーに問題がありました。

このリポジトリをインストールしました-https ://github.com/sunaku/.vim

1時間探したところ、AutoCloseプラグイン(とにかく気に入らなかった)が矢印キーを壊したことがわかりました。

プラグインのドキュメントは、set ttimeoutlen = 100を設定することを推奨していますが、それは私にとってはうまくいきませんでした!(urxvt + screenまたはurxvt、さらにはxtermを使用)

それで、最後にプラグインを削除しました。


0

「noesckeys」も試してみてください


0

CygwinでWindows 8.1内でvimを使用しているときにも同じ問題が発生しました。

私にとってうまくいった解決策は、Cygwinターミナルで次のコマンドを実行することです。

cp vimrc_example.vim ~/.vimrc

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