CygwinでBackspaceが機能しない


29

Cygwinをインストールしたばかりで、BACKSPACE機能がありません。つまり、Backspaceキーを押すと、スペースができます。

Googleでこの問題を調査しようとしてきましたが、決定的なものは見つかりませんでした。


Cygwinのインストール方法と起動方法、およびバックスペースキーが正確に機能しない場所の詳細を教えてください。
ak2

1
私はこれがシェルで起こっていると推測しています。control-Vに続けてバックスペースを入力するとどうなりますか?そして、sttyコマンドの出力は何ですか?
キーストンプソン

どんなキーボードがありますか?米国、英国など
pjc50

これを解決したことがありますか?以前は機能していましたが、Cygwinの新しいインストールで表示されるようになりました。「スペース」を取得していないことに注意してください。キャラクターを消去するためにカーソルを戻すのに失敗しています。あなたが見ているスペースは、前のキャラクターを踏みつけることになっているスペースです。^ Lを押すと、バックスペースが機能していることがわかります。これが、sttyが問題を修正しない理由です。これは、CygwinがバインドされているCMDシェルがカーソルの動きを解釈できないことにほとんど似ています。
SomeCallMeTim

回答:


33

私の場合、空の〜/ .vimrcを作成した後、バックスペースはまったく機能しませんでした。次の変更により機能しました

プット:

bs = 2を設定します

.vimrc内

これはhttp://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.htmlで見つけました


ありがとう、これは私のために働いた-以前、Vimでは、バックスペースキーは行に沿って戻っていましたが、入力を開始するまで文字をクリアしませんでした。これで、「通常の」バックスペースが実行されます。
ロバート

4
この回答が他のユーザーの助けになったのは素晴らしいことですが、この場合、元の質問はvimについて尋ねていないので、この質問の解決策ではありません。
ケルシン14年

これはまた、私はカーソルキーで持っていた同様の問題解決
スティーブ・ポール

12

私のために働いた:Windowsコマンドプロンプトで、入力します

echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc

これはそれを追加し、.bashrcすべてがうまく機能するかもしれません!


1
私が持っていたTERMに環境変数のセットをmsys示唆するように、Windowsの環境変数の設定を経由してStackOverflowの上で助けにgitWindows上の問題。単にcygwininにリセットするだけで.bashrcは解決しませんでしたがTERM、Windowsの設定からエントリを削除することは役に立ちました。私を正しい方向に向けてくれてありがとう!
フロリアンブラッカー

これにより、cygwin64が改行を含むコマンドのバックスペースを無視していたという事実が解決されました。ありがとう。
suanik

11

上記のような問題の解決策を見つけました。

単にCygwinセットアップを再度実行し、再インストールtermcapしてくださいterminfo。検索ボックスを使用すると、すぐに見つけることができます。それぞれ「保持」と言う代わりに、クリックして「再インストール」と言います。term検索に表示するには、[ 非表示] チェックボックスをオンにする必要があります。

terminfoフォルダーが完全に欠落していました。理由はわかりません。これが誰かを助けることを願っています。


1
削除したカスタムインストールされたncursesがありました。cygwin setup.exeで削除して再インストールした後、この問題が発生しました。私は、TERM変数を私の事故の前に機能していたもの以外の何かに設定することにより、絆創膏を適用したくありません。terminfoの再インストール(termcapが見つかりませんでした)がうまくいきました。ありがとう!
ケルシン14年

クール、動作しますが、なぜですか?!
ヨルダンゲオルギエフ

5

c:\ cygwin \ cygwin.batを編集します

これを置きます: SET TERM=cygwin

前: bash --login -i


1
最も簡単な修正。副作用がないことを願っています。
RomanSt 14年

1

TERMタイプを設定すると、ターミナルウィンドウ内で描画するために使用するTERMCAPをホストに伝えます。ほとんどの* NIXホストは 'cygwin'用語タイプが何であるかを知らないため、挿入、削除、スクロール、フォント変更などの画面上の文字操作の方法を知りません。

ホストへのtelnetまたはSSHの前にCYGWINのTERM変数を変更すると、より良い結果が得られます。

CYGWINの場合:

d@test01 ~
$ TERM=ansi;export TERM
$ ssh suntest1

d@suntest1's password:
Sun Microsystems Inc.  SunOS 5.8     Generic patch    October 2001

d   pts/1         test01    Fri   Oct 12  00:15   still logged in
$ echo $TERM
ansi
$_

これでホストは、ANSI端末タイプがあることを認識し、ANSI TERMCAPファイルを使用して通信方法を指示できます。

それを動作させることができず、バックスペースを除いてほとんどすべてが正常に動作する場合、接続先のホストで「getty」を再プログラミングして必要なものを認識することができます(これが最も古い、最も一般的で最も普遍的なバックスペース/削除の問題を解決する方法):

ホストにsshまたはtelnetで接続し、ホストでsttyコマンドを実行します。「BACKSPACE」キーを押しても後方に戻らない場合は、おそらく端末がTERMタイプに基づいて異なる文字を探しているためです。すべてを掘り下げるのではなく、必要に応じて、または* NIXのフレーバーに基づいて、CLIまたは$ HOMEディレクトリの.profile、.bashrc、または.bash-profileファイルでバックスペース定義を手動で設定できます。使用しています。

したがって、^ H(CONTROL-H)を押してキーをバックアップしたが、BackSpaceキーを押しても、次のようにsttyを使用しようとしない場合:

stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]

ほとんどの場合、次のようになります。

stty erase \^?[ENTER]

「\」は、次の文字が印刷不可能な制御文字になり、それを「解釈」するのではなく受け入れることを示します。

[ENTER]を押すと、[BACKSPACE]キーを押して、入力したものをバックスペース/削除できるようになります。

これはシェルで設定できます。

現在、まだVIを使用している場合、翻訳が機能しない場合があり、viで実際に^ Hを入力する必要がありますが、それでも構いません。

あなたは言ったかもしれません:

stty erase k [ENTER]

文字通り 'k'を消去/削除文字に変換します。

-D


0

OK、Cygwinインストールを手動で更新するとこの問題が発生しました。とにかく私はこの投稿を見つけました。それは私のインストールの解決策につながります。

古いcygwinにはファイル/etc/terminfo/c/cygwinがありましたが、新しいcygwinではファイルがあると予想していました/etc/terminfo/63/cygwin

「cygwin」ファイルをこの場所にコピーすると、bashシェルのバックスペースキーは、タブなどと同様に正常に機能しました。


0

TERM変数をファイルに変更してファイルにcygwin追加SET TERM=cygwinしても.bat機能しませんでしたが、修正しました。ここで私がやったこと:パッケージマネージャーによるインストールのためにインストールすることを選択し、インストールxterm: X11 terminal emulatorSET TERM=xterm.batファイルに追加し(上記で提案したように)、ターミナルを起動し、オプション -> ターミナルメニューで選択しType=xtermターミナルを再起動しました。バックスペースが正常に動作し始めました!

注:cygwinを既にインストールしている場合-インストーラーを再度実行し、xtermパッケージを追加します。

私は走っています:

  • OS = Windows 8(x64)
  • Cygwin setup.exeバージョン= 2.850(x64)
  • Mittyバージョン= 1.2-beta1(x86_64-pc-cygwin)


0

私のために働いた:Windowsコマンドプロンプトで、入力します

(echo; echo "export TERM=cygwin") >> ~/.bash_profile

これにより.bash_profileに追加されます(.bashrcではなく、私にとっては機能しませんでしたが、先頭に改行があります)


0

2日間かけてオンラインで資料を読んだ後。私はこれが私のために働いたのを見つけました。このケースがすべてのケースに一致するかどうかはわかりません。しかし、ユクセルのおかげで、私には魅力のように働いた

問題は「termInfo」ファイルにあり、彼が提案した手順

  1. CygWinターミナルに入力して、問題が端末に関連しているかどうかを確認します(警告を無視してください)。

    less my_session.log

警告:端末は完全に機能していません

  1. CygWinターミナルで以下のコードを入力して、関連するパスまたはディレクトリの「TermCap」の情報を取得します

    infocmp -C

あなたはどちらかを取得する必要があります

infocmp:terminfoファイル/ usr / share / terminfo / 63 / cygwinを開けませんでした

または、「infocmp経由で再構築...」などのテキストで始まるものを取得することもできます

  1. CygWinターミナルで以下のコードを実行して診断を実行し、ファイルが保存されているパスに関する追加の詳細を取得します

    cygcheck -s

以下のテキストのように応答するはずです

Cygwin構成診断

...

C:/ cygwin /システムバイナリ、noacl

C:/ cygwin / bin / usr / binシステムバイナリ、noacl

C:/ cygwin / lib / usr / libシステムバイナリ、noacl

C:\ cygwin \ etc \ terminfo / usr / share / terminfoシステムバイナリ、noacl

cygdriveプレフィックス/ cygdriveユーザーバイナリ、noacl、posix = 0、auto

...

  1. 次のような行を確認してください

C:\ cygwin \ etc \ terminfo / usr / share / terminfoシステムバイナリ、noacl

出力から、3番目のステップから取得しました。今すべてに内部に存在するファイルとフォルダのコピーを/ usr / share / terminfoのにはフォルダーC:\ cygwinの\ ETC \ terminfoの -注:このフォルダは、インストールによって異なる場合があります


0

下の画像に従ってください ここに画像の説明を入力してください

  1. Cygwinウィンドウの任意の場所を右クリックします
  2. クリック options
  3. Keysタブをクリックします
  4. ダニ Backarrow sends ^H
  5. 適用を押します。

これは私のために働いた唯一のものです。特に、サーバーにSSHする必要がある場合(すべての修正が機能するわけではない)stty erase ^?、私は.bashrc に追加していましたが、これは80%の時間だけ問題を修正しました


-1

問題を経験したことはありません。Terminal Emulator Mintty(http://code.google.com/p/mintty/)をインストールしてください

Cygwinインストーラーから入手できます。cygwinに最適なターミナル。


これは役に立ちませんでした。
user620189

同じ問題にとらわれていて、mintyからもバックスペース機能が機能していません。Mintyターミナルとcygwinターミナルの両方でバックスペースを押すとスペースが得られます
レイチェル

@レイチェルこれを解決したことがありますか?Cygwinの新規インストールでも同じ問題が発生しています。:(
SomeCallMeTim

@SomeCallMeTim:Mintyを使用してこの問題を修正することができました。cygwinは時々非常に奇妙な動作をします。
レイチェル

@Rachelありがとう、私の問題はCygwinのインストールでいくつかの重要なファイル(/ usr / lib / terminfoなど)を見逃していたことでした。なぜ彼らが行方不明になったのか分かりません。その問題を抱えている他の人を見つけ、セットアップを開始し、terminfoとtermcapに再インストールするように指示すると、すべてが機能しました。
SomeCallMeTim
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.