mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	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:
		@@ -82,6 +82,8 @@ const struct mode_key_cmdstr mode_key_cmdstr_copy[] = {
 | 
			
		||||
	{ MODEKEYCOPY_BOTTOMLINE, "bottom-line" },
 | 
			
		||||
	{ MODEKEYCOPY_CANCEL, "cancel" },
 | 
			
		||||
	{ MODEKEYCOPY_CLEARSELECTION, "clear-selection" },
 | 
			
		||||
	{ MODEKEYCOPY_COPYLINE, "copy-line" },
 | 
			
		||||
	{ MODEKEYCOPY_COPYENDOFLINE, "copy-end-of-line" },
 | 
			
		||||
	{ MODEKEYCOPY_COPYSELECTION, "copy-selection" },
 | 
			
		||||
	{ MODEKEYCOPY_DOWN, "cursor-down" },
 | 
			
		||||
	{ MODEKEYCOPY_ENDOFLINE, "end-of-line" },
 | 
			
		||||
@@ -110,6 +112,7 @@ const struct mode_key_cmdstr mode_key_cmdstr_copy[] = {
 | 
			
		||||
	{ MODEKEYCOPY_SEARCHDOWN, "search-forward" },
 | 
			
		||||
	{ MODEKEYCOPY_SEARCHREVERSE, "search-reverse" },
 | 
			
		||||
	{ MODEKEYCOPY_SEARCHUP, "search-backward" },
 | 
			
		||||
	{ MODEKEYCOPY_SELECTLINE, "select-line" },
 | 
			
		||||
	{ MODEKEYCOPY_STARTNUMBERPREFIX, "start-number-prefix" },
 | 
			
		||||
	{ MODEKEYCOPY_STARTOFLINE, "start-of-line" },
 | 
			
		||||
	{ MODEKEYCOPY_STARTSELECTION, "begin-selection" },
 | 
			
		||||
@@ -198,6 +201,7 @@ const struct mode_key_entry mode_key_vi_copy[] = {
 | 
			
		||||
	{ ':',			0, MODEKEYCOPY_GOTOLINE },
 | 
			
		||||
	{ '?',			0, MODEKEYCOPY_SEARCHUP },
 | 
			
		||||
	{ 'B',			0, MODEKEYCOPY_PREVIOUSSPACE },
 | 
			
		||||
	{ 'D',			0, MODEKEYCOPY_COPYENDOFLINE },
 | 
			
		||||
	{ 'E',			0, MODEKEYCOPY_NEXTSPACEEND },
 | 
			
		||||
	{ 'F',			0, MODEKEYCOPY_JUMPBACK },
 | 
			
		||||
	{ 'G',			0, MODEKEYCOPY_HISTORYBOTTOM },
 | 
			
		||||
@@ -323,6 +327,7 @@ const struct mode_key_entry mode_key_emacs_copy[] = {
 | 
			
		||||
	{ '\005' /* C-e */,	0, MODEKEYCOPY_ENDOFLINE },
 | 
			
		||||
	{ '\006' /* C-f */,	0, MODEKEYCOPY_RIGHT },
 | 
			
		||||
	{ '\007' /* C-g */,	0, MODEKEYCOPY_CLEARSELECTION },
 | 
			
		||||
	{ '\013' /* C-k */,	0, MODEKEYCOPY_COPYENDOFLINE },
 | 
			
		||||
	{ '\016' /* C-n */,	0, MODEKEYCOPY_DOWN },
 | 
			
		||||
	{ '\020' /* C-p */,	0, MODEKEYCOPY_UP },
 | 
			
		||||
	{ '\022' /* C-r */,	0, MODEKEYCOPY_SEARCHUP },
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								tmux.1
									
									
									
									
									
								
							@@ -766,7 +766,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 up" Ta "k" Ta "Up"
 | 
			
		||||
.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 "Go to line" Ta ":" Ta "g"
 | 
			
		||||
.It Li "Half page down" Ta "C-d" Ta "M-Down"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								tmux.h
									
									
									
									
									
								
							@@ -461,6 +461,8 @@ enum mode_key_cmd {
 | 
			
		||||
	MODEKEYCOPY_BOTTOMLINE,
 | 
			
		||||
	MODEKEYCOPY_CANCEL,
 | 
			
		||||
	MODEKEYCOPY_CLEARSELECTION,
 | 
			
		||||
	MODEKEYCOPY_COPYLINE,
 | 
			
		||||
	MODEKEYCOPY_COPYENDOFLINE,
 | 
			
		||||
	MODEKEYCOPY_COPYSELECTION,
 | 
			
		||||
	MODEKEYCOPY_DOWN,
 | 
			
		||||
	MODEKEYCOPY_ENDOFLINE,
 | 
			
		||||
@@ -491,6 +493,7 @@ enum mode_key_cmd {
 | 
			
		||||
	MODEKEYCOPY_SEARCHDOWN,
 | 
			
		||||
	MODEKEYCOPY_SEARCHREVERSE,
 | 
			
		||||
	MODEKEYCOPY_SEARCHUP,
 | 
			
		||||
	MODEKEYCOPY_SELECTLINE,
 | 
			
		||||
	MODEKEYCOPY_STARTNUMBERPREFIX,
 | 
			
		||||
	MODEKEYCOPY_STARTOFLINE,
 | 
			
		||||
	MODEKEYCOPY_STARTSELECTION,
 | 
			
		||||
 
 | 
			
		||||
@@ -500,6 +500,26 @@ window_copy_key(struct window_pane *wp, struct session *sess, int key)
 | 
			
		||||
		window_copy_start_selection(wp);
 | 
			
		||||
		window_copy_redraw_screen(wp);
 | 
			
		||||
		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:
 | 
			
		||||
		window_copy_clear_selection(wp);
 | 
			
		||||
		window_copy_redraw_screen(wp);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user