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 -l lineno (commandline -L) set -l line_count (count (commandline)) switch $lineno case $line_count commandline -f history-search-forward case '*' commandline -f down-line end end