mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Add "N" key to search the opposite way from the last search (reverse of "n"),
from Micah Cowan.
This commit is contained in:
		@@ -104,6 +104,7 @@ struct mode_key_cmdstr mode_key_cmdstr_copy[] = {
 | 
			
		||||
	{ MODEKEYCOPY_SCROLLUP, "scroll-up" },
 | 
			
		||||
	{ MODEKEYCOPY_SEARCHAGAIN, "search-again" },
 | 
			
		||||
	{ MODEKEYCOPY_SEARCHDOWN, "search-forward" },
 | 
			
		||||
	{ MODEKEYCOPY_SEARCHREVERSE, "search-reverse" },
 | 
			
		||||
	{ MODEKEYCOPY_SEARCHUP, "search-backward" },
 | 
			
		||||
	{ MODEKEYCOPY_STARTOFLINE, "start-of-line" },
 | 
			
		||||
	{ MODEKEYCOPY_STARTSELECTION, "begin-selection" },
 | 
			
		||||
@@ -187,6 +188,7 @@ const struct mode_key_entry mode_key_vi_copy[] = {
 | 
			
		||||
	{ 'K',			0, MODEKEYCOPY_SCROLLUP },
 | 
			
		||||
	{ 'L',			0, MODEKEYCOPY_BOTTOMLINE },
 | 
			
		||||
	{ 'M',			0, MODEKEYCOPY_MIDDLELINE },
 | 
			
		||||
	{ 'N',			0, MODEKEYCOPY_SEARCHREVERSE },
 | 
			
		||||
	{ 'W',			0, MODEKEYCOPY_NEXTSPACE },
 | 
			
		||||
	{ '\002' /* C-b */,	0, MODEKEYCOPY_PREVIOUSPAGE },
 | 
			
		||||
	{ '\003' /* C-c */,	0, MODEKEYCOPY_CANCEL },
 | 
			
		||||
@@ -296,6 +298,7 @@ const struct mode_key_entry mode_key_emacs_copy[] = {
 | 
			
		||||
	{ '\026' /* C-v */,	0, MODEKEYCOPY_NEXTPAGE },
 | 
			
		||||
	{ '\027' /* C-w */,	0, MODEKEYCOPY_COPYSELECTION },
 | 
			
		||||
	{ '\033' /* Escape */,	0, MODEKEYCOPY_CANCEL },
 | 
			
		||||
	{ 'N',			0, MODEKEYCOPY_SEARCHREVERSE },
 | 
			
		||||
	{ 'b' | KEYC_ESCAPE,	0, MODEKEYCOPY_PREVIOUSWORD },
 | 
			
		||||
	{ 'f' | KEYC_ESCAPE,	0, MODEKEYCOPY_NEXTWORDEND },
 | 
			
		||||
	{ 'g',			0, MODEKEYCOPY_GOTOLINE },
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								tmux.1
									
									
									
									
									
								
							@@ -572,6 +572,7 @@ The following keys are supported as appropriate for the mode:
 | 
			
		||||
.It Li "Scroll down" Ta "C-Down or C-e" Ta "C-Down"
 | 
			
		||||
.It Li "Scroll up" Ta "C-Up or C-y" Ta "C-Up"
 | 
			
		||||
.It Li "Search again" Ta "n" Ta "n"
 | 
			
		||||
.It Li "Search again in reverse" Ta "N" Ta "N"
 | 
			
		||||
.It Li "Search backward" Ta "?" Ta "C-r"
 | 
			
		||||
.It Li "Search forward" Ta "/" Ta "C-s"
 | 
			
		||||
.It Li "Start of line" Ta "0" Ta "C-a"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								tmux.h
									
									
									
									
									
								
							@@ -475,6 +475,7 @@ enum mode_key_cmd {
 | 
			
		||||
	MODEKEYCOPY_SCROLLUP,
 | 
			
		||||
	MODEKEYCOPY_SEARCHAGAIN,
 | 
			
		||||
	MODEKEYCOPY_SEARCHDOWN,
 | 
			
		||||
	MODEKEYCOPY_SEARCHREVERSE,
 | 
			
		||||
	MODEKEYCOPY_SEARCHUP,
 | 
			
		||||
	MODEKEYCOPY_STARTOFLINE,
 | 
			
		||||
	MODEKEYCOPY_STARTSELECTION,
 | 
			
		||||
 
 | 
			
		||||
@@ -224,6 +224,7 @@ window_copy_key(struct window_pane *wp, struct client *c, int key)
 | 
			
		||||
	struct screen			*s = &data->screen;
 | 
			
		||||
	u_int				 n;
 | 
			
		||||
	int				 keys;
 | 
			
		||||
	enum mode_key_cmd		 cmd;
 | 
			
		||||
 | 
			
		||||
	if (data->inputtype != WINDOW_COPY_OFF) {
 | 
			
		||||
		if (window_copy_key_input(wp, key) != 0)
 | 
			
		||||
@@ -231,7 +232,8 @@ window_copy_key(struct window_pane *wp, struct client *c, int key)
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch (mode_key_lookup(&data->mdata, key)) {
 | 
			
		||||
	cmd = mode_key_lookup(&data->mdata, key);
 | 
			
		||||
	switch (cmd) {
 | 
			
		||||
	case MODEKEYCOPY_CANCEL:
 | 
			
		||||
		window_pane_reset_mode(wp);
 | 
			
		||||
		break;
 | 
			
		||||
@@ -367,15 +369,22 @@ window_copy_key(struct window_pane *wp, struct client *c, int key)
 | 
			
		||||
		data->inputprompt = "Search Down";
 | 
			
		||||
		goto input_on;
 | 
			
		||||
	case MODEKEYCOPY_SEARCHAGAIN:
 | 
			
		||||
	case MODEKEYCOPY_SEARCHREVERSE:
 | 
			
		||||
		switch (data->searchtype) {
 | 
			
		||||
		case WINDOW_COPY_OFF:
 | 
			
		||||
		case WINDOW_COPY_GOTOLINE:
 | 
			
		||||
			break;
 | 
			
		||||
		case WINDOW_COPY_SEARCHUP:
 | 
			
		||||
			window_copy_search_up(wp, data->searchstr);
 | 
			
		||||
			if (cmd == MODEKEYCOPY_SEARCHAGAIN)
 | 
			
		||||
				window_copy_search_up(wp, data->searchstr);
 | 
			
		||||
			else
 | 
			
		||||
				window_copy_search_down(wp, data->searchstr);
 | 
			
		||||
			break;
 | 
			
		||||
		case WINDOW_COPY_SEARCHDOWN:
 | 
			
		||||
			window_copy_search_down(wp, data->searchstr);
 | 
			
		||||
			if (cmd == MODEKEYCOPY_SEARCHAGAIN)
 | 
			
		||||
				window_copy_search_down(wp, data->searchstr);
 | 
			
		||||
			else
 | 
			
		||||
				window_copy_search_up(wp, data->searchstr);
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
		break;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user