[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Nano-devel] [PATCH 2/3 V13] bindings: hard-bind the bookmark functions
From: |
Benno Schulenberg |
Subject: |
[Nano-devel] [PATCH 2/3 V13] bindings: hard-bind the bookmark functions to M-Ins and M-PgUp/M-PgDn |
Date: |
Mon, 17 Dec 2018 15:12:27 +0100 |
From: Marco Diego Aurélio Mesquita <address@hidden>
Bind the toggling of a bookmark to <Alt+Insert>, and the jumping to
previous and next bookmark to <Alt+PageUp> and <Alt+PageDown>, so that
these functions are available by default.
Signed-off-by: Marco Diego Aurélio Mesquita <address@hidden>
---
src/global.c | 6 +++++-
src/nano.c | 4 ++++
src/nano.h | 3 +++
src/proto.h | 3 ++-
src/winio.c | 23 ++++++++++++++++++++++-
5 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/src/global.c b/src/global.c
index d8b4ecd9..a42320c6 100644
--- a/src/global.c
+++ b/src/global.c
@@ -76,7 +76,8 @@ int shiftleft, shiftright, shiftup, shiftdown;
int shiftcontrolleft, shiftcontrolright, shiftcontrolup, shiftcontroldown;
int shiftcontrolhome, shiftcontrolend;
int altleft, altright, altup, altdown;
-int altdelete;
+int altpageup, altpagedown;
+int altinsert, altdelete;
int shiftaltleft, shiftaltright, shiftaltup, shiftaltdown;
#endif
@@ -1158,6 +1159,9 @@ void shortcut_init(void)
add_to_sclist(MMAIN, "Sh-^Del", CONTROL_SHIFT_DELETE, do_cut_prev_word,
0);
add_to_sclist(MMAIN, "^Del", CONTROL_DELETE, do_cut_next_word, 0);
add_to_sclist(MMAIN, "M-Del", ALT_DELETE, zap_text, 0);
+ add_to_sclist(MMAIN, "M-Ins", ALT_INSERT, bookmark, 0);
+ add_to_sclist(MMAIN, "M-PgUp", ALT_PAGEUP, to_prev_bookmark, 0);
+ add_to_sclist(MMAIN, "M-PgDn", ALT_PAGEDOWN, to_next_bookmark, 0);
#endif
#ifdef ENABLE_WORDCOMPLETION
add_to_sclist(MMAIN, "^]", 0, complete_a_word, 0);
diff --git a/src/nano.c b/src/nano.c
index f42044cf..4362603b 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -2602,6 +2602,10 @@ int main(int argc, char **argv)
altright = get_keycode("kRIT3", ALT_RIGHT);
altup = get_keycode("kUP3", ALT_UP);
altdown = get_keycode("kDN3", ALT_DOWN);
+
+ altpageup = get_keycode("kPRV3", ALT_PAGEUP);
+ altpagedown = get_keycode("kNXT3", ALT_PAGEDOWN);
+ altinsert = get_keycode("kIC3", ALT_INSERT);
altdelete = get_keycode("kDC3", ALT_DELETE);
shiftaltleft = get_keycode("kLFT4", SHIFT_ALT_LEFT);
diff --git a/src/nano.h b/src/nano.h
index 2237a5fd..2f242d31 100644
--- a/src/nano.h
+++ b/src/nano.h
@@ -598,6 +598,9 @@ enum
#define ALT_RIGHT 0x422
#define ALT_UP 0x423
#define ALT_DOWN 0x424
+#define ALT_PAGEUP 0x427
+#define ALT_PAGEDOWN 0x428
+#define ALT_INSERT 0x42C
#define ALT_DELETE 0x42D
#define SHIFT_ALT_LEFT 0x431
#define SHIFT_ALT_RIGHT 0x432
diff --git a/src/proto.h b/src/proto.h
index ab6034a3..c7c7ad6b 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -67,7 +67,8 @@ extern int shiftcontrolup, shiftcontroldown;
extern int shiftcontrolhome, shiftcontrolend;
extern int altleft, altright;
extern int altup, altdown;
-extern int altdelete;
+extern int altpageup, altpagedown;
+extern int altinsert, altdelete;
extern int shiftaltleft, shiftaltright;
extern int shiftaltup, shiftaltdown;
#endif
diff --git a/src/winio.c b/src/winio.c
index a4a3df77..81c95e2b 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -570,6 +570,12 @@ int parse_kbinput(WINDOW *win)
return ALT_UP;
else if (retval == altdown)
return ALT_DOWN;
+ else if (retval == altpageup)
+ return ALT_PAGEUP;
+ else if (retval == altpagedown)
+ return ALT_PAGEDOWN;
+ else if (retval == altinsert)
+ return ALT_INSERT;
else if (retval == altdelete)
return ALT_DELETE;
else if (retval == shiftaltleft) {
@@ -610,6 +616,12 @@ int parse_kbinput(WINDOW *win)
}
/* Is Alt being held? */
if (modifiers == 0x08) {
+ if (retval == KEY_PPAGE)
+ return ALT_PAGEUP;
+ if (retval == KEY_NPAGE)
+ return ALT_PAGEDOWN;
+ if (retval == KEY_IC)
+ return ALT_INSERT;
if (retval == KEY_DC)
return ALT_DELETE;
if (retval == KEY_UP)
@@ -1101,9 +1113,14 @@ int convert_sequence(const int *seq, size_t length, int
*consumed)
/* Esc [ 2 ~ == Insert
on VT220/VT320/
* Linux
console/xterm/Terminal. */
return KEY_IC;
- else if (length > 4 && seq[2]
== ';' && seq[4] == '~')
+ else if (length > 4 && seq[2]
== ';' && seq[4] == '~') {
/* Esc [ 2 ; x ~ ==
modified Insert on xterm. */
*consumed = 5;
+#ifndef NANO_TINY
+ if (seq[3] == '3')
+ return
ALT_INSERT;
+#endif
+ }
break;
case '3': /* Esc [ 3 ~ == Delete on
VT220/VT320/
* Linux
console/xterm/Terminal. */
@@ -1153,6 +1170,8 @@ int convert_sequence(const int *seq, size_t length, int
*consumed)
#ifndef NANO_TINY
if (seq[3] == '2')
return
shiftaltup;
+ if (seq[3] == '3')
+ return
ALT_PAGEUP;
#endif
}
break;
@@ -1166,6 +1185,8 @@ int convert_sequence(const int *seq, size_t length, int
*consumed)
#ifndef NANO_TINY
if (seq[3] == '2')
return
shiftaltdown;
+ if (seq[3] == '3')
+ return
ALT_PAGEDOWN;
#endif
}
break;
--
2.19.2
- [Nano-devel] [PATCH 1/3 V13] new feature: bindable functions for toggling and jumping to bookmarks, Benno Schulenberg, 2018/12/17
- [Nano-devel] [PATCH 2/3 V13] bindings: hard-bind the bookmark functions to M-Ins and M-PgUp/M-PgDn,
Benno Schulenberg <=
- [Nano-devel] [PATCH 3/3 V13] docs: add descriptions of the bindable bookmark functions, Benno Schulenberg, 2018/12/17
- Re: [Nano-devel] [PATCH 1/3 V13] new feature: bindable functions for toggling and jumping to bookmarks, Benno Schulenberg, 2018/12/17
- [Nano-devel] pasting into a line deletes its bookmark, Benno Schulenberg, 2018/12/17
- Re: [Nano-devel] pasting into a line deletes its bookmark, Marco Diego Aurélio Mesquita, 2018/12/17
- Re: [Nano-devel] pasting into a line deletes its bookmark, Benno Schulenberg, 2018/12/17
- Re: [Nano-devel] pasting into a line deletes its bookmark, Marco Diego Aurélio Mesquita, 2018/12/17
- Re: [Nano-devel] pasting into a line deletes its bookmark, Marco Diego Aurélio Mesquita, 2018/12/17
- Re: [Nano-devel] pasting into a line deletes its bookmark, Benno Schulenberg, 2018/12/18
- Re: [Nano-devel] pasting into a line deletes its bookmark, Marco Diego Aurélio Mesquita, 2018/12/18
- Re: [Nano-devel] pasting into a line deletes its bookmark, Benno Schulenberg, 2018/12/19