mirror of
git://git.sv.gnu.org/nano.git
synced 2024-11-26 14:51:36 +03:00
scrolling: add a function and a key binding to center the cursor line
By default, this function is bound to ^L, to make that keystroke do something actually useful. To not lose the Refresh function that this keystroke had, the centering function additionally does a full redraw and refresh of the screen.
This commit is contained in:
parent
eb413a99f2
commit
1a2d0c1770
@ -1370,6 +1370,9 @@ while keeping the cursor in the same text position, if possible.
|
|||||||
Scrolls the viewport down one row (meaning that the text slides up)
|
Scrolls the viewport down one row (meaning that the text slides up)
|
||||||
while keeping the cursor in the same text position, if possible.
|
while keeping the cursor in the same text position, if possible.
|
||||||
|
|
||||||
|
@item center
|
||||||
|
Scrolls the line with the cursor to the middle of the screen.
|
||||||
|
|
||||||
@item prevword
|
@item prevword
|
||||||
Moves the cursor to the beginning of the previous word.
|
Moves the cursor to the beginning of the previous word.
|
||||||
|
|
||||||
|
@ -674,6 +674,9 @@ while keeping the cursor in the same text position, if possible.
|
|||||||
Scrolls the viewport down one row (meaning that the text slides up)
|
Scrolls the viewport down one row (meaning that the text slides up)
|
||||||
while keeping the cursor in the same text position, if possible.
|
while keeping the cursor in the same text position, if possible.
|
||||||
.TP
|
.TP
|
||||||
|
.B center
|
||||||
|
Scrolls the line with the cursor to the middle of the screen.
|
||||||
|
.TP
|
||||||
.B prevword
|
.B prevword
|
||||||
Moves the cursor to the beginning of the previous word.
|
Moves the cursor to the beginning of the previous word.
|
||||||
.TP
|
.TP
|
||||||
|
10
src/global.c
10
src/global.c
@ -622,6 +622,7 @@ void shortcut_init(void)
|
|||||||
N_("Scroll up one line without moving the cursor textually");
|
N_("Scroll up one line without moving the cursor textually");
|
||||||
const char *scrolldown_gist =
|
const char *scrolldown_gist =
|
||||||
N_("Scroll down one line without moving the cursor textually");
|
N_("Scroll down one line without moving the cursor textually");
|
||||||
|
const char *center_gist = N_("Center the line where the cursor is");
|
||||||
#endif
|
#endif
|
||||||
#ifdef ENABLE_MULTIBUFFER
|
#ifdef ENABLE_MULTIBUFFER
|
||||||
const char *prevfile_gist = N_("Switch to the previous file buffer");
|
const char *prevfile_gist = N_("Switch to the previous file buffer");
|
||||||
@ -1035,7 +1036,11 @@ void shortcut_init(void)
|
|||||||
N_("Formatter"), WITHORSANS(formatter_gist), BLANKAFTER, NOVIEW);
|
N_("Formatter"), WITHORSANS(formatter_gist), BLANKAFTER, NOVIEW);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif /* NANO_TINY */
|
#endif /* !NANO_TINY */
|
||||||
|
#if !defined(NANO_TINY) || defined(ENABLE_HELP)
|
||||||
|
add_to_funcs(do_center, MMAIN,
|
||||||
|
N_("Center"), WITHORSANS(center_gist), BLANKAFTER, VIEW);
|
||||||
|
#endif
|
||||||
add_to_funcs(do_savefile, MMAIN,
|
add_to_funcs(do_savefile, MMAIN,
|
||||||
N_("Save"), WITHORSANS(savefile_gist), BLANKAFTER, NOVIEW);
|
N_("Save"), WITHORSANS(savefile_gist), BLANKAFTER, NOVIEW);
|
||||||
|
|
||||||
@ -1322,6 +1327,9 @@ void shortcut_init(void)
|
|||||||
#endif
|
#endif
|
||||||
#ifdef ENABLE_JUSTIFY
|
#ifdef ENABLE_JUSTIFY
|
||||||
add_to_sclist(MEXECUTE, "^J", 0, do_full_justify, 0);
|
add_to_sclist(MEXECUTE, "^J", 0, do_full_justify, 0);
|
||||||
|
#endif
|
||||||
|
#if !defined(NANO_TINY) || defined(ENABLE_HELP)
|
||||||
|
add_to_sclist(MMAIN, "^L", 0, do_center, 0);
|
||||||
#endif
|
#endif
|
||||||
if (!ISSET(PRESERVE))
|
if (!ISSET(PRESERVE))
|
||||||
add_to_sclist(MMOST|MBROWSER|MHELP|MYESNO, "^L", 0, full_refresh, 0);
|
add_to_sclist(MMOST|MBROWSER|MHELP|MYESNO, "^L", 0, full_refresh, 0);
|
||||||
|
10
src/move.c
10
src/move.c
@ -562,7 +562,15 @@ void do_scroll_down(void)
|
|||||||
))
|
))
|
||||||
edit_scroll(FORWARD);
|
edit_scroll(FORWARD);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
/* Scroll the line with the cursor to the center of the screen. */
|
||||||
|
void do_center(void)
|
||||||
|
{
|
||||||
|
adjust_viewport(CENTERING);
|
||||||
|
draw_all_subwindows();
|
||||||
|
full_refresh();
|
||||||
|
}
|
||||||
|
#endif /* !NANO_TINY || ENABLE_HELP */
|
||||||
|
|
||||||
/* Move left one character. */
|
/* Move left one character. */
|
||||||
void do_left(void)
|
void do_left(void)
|
||||||
|
@ -386,6 +386,7 @@ void do_down(void);
|
|||||||
#if !defined(NANO_TINY) || defined(ENABLE_HELP)
|
#if !defined(NANO_TINY) || defined(ENABLE_HELP)
|
||||||
void do_scroll_up(void);
|
void do_scroll_up(void);
|
||||||
void do_scroll_down(void);
|
void do_scroll_down(void);
|
||||||
|
void do_center(void);
|
||||||
#endif
|
#endif
|
||||||
void do_left(void);
|
void do_left(void);
|
||||||
void do_right(void);
|
void do_right(void);
|
||||||
|
@ -348,6 +348,8 @@ keystruct *strtosc(const char *input)
|
|||||||
s->func = do_scroll_up;
|
s->func = do_scroll_up;
|
||||||
else if (!strcmp(input, "scrolldown"))
|
else if (!strcmp(input, "scrolldown"))
|
||||||
s->func = do_scroll_down;
|
s->func = do_scroll_down;
|
||||||
|
else if (!strcmp(input, "center"))
|
||||||
|
s->func = do_center;
|
||||||
#endif
|
#endif
|
||||||
else if (!strcmp(input, "prevword"))
|
else if (!strcmp(input, "prevword"))
|
||||||
s->func = to_prev_word;
|
s->func = to_prev_word;
|
||||||
|
Loading…
Reference in New Issue
Block a user