發信人[email protected] (急難救助),
看板FreeBSD
標 題心得 在 freebsd 4.8 下在 bash screen 及 vim 環境使用 backspace
發信站SayYA 資訊站 (Tue Aug 17 13:33:14 2004)
轉信站ptt!ctu-reader!news.nctu!SayYa
事情的發生是由於不同的 Terminal 會將不同的按鍵定義為backspace
有一些是 ctrl-H 有一些則為 ctrl-?
在 putty 裡面的 keyboard 設定,可讓使用者選擇 backspace 所發出的
字元為 ctrl-h 或 ctrl-?,
但是當你連上不同的 Terminal 時, 可能會發生 backspace 無法動作的情形
假設你在按下 backspace 鍵時, 發出的按鍵為 ctrl-h
這時 在 bash shell 可以編輯
$HOME/.inputrc 這個檔案加入以下這行
"\C-H": backward-delete-char
但是當我使用 screen 時,發現 backspace 所發出的按鍵為 ^[[3~
^[ 表示為 ESCape
所以將 $HOME/.inputrc 加入以下這行
"\e[3~": backward-delete-char
至於為何使用 screen 會改變 backspace 所輸出的字元,這我就不清楚了,
有人要回答嗎? :)
在 VIM 若要使用 backspace, 必須要使用以下命令
set bs=2
在 VIM 裡面,如果你的 backspace 發出的字元是 ctrl-h 的話
使用 backspace 是應該是沒有問題的,但是,因為使用 screen 會將 backspace
發出的字元改為 ^[[3~, 必須將 ^[[3~ 在 insert mode 中 map 為 <BS>
而由於 ^[[3~ 在 VIM 中 的 digraphs 為 <kDel>, 使用以下的命令即可
imap <kDel> <BS>
若有任何錯誤,請指教!
By Typical
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: apt.wmlab.csie.ncu.edu.tw