矢印キーが自発的にvimで機能しなくなる


25

最近、OS X 10.6(と思う)から10.9にアップグレードしました。それ以来、で編集しているvim間、矢印キーは「自発的に」機能しなくなります。

ある時点で、フラストレーションの中で、矢印キーの1つを「マッシュ」し、最終的に「E388が定義を見つけられませんでした」というエラーを表示しました。私がそれを経験した他のすべての時間、矢はしばらく働いていたが、突然私に向かって鳴り始めた!

終了して再開すると、一時的に問題が解決します。しかし、私はそれを防ぎたいです!

誰がこれが何であるか知っていますか?そして、それを修正する方法は?


vimrc更新中にデフォルトが変更されたようです。私の記憶が正しければ、以前はかなり大きなファイルでした。現在、これには次のものが含まれています。

" Configuration file for vim
set modelines=0         " CVE-2007-2438

" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible        " Use Vim defaults instead of 100% vi compatibility
set backspace=2         " more powerful backspacing

" Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup

これらのオプションが何をするのかまだわかりません。私はそれを調べます-しかし、できればここの誰かが私がグーグルで読んで読むよりも早く知っていることを願っています...


また、この質問がより適しているかもしれないアップル中心のフォーラムがあることにも気づきました。したがって、これがOS Xの状態である可能性が高い場合vim、おそらくmodがこれを移行する可能性があります。
svidgen 14

2
大学で「プライム」メインフレームで作業していることを思い出します。教授は、で矢印キーを使用しないでくださいと教えましたvi。常にhjklを使用します。それは、古代のハードウェア上で「矢印」キーが使用される場所です。
レッドクリケット14

OK ...しかし、矢印キーは機能するはずです。あなたの教授が私がそれらを使うべきだと思うかどうかに関係なく。そして時々便利だと思います。だから、解決策を楽しみにしています。
svidgen 14

1
キーリテラルをバッファに挿入するとどうなりますか?挿入モードに入り、Ctrl + v、次に矢印キーを押します。MacのVimでは、上矢印キーがとして^[OA、下として^[OB、右として^[OC、左として表示され^[ODます。問題が発生する前後に確認してください
ネイサンウォレス14

@NathanWallaceは、あなたの質問をどのように見落としたかわからない。次にMacにいるときに試してみます。
svidgen 14年

回答:


24

James Hodgkinsonのブログで見つけた、次のコマンドは私のために機能します。vim画面が更新されることに注意してください。

:!reset

この答えをどのように見落としたかはわかりませんが、とても有望です!
svidgen

実際...記事で説明されているようにCtrl + Rを押すと、上記のNathanへの応答で指摘された間違った矢印キーマッピングと完全に一貫して問題が再現されます。そして、リセットコマンドはその場合にそれを解決します。そして ..他の方法で問題を確実に再現することはできないので、これは間違いなく最も有用な答えです!
svidgen

11

私もこの問題に何度か遭遇しました。SSH経由でログインした別のコンピューターでGNU画面を実行していました。この問題を解決するために、画面を切り離し(Ctrl- a d)、マシンからログオフし、再度ログインして、を使用して再接続しましたscreen -x。画面を切り離して再接続するだけで、マシンからログオフせずに機能する場合があります。覚えていないけど。


スクリーンセッションを閉じて再起動すると、修正されました。
イーノ

1
それが私にとっての問題でした。どういうわけかscreenファンク状態になりました(ssh接続経由)。その端末を閉じてから、再びsshを実行screen -rdして、トリックを行いました。ありがとう!
ピエールD

@PierreD正しい、私はすでにこの問題に何度か遭遇しました-また、screenセッションで、Detach&Reattachは問題を解決しました、ありがとう!
stdcerr

6

パスでファイル/usr/share/vim/を見つけました.vimrc...そこで行を追加しました

set term=ansi 

それは私のために働いた。Vimエディターで矢印キーが正しく機能するようになりました。


2
Windows 10 WSL / Ubuntuの最新のアップデートで問題が発生したため、これで修正されました。
グレイフォックス

3

これはあなたの問題とよく似ています。記事のタイトルは「Vimのカーソルキー:狂気のMac!」です。

抜粋

Vimは多くの状況で、特に迅速な編集(特にルートとして)、およびリモートサーバー上のファイルの編集に役立ちます。Mac Book Proで9か月間悩んだことの1つは、行を変更する代わりに、挿入モードまたはコマンドモードの両方でベルを鳴らすVimのカーソルキーです。MacPortsを介してバージョン7にアップグレードしても、同じ結果が得られました。TERMをrxvtからVT220に切り替えた後、カーソルキーが機能しました。欠点は、構文の強調表示が機能しなくなることでした。

幸いなことに、Googleの検索パラメーターにVT220を追加すると、Vimのドキュメントでvt100-cursor-keysへの参照が見つかりました。問題を修正するには、次のコードを.vimrcファイルに追加します。

    :set notimeout          " don't timeout on mappings
    :set ttimeout           " do timeout on terminal key codes
    :set timeoutlen=100     " timeout after 100 msec

同じ記事では$TERMlinux代わりにOSX に設定するという別の提案があります。

抜粋

より良い解決策は、TERMのデフォルト値をlinuxまたはdttermに変更することです。これは、TERM値がリモートサーバーで取得されるためです。この時代には、ほとんどのサーバーがこれらの両方の端末タイプをサポートしていると思います。


うーん...今、私はさらに混乱しています。グローバル/デフォルト.vimrcファイルがあると思っていました。これらはOS Xの更新中に移動または削除されましたか?
svidgen

@svidgen-いいえ、それは変わっていないと思いますが、その問題はあなたの問題に非常に似ていて、修正は試してみるのに十分簡単なので、私はそれをあなたと共有すると思いました。ちなみに、$TERMあなたに変わったかもしれない。
slm

Whelp、これは間違いなくここで最も関連性の高い答えです。そのために+1。残念ながら、私は一貫して問題を再現することはできないので、まだ修正できるかどうかはわかりません。
svidgen 14年

この修正を適用した後、問題が再び発生しました。関連する回答であり、+ 1はそのままです。ただし、追加の回答を提供することに関心がある場合は、上記の私のコメントをご覧ください。
svidgen 14年

0

更新おめでとうございます。週末に自分でアップデートを行い、キーボードに関する奇妙な問題に対処してきました。

ここに私がする必要があったものがいくつかあります:

  • 古いLogitechゲームソフトウェアを削除してアップグレードします。これを行う前に、角かっこを使用して問題が発生していました。特別なキーは、VIMコンテキストでesc- [シーケンスを送信することが多いため、これは関連性があります。
  • システム設定:セキュリティとプライバシー:プライバシー:アクセシビリティに移動し、いくつかのアプリ(synergy_serverおよびLogitechゲームソフトウェア)を有効にします。この変更の前は、他のコンピューターを相乗効果で制御したり、G11でマクロを使用したりできませんでした。これはあなたにとって直接的な接続ではないと思いますが、アクセシビリティオプションは新しく、他のアプリに適用される可能性があります。

0

(言及していないが)の.sqlファイルで作業している場合は、vimこれが役立ちます。私は先日これに対処しました。

ファイル内 ~/.vimrc

let g:omni_sql_no_default_maps = 1

この特定の問題はここで議論されています

.sqlファイルでこの問題が発生していない場合はvim、申し訳ありませんvimが、問題が発生したときにマッピングを検証することしか考えられません。

:map Ctrl V → 矢印を使用できない場合は、そのコマンドを実行して、マッピングが消えたかどうかを確認してください。もしそうなら、これはあなたに掘り始める場所を与えます。


0

SSHセッションでこの問題が発生し、ログアウトしてから再度ログインすることで解決しました。

exit
ssh ...

計量してくれてありがとう。選択された答えは、私にとっては常に機能していました。試しましたか?
svidgen

はい、受け入れられたソリューションはUbuntu 18では動作しませんでした。vimをアンインストールして再インストールし(同じsshセッションで)、サイコロもしませんでした。ログアウトしてから再度ログインするだけで、矢印の機能が復元されました。
-duhaime

0

この問題は、Windowsで「システム環境変数」を使用して設定TERMしたときに発生しましたxterm-256colorvim変数を再度削除すると、問題はなくなりました(そして、正常に戻りました)。

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