aboutsummaryrefslogtreecommitdiff
path: root/.config/fish/functions/up-or-search.fish
blob: 11ef26800c47825b3ec6377d9a4bebcacd323468 (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
# Depending on cursor position and current mode, either search backward or move up one line"
function up-or-search -d "Search back or move cursor up 1 line"
    # If we are already in search mode, continue
    if commandline --search-mode
        commandline -f history-prefix-search-backward
        return
    end

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

    # We are not already in search mode.
    # If we are on the top line, start search mode,
    # otherwise move up
    set -l lineno (commandline -L)

    switch $lineno
        case 1
            commandline -f history-prefix-search-backward

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