mirror of
https://github.com/tmate-io/tmate.git
synced 2024-11-23 08:33:17 +01:00
Sync OpenBSD patchset 913:
Add three new copy-mode commands - select-line, copy-line, copy-end-of-line. From Dave Disser and Randy Stauner a while back.
This commit is contained in:
parent
3cb428bc7e
commit
69e0aabcdf
@ -1,4 +1,4 @@
|
|||||||
/* $Id: mode-key.c,v 1.48 2011-04-06 22:23:30 nicm Exp $ */
|
/* $Id: mode-key.c,v 1.49 2011-05-18 20:35:36 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -82,6 +82,8 @@ const struct mode_key_cmdstr mode_key_cmdstr_copy[] = {
|
|||||||
{ MODEKEYCOPY_BOTTOMLINE, "bottom-line" },
|
{ MODEKEYCOPY_BOTTOMLINE, "bottom-line" },
|
||||||
{ MODEKEYCOPY_CANCEL, "cancel" },
|
{ MODEKEYCOPY_CANCEL, "cancel" },
|
||||||
{ MODEKEYCOPY_CLEARSELECTION, "clear-selection" },
|
{ MODEKEYCOPY_CLEARSELECTION, "clear-selection" },
|
||||||
|
{ MODEKEYCOPY_COPYLINE, "copy-line" },
|
||||||
|
{ MODEKEYCOPY_COPYENDOFLINE, "copy-end-of-line" },
|
||||||
{ MODEKEYCOPY_COPYSELECTION, "copy-selection" },
|
{ MODEKEYCOPY_COPYSELECTION, "copy-selection" },
|
||||||
{ MODEKEYCOPY_DOWN, "cursor-down" },
|
{ MODEKEYCOPY_DOWN, "cursor-down" },
|
||||||
{ MODEKEYCOPY_ENDOFLINE, "end-of-line" },
|
{ MODEKEYCOPY_ENDOFLINE, "end-of-line" },
|
||||||
@ -110,6 +112,7 @@ const struct mode_key_cmdstr mode_key_cmdstr_copy[] = {
|
|||||||
{ MODEKEYCOPY_SEARCHDOWN, "search-forward" },
|
{ MODEKEYCOPY_SEARCHDOWN, "search-forward" },
|
||||||
{ MODEKEYCOPY_SEARCHREVERSE, "search-reverse" },
|
{ MODEKEYCOPY_SEARCHREVERSE, "search-reverse" },
|
||||||
{ MODEKEYCOPY_SEARCHUP, "search-backward" },
|
{ MODEKEYCOPY_SEARCHUP, "search-backward" },
|
||||||
|
{ MODEKEYCOPY_SELECTLINE, "select-line" },
|
||||||
{ MODEKEYCOPY_STARTNUMBERPREFIX, "start-number-prefix" },
|
{ MODEKEYCOPY_STARTNUMBERPREFIX, "start-number-prefix" },
|
||||||
{ MODEKEYCOPY_STARTOFLINE, "start-of-line" },
|
{ MODEKEYCOPY_STARTOFLINE, "start-of-line" },
|
||||||
{ MODEKEYCOPY_STARTSELECTION, "begin-selection" },
|
{ MODEKEYCOPY_STARTSELECTION, "begin-selection" },
|
||||||
@ -198,6 +201,7 @@ const struct mode_key_entry mode_key_vi_copy[] = {
|
|||||||
{ ':', 0, MODEKEYCOPY_GOTOLINE },
|
{ ':', 0, MODEKEYCOPY_GOTOLINE },
|
||||||
{ '?', 0, MODEKEYCOPY_SEARCHUP },
|
{ '?', 0, MODEKEYCOPY_SEARCHUP },
|
||||||
{ 'B', 0, MODEKEYCOPY_PREVIOUSSPACE },
|
{ 'B', 0, MODEKEYCOPY_PREVIOUSSPACE },
|
||||||
|
{ 'D', 0, MODEKEYCOPY_COPYENDOFLINE },
|
||||||
{ 'E', 0, MODEKEYCOPY_NEXTSPACEEND },
|
{ 'E', 0, MODEKEYCOPY_NEXTSPACEEND },
|
||||||
{ 'F', 0, MODEKEYCOPY_JUMPBACK },
|
{ 'F', 0, MODEKEYCOPY_JUMPBACK },
|
||||||
{ 'G', 0, MODEKEYCOPY_HISTORYBOTTOM },
|
{ 'G', 0, MODEKEYCOPY_HISTORYBOTTOM },
|
||||||
@ -323,6 +327,7 @@ const struct mode_key_entry mode_key_emacs_copy[] = {
|
|||||||
{ '\005' /* C-e */, 0, MODEKEYCOPY_ENDOFLINE },
|
{ '\005' /* C-e */, 0, MODEKEYCOPY_ENDOFLINE },
|
||||||
{ '\006' /* C-f */, 0, MODEKEYCOPY_RIGHT },
|
{ '\006' /* C-f */, 0, MODEKEYCOPY_RIGHT },
|
||||||
{ '\007' /* C-g */, 0, MODEKEYCOPY_CLEARSELECTION },
|
{ '\007' /* C-g */, 0, MODEKEYCOPY_CLEARSELECTION },
|
||||||
|
{ '\013' /* C-k */, 0, MODEKEYCOPY_COPYENDOFLINE },
|
||||||
{ '\016' /* C-n */, 0, MODEKEYCOPY_DOWN },
|
{ '\016' /* C-n */, 0, MODEKEYCOPY_DOWN },
|
||||||
{ '\020' /* C-p */, 0, MODEKEYCOPY_UP },
|
{ '\020' /* C-p */, 0, MODEKEYCOPY_UP },
|
||||||
{ '\022' /* C-r */, 0, MODEKEYCOPY_SEARCHUP },
|
{ '\022' /* C-r */, 0, MODEKEYCOPY_SEARCHUP },
|
||||||
|
6
tmux.1
6
tmux.1
@ -1,4 +1,4 @@
|
|||||||
.\" $Id: tmux.1,v 1.312 2011-05-18 20:30:14 tcunha Exp $
|
.\" $Id: tmux.1,v 1.313 2011-05-18 20:35:36 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: May 8 2011 $
|
.Dd $Mdocdate: May 18 2011 $
|
||||||
.Dt TMUX 1
|
.Dt TMUX 1
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -770,7 +770,7 @@ The following keys are supported as appropriate for the mode:
|
|||||||
.It Li "Cursor to top line" Ta "H" Ta "M-R"
|
.It Li "Cursor to top line" Ta "H" Ta "M-R"
|
||||||
.It Li "Cursor up" Ta "k" Ta "Up"
|
.It Li "Cursor up" Ta "k" Ta "Up"
|
||||||
.It Li "Delete entire line" Ta "d" Ta "C-u"
|
.It Li "Delete entire line" Ta "d" Ta "C-u"
|
||||||
.It Li "Delete to end of line" Ta "D" Ta "C-k"
|
.It Li "Delete/Copy to end of line" Ta "D" Ta "C-k"
|
||||||
.It Li "End of line" Ta "$" Ta "C-e"
|
.It Li "End of line" Ta "$" Ta "C-e"
|
||||||
.It Li "Go to line" Ta ":" Ta "g"
|
.It Li "Go to line" Ta ":" Ta "g"
|
||||||
.It Li "Half page down" Ta "C-d" Ta "M-Down"
|
.It Li "Half page down" Ta "C-d" Ta "M-Down"
|
||||||
|
5
tmux.h
5
tmux.h
@ -1,4 +1,4 @@
|
|||||||
/* $Id: tmux.h,v 1.623 2011-05-18 20:30:14 tcunha Exp $ */
|
/* $Id: tmux.h,v 1.624 2011-05-18 20:35:36 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -457,6 +457,8 @@ enum mode_key_cmd {
|
|||||||
MODEKEYCOPY_BOTTOMLINE,
|
MODEKEYCOPY_BOTTOMLINE,
|
||||||
MODEKEYCOPY_CANCEL,
|
MODEKEYCOPY_CANCEL,
|
||||||
MODEKEYCOPY_CLEARSELECTION,
|
MODEKEYCOPY_CLEARSELECTION,
|
||||||
|
MODEKEYCOPY_COPYLINE,
|
||||||
|
MODEKEYCOPY_COPYENDOFLINE,
|
||||||
MODEKEYCOPY_COPYSELECTION,
|
MODEKEYCOPY_COPYSELECTION,
|
||||||
MODEKEYCOPY_DOWN,
|
MODEKEYCOPY_DOWN,
|
||||||
MODEKEYCOPY_ENDOFLINE,
|
MODEKEYCOPY_ENDOFLINE,
|
||||||
@ -487,6 +489,7 @@ enum mode_key_cmd {
|
|||||||
MODEKEYCOPY_SEARCHDOWN,
|
MODEKEYCOPY_SEARCHDOWN,
|
||||||
MODEKEYCOPY_SEARCHREVERSE,
|
MODEKEYCOPY_SEARCHREVERSE,
|
||||||
MODEKEYCOPY_SEARCHUP,
|
MODEKEYCOPY_SEARCHUP,
|
||||||
|
MODEKEYCOPY_SELECTLINE,
|
||||||
MODEKEYCOPY_STARTNUMBERPREFIX,
|
MODEKEYCOPY_STARTNUMBERPREFIX,
|
||||||
MODEKEYCOPY_STARTOFLINE,
|
MODEKEYCOPY_STARTOFLINE,
|
||||||
MODEKEYCOPY_STARTSELECTION,
|
MODEKEYCOPY_STARTSELECTION,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: window-copy.c,v 1.131 2011-05-18 20:33:24 tcunha Exp $ */
|
/* $Id: window-copy.c,v 1.132 2011-05-18 20:35:36 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -500,6 +500,26 @@ window_copy_key(struct window_pane *wp, struct session *sess, int key)
|
|||||||
window_copy_start_selection(wp);
|
window_copy_start_selection(wp);
|
||||||
window_copy_redraw_screen(wp);
|
window_copy_redraw_screen(wp);
|
||||||
break;
|
break;
|
||||||
|
case MODEKEYCOPY_COPYLINE:
|
||||||
|
case MODEKEYCOPY_SELECTLINE:
|
||||||
|
window_copy_cursor_start_of_line(wp);
|
||||||
|
/* FALLTHROUGH */
|
||||||
|
case MODEKEYCOPY_COPYENDOFLINE:
|
||||||
|
window_copy_start_selection(wp);
|
||||||
|
for (; np > 1; np--)
|
||||||
|
window_copy_cursor_down(wp, 0);
|
||||||
|
window_copy_cursor_end_of_line(wp);
|
||||||
|
window_copy_redraw_screen(wp);
|
||||||
|
|
||||||
|
/* If a copy command then copy the selection and exit. */
|
||||||
|
if (sess != NULL &&
|
||||||
|
(cmd == MODEKEYCOPY_COPYLINE ||
|
||||||
|
cmd == MODEKEYCOPY_COPYENDOFLINE)) {
|
||||||
|
window_copy_copy_selection(wp);
|
||||||
|
window_pane_reset_mode(wp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case MODEKEYCOPY_CLEARSELECTION:
|
case MODEKEYCOPY_CLEARSELECTION:
|
||||||
window_copy_clear_selection(wp);
|
window_copy_clear_selection(wp);
|
||||||
window_copy_redraw_screen(wp);
|
window_copy_redraw_screen(wp);
|
||||||
|
Loading…
Reference in New Issue
Block a user