aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions/down-or-search.fish
blob: 967342391904e10d8a17c784210360a00eaf8ab4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function down-or-search -d "Depending on cursor position and current mode, either search forward or move down one line"
	# If we are already in search mode, continue
	if commandline --search-mode
		commandline -f history-search-forward
		return
	end

	# If we are navigating the pager, then up always navigates
	if commandline --paging-mode
		commandline -f down-line
		return
	end


	# We are not already in search mode.
	# If we are on the bottom line, start search mode,
	# otherwise move down
	set lineno (commandline -L)
	set line_count (count (commandline))

	switch $lineno
		case $line_count
		commandline -f history-search-forward

		case '*'
		commandline -f down-line
	end
end