mirror of
https://github.com/tmux/tmux.git
synced 2024-11-08 04:08:49 +00:00
Sync OpenBSD patchset 617:
Top/bottom of history mode keys, diff from Micah Cowan, tweaked by me.
This commit is contained in:
parent
0b05e6d8cb
commit
c153a43299
12
mode-key.c
12
mode-key.c
@ -1,4 +1,4 @@
|
|||||||
/* $Id: mode-key.c,v 1.37 2010-01-25 17:11:42 tcunha Exp $ */
|
/* $Id: mode-key.c,v 1.38 2010-01-28 22:41:45 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -84,6 +84,8 @@ struct mode_key_cmdstr mode_key_cmdstr_copy[] = {
|
|||||||
{ MODEKEYCOPY_DOWN, "cursor-down" },
|
{ MODEKEYCOPY_DOWN, "cursor-down" },
|
||||||
{ MODEKEYCOPY_ENDOFLINE, "end-of-line" },
|
{ MODEKEYCOPY_ENDOFLINE, "end-of-line" },
|
||||||
{ MODEKEYCOPY_GOTOLINE, "goto-line" },
|
{ MODEKEYCOPY_GOTOLINE, "goto-line" },
|
||||||
|
{ MODEKEYCOPY_HISTORYBOTTOM, "history-bottom" },
|
||||||
|
{ MODEKEYCOPY_HISTORYTOP, "history-top" },
|
||||||
{ MODEKEYCOPY_LEFT, "cursor-left" },
|
{ MODEKEYCOPY_LEFT, "cursor-left" },
|
||||||
{ MODEKEYCOPY_MIDDLELINE, "middle-line" },
|
{ MODEKEYCOPY_MIDDLELINE, "middle-line" },
|
||||||
{ MODEKEYCOPY_NEXTPAGE, "page-down" },
|
{ MODEKEYCOPY_NEXTPAGE, "page-down" },
|
||||||
@ -116,13 +118,13 @@ const struct mode_key_entry mode_key_vi_edit[] = {
|
|||||||
|
|
||||||
{ '$', 1, MODEKEYEDIT_ENDOFLINE },
|
{ '$', 1, MODEKEYEDIT_ENDOFLINE },
|
||||||
{ '0', 1, MODEKEYEDIT_STARTOFLINE },
|
{ '0', 1, MODEKEYEDIT_STARTOFLINE },
|
||||||
{ 'd', 1, MODEKEYEDIT_DELETELINE },
|
|
||||||
{ 'D', 1, MODEKEYEDIT_DELETETOENDOFLINE },
|
{ 'D', 1, MODEKEYEDIT_DELETETOENDOFLINE },
|
||||||
{ '\003' /* C-c */, 1, MODEKEYEDIT_CANCEL },
|
{ '\003' /* C-c */, 1, MODEKEYEDIT_CANCEL },
|
||||||
{ '\010' /* C-h */, 1, MODEKEYEDIT_BACKSPACE },
|
{ '\010' /* C-h */, 1, MODEKEYEDIT_BACKSPACE },
|
||||||
{ '\r', 1, MODEKEYEDIT_ENTER },
|
{ '\r', 1, MODEKEYEDIT_ENTER },
|
||||||
{ '^', 1, MODEKEYEDIT_STARTOFLINE },
|
{ '^', 1, MODEKEYEDIT_STARTOFLINE },
|
||||||
{ 'a', 1, MODEKEYEDIT_SWITCHMODEAPPEND },
|
{ 'a', 1, MODEKEYEDIT_SWITCHMODEAPPEND },
|
||||||
|
{ 'd', 1, MODEKEYEDIT_DELETELINE },
|
||||||
{ 'h', 1, MODEKEYEDIT_CURSORLEFT },
|
{ 'h', 1, MODEKEYEDIT_CURSORLEFT },
|
||||||
{ 'i', 1, MODEKEYEDIT_SWITCHMODE },
|
{ 'i', 1, MODEKEYEDIT_SWITCHMODE },
|
||||||
{ 'j', 1, MODEKEYEDIT_HISTORYDOWN },
|
{ 'j', 1, MODEKEYEDIT_HISTORYDOWN },
|
||||||
@ -164,6 +166,7 @@ const struct mode_key_entry mode_key_vi_copy[] = {
|
|||||||
{ '0', 0, MODEKEYCOPY_STARTOFLINE },
|
{ '0', 0, MODEKEYCOPY_STARTOFLINE },
|
||||||
{ ':', 0, MODEKEYCOPY_GOTOLINE },
|
{ ':', 0, MODEKEYCOPY_GOTOLINE },
|
||||||
{ '?', 0, MODEKEYCOPY_SEARCHUP },
|
{ '?', 0, MODEKEYCOPY_SEARCHUP },
|
||||||
|
{ 'G', 0, MODEKEYCOPY_HISTORYBOTTOM },
|
||||||
{ 'H', 0, MODEKEYCOPY_TOPLINE },
|
{ 'H', 0, MODEKEYCOPY_TOPLINE },
|
||||||
{ 'J', 0, MODEKEYCOPY_SCROLLDOWN },
|
{ 'J', 0, MODEKEYCOPY_SCROLLDOWN },
|
||||||
{ 'K', 0, MODEKEYCOPY_SCROLLUP },
|
{ 'K', 0, MODEKEYCOPY_SCROLLUP },
|
||||||
@ -181,6 +184,7 @@ const struct mode_key_entry mode_key_vi_copy[] = {
|
|||||||
{ '\r', 0, MODEKEYCOPY_COPYSELECTION },
|
{ '\r', 0, MODEKEYCOPY_COPYSELECTION },
|
||||||
{ '^', 0, MODEKEYCOPY_BACKTOINDENTATION },
|
{ '^', 0, MODEKEYCOPY_BACKTOINDENTATION },
|
||||||
{ 'b', 0, MODEKEYCOPY_PREVIOUSWORD },
|
{ 'b', 0, MODEKEYCOPY_PREVIOUSWORD },
|
||||||
|
{ 'g', 0, MODEKEYCOPY_HISTORYTOP },
|
||||||
{ 'h', 0, MODEKEYCOPY_LEFT },
|
{ 'h', 0, MODEKEYCOPY_LEFT },
|
||||||
{ 'j', 0, MODEKEYCOPY_DOWN },
|
{ 'j', 0, MODEKEYCOPY_DOWN },
|
||||||
{ 'k', 0, MODEKEYCOPY_UP },
|
{ 'k', 0, MODEKEYCOPY_UP },
|
||||||
@ -254,6 +258,9 @@ struct mode_key_tree mode_key_tree_emacs_choice;
|
|||||||
/* emacs copy mode keys. */
|
/* emacs copy mode keys. */
|
||||||
const struct mode_key_entry mode_key_emacs_copy[] = {
|
const struct mode_key_entry mode_key_emacs_copy[] = {
|
||||||
{ ' ', 0, MODEKEYCOPY_NEXTPAGE },
|
{ ' ', 0, MODEKEYCOPY_NEXTPAGE },
|
||||||
|
{ '<' | KEYC_ESCAPE,0, MODEKEYCOPY_HISTORYTOP },
|
||||||
|
{ '>' | KEYC_ESCAPE, 0, MODEKEYCOPY_HISTORYBOTTOM },
|
||||||
|
{ 'R' | KEYC_ESCAPE, 0, MODEKEYCOPY_TOPLINE },
|
||||||
{ '\000' /* C-Space */, 0, MODEKEYCOPY_STARTSELECTION },
|
{ '\000' /* C-Space */, 0, MODEKEYCOPY_STARTSELECTION },
|
||||||
{ '\001' /* C-a */, 0, MODEKEYCOPY_STARTOFLINE },
|
{ '\001' /* C-a */, 0, MODEKEYCOPY_STARTOFLINE },
|
||||||
{ '\002' /* C-b */, 0, MODEKEYCOPY_LEFT },
|
{ '\002' /* C-b */, 0, MODEKEYCOPY_LEFT },
|
||||||
@ -275,7 +282,6 @@ const struct mode_key_entry mode_key_emacs_copy[] = {
|
|||||||
{ 'n', 0, MODEKEYCOPY_SEARCHAGAIN },
|
{ 'n', 0, MODEKEYCOPY_SEARCHAGAIN },
|
||||||
{ 'q', 0, MODEKEYCOPY_CANCEL },
|
{ 'q', 0, MODEKEYCOPY_CANCEL },
|
||||||
{ 'r' | KEYC_ESCAPE, 0, MODEKEYCOPY_MIDDLELINE },
|
{ 'r' | KEYC_ESCAPE, 0, MODEKEYCOPY_MIDDLELINE },
|
||||||
{ 'R' | KEYC_ESCAPE, 0, MODEKEYCOPY_TOPLINE },
|
|
||||||
{ 'v' | KEYC_ESCAPE, 0, MODEKEYCOPY_PREVIOUSPAGE },
|
{ 'v' | KEYC_ESCAPE, 0, MODEKEYCOPY_PREVIOUSPAGE },
|
||||||
{ 'w' | KEYC_ESCAPE, 0, MODEKEYCOPY_COPYSELECTION },
|
{ 'w' | KEYC_ESCAPE, 0, MODEKEYCOPY_COPYSELECTION },
|
||||||
{ KEYC_DOWN | KEYC_CTRL,0, MODEKEYCOPY_SCROLLDOWN },
|
{ KEYC_DOWN | KEYC_CTRL,0, MODEKEYCOPY_SCROLLDOWN },
|
||||||
|
6
tmux.1
6
tmux.1
@ -1,4 +1,4 @@
|
|||||||
.\" $Id: tmux.1,v 1.223 2010-01-25 17:11:42 tcunha Exp $
|
.\" $Id: tmux.1,v 1.224 2010-01-28 22:41:45 tcunha Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
.\"
|
.\"
|
||||||
@ -14,7 +14,7 @@
|
|||||||
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||||
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: January 23 2010 $
|
.Dd $Mdocdate: January 25 2010 $
|
||||||
.Dt TMUX 1
|
.Dt TMUX 1
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -538,6 +538,7 @@ The following keys are supported as appropriate for the mode:
|
|||||||
.Bl -column "FunctionXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent
|
.Bl -column "FunctionXXXXXXXXXXXX" "viXXXXXXXXXX" "emacs" -offset indent
|
||||||
.It Sy "Function" Ta Sy "vi" Ta Sy "emacs"
|
.It Sy "Function" Ta Sy "vi" Ta Sy "emacs"
|
||||||
.It Li "Back to indentation" Ta "^" Ta "M-m"
|
.It Li "Back to indentation" Ta "^" Ta "M-m"
|
||||||
|
.It Li "Bottom of history" Ta "G" Ta "M-<"
|
||||||
.It Li "Clear selection" Ta "Escape" Ta "C-g"
|
.It Li "Clear selection" Ta "Escape" Ta "C-g"
|
||||||
.It Li "Copy selection" Ta "Enter" Ta "M-w"
|
.It Li "Copy selection" Ta "Enter" Ta "M-w"
|
||||||
.It Li "Cursor down" Ta "j" Ta "Down"
|
.It Li "Cursor down" Ta "j" Ta "Down"
|
||||||
@ -566,6 +567,7 @@ The following keys are supported as appropriate for the mode:
|
|||||||
.It Li "Search forward" Ta "/" Ta "C-s"
|
.It Li "Search forward" Ta "/" Ta "C-s"
|
||||||
.It Li "Start of line" Ta "0" Ta "C-a"
|
.It Li "Start of line" Ta "0" Ta "C-a"
|
||||||
.It Li "Start selection" Ta "Space" Ta "C-Space"
|
.It Li "Start selection" Ta "Space" Ta "C-Space"
|
||||||
|
.It Li "Top of history" Ta "g" Ta "M->"
|
||||||
.It Li "Transpose chars" Ta "" Ta "C-t"
|
.It Li "Transpose chars" Ta "" Ta "C-t"
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
|
4
tmux.h
4
tmux.h
@ -1,4 +1,4 @@
|
|||||||
/* $Id: tmux.h,v 1.536 2010-01-08 16:31:35 tcunha Exp $ */
|
/* $Id: tmux.h,v 1.537 2010-01-28 22:41:45 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -454,6 +454,8 @@ enum mode_key_cmd {
|
|||||||
MODEKEYCOPY_GOTOLINE,
|
MODEKEYCOPY_GOTOLINE,
|
||||||
MODEKEYCOPY_HALFPAGEDOWN,
|
MODEKEYCOPY_HALFPAGEDOWN,
|
||||||
MODEKEYCOPY_HALFPAGEUP,
|
MODEKEYCOPY_HALFPAGEUP,
|
||||||
|
MODEKEYCOPY_HISTORYBOTTOM,
|
||||||
|
MODEKEYCOPY_HISTORYTOP,
|
||||||
MODEKEYCOPY_LEFT,
|
MODEKEYCOPY_LEFT,
|
||||||
MODEKEYCOPY_MIDDLELINE,
|
MODEKEYCOPY_MIDDLELINE,
|
||||||
MODEKEYCOPY_NEXTPAGE,
|
MODEKEYCOPY_NEXTPAGE,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: window-copy.c,v 1.95 2010-01-25 17:14:42 tcunha Exp $ */
|
/* $Id: window-copy.c,v 1.96 2010-01-28 22:41:45 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -296,6 +296,20 @@ window_copy_key(struct window_pane *wp, struct client *c, int key)
|
|||||||
window_copy_update_selection(wp);
|
window_copy_update_selection(wp);
|
||||||
window_copy_redraw_screen(wp);
|
window_copy_redraw_screen(wp);
|
||||||
break;
|
break;
|
||||||
|
case MODEKEYCOPY_HISTORYTOP:
|
||||||
|
data->cx = 0;
|
||||||
|
data->cy = 0;
|
||||||
|
data->oy = screen_hsize(&wp->base);
|
||||||
|
window_copy_update_selection(wp);
|
||||||
|
window_copy_redraw_screen(wp);
|
||||||
|
break;
|
||||||
|
case MODEKEYCOPY_HISTORYBOTTOM:
|
||||||
|
data->cx = 0;
|
||||||
|
data->cy = screen_size_y(s) - 1;
|
||||||
|
data->oy = 0;
|
||||||
|
window_copy_update_selection(wp);
|
||||||
|
window_copy_redraw_screen(wp);
|
||||||
|
break;
|
||||||
case MODEKEYCOPY_STARTSELECTION:
|
case MODEKEYCOPY_STARTSELECTION:
|
||||||
window_copy_start_selection(wp);
|
window_copy_start_selection(wp);
|
||||||
window_copy_redraw_screen(wp);
|
window_copy_redraw_screen(wp);
|
||||||
|
Loading…
Reference in New Issue
Block a user