Cygwinをインストールしたばかりで、BACKSPACE機能がありません。つまり、Backspaceキーを押すと、スペースが表示されます。
私はGoogleでこの問題を調査しようとしましたが、決定的なものは見つかりませんでした。
私の場合、空白の〜/ .vimrcを作成した後、バックスペースがまったく機能しませんでした。次の変更により機能しました
置く:
bs = 2に設定
.vimrc
これは http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html で見つかりました
私のために働いた:Windowsコマンドプロンプトで、入力
echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc
これにより.bashrc
に追加され、すべてがうまく機能する可能性があります。
上記のような問題に solution が見つかりました。
Cygwinセットアップを再度実行し、termcap
とterminfo
を再インストールするだけです。検索ボックスを使用すると、すばやく検索できます。それぞれに対して「保持」と言う代わりに、クリックして「再インストール」と言ってください。検索に表示されるterm
の[非表示]チェックボックスをオンにする必要がある場合があります。
Terminfoフォルダが完全になくなっていました。なぜだかわかりません。これが誰かを助けることを願っています。
C:\ cygwin\cygwin.batを編集します
これを配置:SET TERM=cygwin
前: bash --login -i
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タイプに基づいて別の文字を探しているためです。すべてを徹底的に調査するのではなく、CLIまたは$ HOMEディレクトリの.profile、.bashrc、または.bash-profileファイルでバックスペース定義を手動で設定することも、必要に応じて、または* NIXのフレーバーに基づいて設定することもできます。使用しています。
したがって、^ H(これはCONTROL-Hです)を押してキーをバックアップしても、BACKSPACEキーを押した場合、次のようにsttyを使用しようとしません。
stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]
ほとんどの場合、次のようになります。
stty erase \^?[ENTER]
'\'は、次の文字が印刷不可能な制御文字になり、それを「解釈」するのではなく、受け入れることを伝えます。
[ENTER]を押すと、[BACKSPACE]キーを押して、入力した内容をバックスペース/削除できるようになります。
シェルでこれを設定できます。
ここで、まだVIを使用している場合、変換が機能せず、viで実際に^ Hを入力する必要がありますが、それでも問題ありません。
あなたは言ったでしょう:
stty消去k [ENTER]
そしてそれは文字通り「k」を消去/削除文字に変換します。
-D
TERM
変数をcygwin
に変更し、SET TERM=cygwin
を.bat
ファイルに追加しても機能しませんでしたが、修正しました。ここで私がしたこと:パッケージマネージャーのインストール予定でxterm: X11 terminal emulator
をインストールすることを選択しました。インストール後、SET TERM=xterm
を.bat
ファイルに追加し(上記の提案のように)、ターミナルを起動しましたオプション-> ターミナルメニューが選択されたType=xterm
、そしてターミナルを再起動。バックスペースが正しく機能し始めました!
注:既にcygwinをインストールしている場合は、インストーラーを再度実行してxtermパッケージを追加してください。
私は走っています:
ここですべての答えに同意します。しかし、ここにははるかに簡単な方法があります: http://lifepluslinux.blogspot.in/2014/08/backspace-doesnt-work-in-vim-on-cygwin.html
わかりました、Cygwinインストールを手動で更新することでこの問題が発生しました。とにかく、私は this post を見つけました。
古いcygwinにはファイル/etc/terminfo/c/cygwin
ですが、新しいcygwinでは、ファイルが/etc/terminfo/63/cygwin
。
「cygwin」ファイルをこの場所にコピーすると、タブなどと同様に、bashシェルのバックスペースキーが正常に機能しました。
オンラインで2日間読んだ後私はこれが私のために働いたのを見つけました。このケースがすべてに一致するかどうかはわかりません。しかし、それは Yuksel のおかげで私にとって魅力のように働きました
問題は「termInfo」ファイルにありました、彼が示唆したステップ
cygWinターミナルに入力して、問題が端末に関連しているかどうかを確認します。これにより、警告が表示されます(無視してください)。
less my_session.log
警告:端末が完全に機能していません
CygWinターミナルで以下のコードを入力して、関連するパスまたはディレクトリに「TermCap」の情報を取得します
infocmp -C
あなたはどちらかを取得する必要があります
infocmp:terminfoファイル/ usr/share/terminfo/63/cygwinを開けませんでした
または、「infocmpを使用して再構築...」のようなテキストで始まるものを取得することもできます。
CygWinターミナルで以下のコードを実行して診断を実行し、ファイルが保存されているパスに関する詳細を取得します
cygcheck -s
以下のテキストのように応答するはずです
Cygwin構成診断
...
C:/ cygwin /システムバイナリ、noacl
C:/ cygwin/bin/usr/binシステムバイナリ、noacl
C:/ cygwin/lib/usr/lib system binary、noacl
C:\ cygwin\etc\terminfo/usr/share/terminfo system binary、noacl
cygdriveプレフィックス/ cygdriveユーザーバイナリ、noacl、posix = 0、auto
...
C:\ cygwin\etc\terminfo/usr/share/terminfo system binary、noacl
出力から、3番目のステップから取得しました。 / usr/share/terminfo内に存在するすべてのファイルとフォルダーをフォルダーC:\ cygwinにコピーします\ etc\terminfo-注:このフォルダは、インストールによっては実際のフォルダと異なる場合があります
私のために働いた:Windowsコマンドプロンプトで、入力
(echo; echo "export TERM=cygwin") >> ~/.bash_profile
これはそれを.bash_profileに追加します(.bashrcではなく、これは私には機能せず、先頭に改行がありました)。