バックスペースが動作しない

現象

  • バックスペースキーやCTRL-Hを押しても、文字が削除されない、バックスペースとして正しく動作しない。
  • tmuxではバックスペースは^?を使う。(^Hではない)
  • よって、シェルがバックスペースを認識するように、sttyで^?を設定する。

解決方法

現在の状態を確認する

$ stty -a | grep erase
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
  • eraseが^H

.bashrcでsttyを^?に設定する

[[ -n "$TMUX" ]] && stty erase ^?
[[ "$TERM" =~ ^screen ]] && stty erase ^?
  • ^? の箇所は、CTRL-Vを押した後に、バックスペースキーを押す。バックスペースのキーコードを入力する。
  • 文字通り^?と入力しないこと。
  • なお、$TMUXはtmuxを実行したホストで有効になる環境変数。
  • tmuxを実行したホストからsshなどで他ホストへ接続した場合は、$TERMでtmuxを判定する。$TERMは自分のターミナル環境の設定に合わせること。

参考

https://superuser.com/questions/410864/vim-tmux-backspace


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2018-06-07 (木) 10:29:46 (107d)