问题
I use tcsh , and when Delete/End is pressed on cmd line, it simply shows up as ~
; I have to press <Ctrl><e>
to go to end of line. Can anyone help me to be able to use Delete/End keys as their name suggests ?
回答1:
Those keys already worked on my Debian system. I found these commands in the /etc/csh.cshrc
file:
if ($?tcsh && $?prompt) then
bindkey "\e[1~" beginning-of-line # Home
bindkey "\e[7~" beginning-of-line # Home rxvt
bindkey "\e[2~" overwrite-mode # Ins
bindkey "\e[3~" delete-char # Delete
bindkey "\e[4~" end-of-line # End
bindkey "\e[8~" end-of-line # End rxvt
endif
回答2:
You need to use the bindkey
builtin. See the tcsh man page discussion for details (search for 'bindkey'), but you want to add a line like
bindkey [end] end-of-line
to your .cshrc
or .tcshrc
file, replacing '[end]' with the actual end keypress. See this page for the list of binding names and helpful examples.
回答3:
There's a great resource on fixing inconsistencies with delete/backspace here. The document also addresses mapping home/end, though that's not the focus.
来源:https://stackoverflow.com/questions/1912328/how-to-map-delete-and-end-keys-on-tcsh-shell