bindings: hard-bind <Ctrl+Shift+Delete> to 'cutwordleft'
On FreeBSD and NetBSD (when reached through ssh from a Linux machine) this has the absurd effect of making <Ctrl+Backspace> do a 'cutwordleft' by default, out of the box, without needing any rebindings. Weird, but wonderful, because the ideal behavior. Also ensure that <Shift+Delete> always does a Backspace. This makes that we have the following set of "congruent" keys: <Tab> moves text to the right, <Shift+Tab> moves text to the left, <Delete> "eats" a character to the right, <Shift+Delete> "eats" a character to the left, <Ctrl+Delete> "eats" a word to the right, <Shift+Ctrl+Delete> "eats" a word to the left.master
parent
3270aac7db
commit
e6429e782a
|
@ -69,7 +69,7 @@ int didfind = 0;
|
||||||
/* Whether the last search found something. */
|
/* Whether the last search found something. */
|
||||||
|
|
||||||
int controlleft, controlright, controlup, controldown, controlhome, controlend;
|
int controlleft, controlright, controlup, controldown, controlhome, controlend;
|
||||||
int controldelete;
|
int controldelete, controlshiftdelete;
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
int shiftcontrolleft, shiftcontrolright, shiftcontrolup, shiftcontroldown;
|
int shiftcontrolleft, shiftcontrolright, shiftcontrolup, shiftcontroldown;
|
||||||
int shiftcontrolhome, shiftcontrolend;
|
int shiftcontrolhome, shiftcontrolend;
|
||||||
|
|
|
@ -2580,6 +2580,7 @@ int main(int argc, char **argv)
|
||||||
controlhome = get_keycode("kHOM5", CONTROL_HOME);
|
controlhome = get_keycode("kHOM5", CONTROL_HOME);
|
||||||
controlend = get_keycode("kEND5", CONTROL_END);
|
controlend = get_keycode("kEND5", CONTROL_END);
|
||||||
controldelete = get_keycode("kDC5", CONTROL_DELETE);
|
controldelete = get_keycode("kDC5", CONTROL_DELETE);
|
||||||
|
controlshiftdelete = get_keycode("kDC6", KEY_BACKSPACE);
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
/* Ask for the codes for Shift+Control+Left/Right/Up/Down. */
|
/* Ask for the codes for Shift+Control+Left/Right/Up/Down. */
|
||||||
shiftcontrolleft = get_keycode("kLFT6", SHIFT_CONTROL_LEFT);
|
shiftcontrolleft = get_keycode("kLFT6", SHIFT_CONTROL_LEFT);
|
||||||
|
|
|
@ -62,6 +62,7 @@ extern int controldown;
|
||||||
extern int controlhome;
|
extern int controlhome;
|
||||||
extern int controlend;
|
extern int controlend;
|
||||||
extern int controldelete;
|
extern int controldelete;
|
||||||
|
extern int controlshiftdelete;
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
extern int shiftcontrolleft;
|
extern int shiftcontrolleft;
|
||||||
extern int shiftcontrolright;
|
extern int shiftcontrolright;
|
||||||
|
|
|
@ -540,6 +540,8 @@ int parse_kbinput(WINDOW *win)
|
||||||
return CONTROL_END;
|
return CONTROL_END;
|
||||||
else if (retval == controldelete)
|
else if (retval == controldelete)
|
||||||
return CONTROL_DELETE;
|
return CONTROL_DELETE;
|
||||||
|
else if (retval == controlshiftdelete)
|
||||||
|
return the_code_for(do_cut_prev_word, KEY_BACKSPACE);
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
else if (retval == shiftcontrolleft) {
|
else if (retval == shiftcontrolleft) {
|
||||||
shift_held = TRUE;
|
shift_held = TRUE;
|
||||||
|
@ -705,6 +707,7 @@ int parse_kbinput(WINDOW *win)
|
||||||
return KEY_NPAGE;
|
return KEY_NPAGE;
|
||||||
#ifdef KEY_SDC /* Slang doesn't support KEY_SDC. */
|
#ifdef KEY_SDC /* Slang doesn't support KEY_SDC. */
|
||||||
case KEY_SDC:
|
case KEY_SDC:
|
||||||
|
return KEY_BACKSPACE;
|
||||||
#endif
|
#endif
|
||||||
case DEL_CODE:
|
case DEL_CODE:
|
||||||
if (ISSET(REBIND_DELETE))
|
if (ISSET(REBIND_DELETE))
|
||||||
|
|
Loading…
Reference in New Issue