nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit fb534bada65af8d7509612c492b6fdec4243a980
parent b5bc1b509425b6fc0f85d3fb00955aae116ce448
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   Mon,  3 Apr 2017 12:32:27 +0200

bindings: make ^Up/^Down go to first/last row in the file browser

Making ^Up and ^Down go to top and bottom row in the file browser
complements and completes the behavior of ^Left and ^Right.

Diffstat:
Msrc/browser.c | 11+++++++++++
Msrc/global.c | 16+++++++++++-----
2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/browser.c b/src/browser.c @@ -198,6 +198,17 @@ char *do_browser(char *path) } else if (func == do_down_void) { if (selected + width <= filelist_len - 1) selected += width; + } else if (func == do_prev_block) { + selected = ((selected / (editwinrows * width)) * + editwinrows * width) + selected % width; + } else if (func == do_next_block) { + selected = ((selected / (editwinrows * width)) * + editwinrows * width) + selected % width + + editwinrows * width - width; + if (selected >= filelist_len) + selected = (filelist_len / width) * width + selected % width; + if (selected >= filelist_len) + selected -= width; } else if (func == do_page_up) { if (selected < width) selected = 0; diff --git a/src/global.c b/src/global.c @@ -502,6 +502,8 @@ void shortcut_init(void) #ifndef NANO_TINY const char *nano_browser_lefthand_msg = N_("Go to lefthand column"); const char *nano_browser_righthand_msg = N_("Go to righthand column"); + const char *nano_browser_toprow_msg = N_("Go to first row in this column"); + const char *nano_browser_bottomrow_msg = N_("Go to last row in this column"); #endif #endif const char *nano_prevpage_msg = N_("Go one screenful up"); @@ -1015,7 +1017,11 @@ void shortcut_init(void) add_to_funcs(do_prev_word_void, MBROWSER, N_("Left Column"), IFSCHELP(nano_browser_lefthand_msg), TOGETHER, VIEW); add_to_funcs(do_next_word_void, MBROWSER, - N_("Right Column"), IFSCHELP(nano_browser_righthand_msg), BLANKAFTER, VIEW); + N_("Right Column"), IFSCHELP(nano_browser_righthand_msg), TOGETHER, VIEW); + add_to_funcs(do_prev_block, MBROWSER, + N_("Top Row"), IFSCHELP(nano_browser_toprow_msg), TOGETHER, VIEW); + add_to_funcs(do_next_block, MBROWSER, + N_("Bottom Row"), IFSCHELP(nano_browser_bottomrow_msg), BLANKAFTER, VIEW); #endif #endif @@ -1121,13 +1127,13 @@ void shortcut_init(void) add_to_sclist(MMAIN|MHELP|MBROWSER, "Down", KEY_DOWN, do_down_void, 0); #ifdef ENABLE_UTF8 if (using_utf8()) { - add_to_sclist(MMAIN, "^\xE2\x86\x91", CONTROL_UP, do_prev_block, 0); - add_to_sclist(MMAIN, "^\xE2\x86\x93", CONTROL_DOWN, do_next_block, 0); + add_to_sclist(MMAIN|MBROWSER, "^\xE2\x86\x91", CONTROL_UP, do_prev_block, 0); + add_to_sclist(MMAIN|MBROWSER, "^\xE2\x86\x93", CONTROL_DOWN, do_next_block, 0); } else #endif { - add_to_sclist(MMAIN, "^Up", CONTROL_UP, do_prev_block, 0); - add_to_sclist(MMAIN, "^Down", CONTROL_DOWN, do_next_block, 0); + add_to_sclist(MMAIN|MBROWSER, "^Up", CONTROL_UP, do_prev_block, 0); + add_to_sclist(MMAIN|MBROWSER, "^Down", CONTROL_DOWN, do_next_block, 0); } add_to_sclist(MMAIN, "M-7", 0, do_prev_block, 0); add_to_sclist(MMAIN, "M-8", 0, do_next_block, 0);