aboutsummaryrefslogtreecommitdiff
path: root/.config/fish/functions/up-or-search.fish
diff options
context:
space:
mode:
authordelta <darkussdelta@gmail.com>2023-03-04 22:04:55 +0100
committerdelta <darkussdelta@gmail.com>2023-03-04 22:18:21 +0100
commitf0b32f45746c026d402651013b7e98315d6956a1 (patch)
treef42609e98522da081cebdd21a674a702d1054bbc /.config/fish/functions/up-or-search.fish
parenta0f8b5fa6acdd1c2477fb1881dd9067956bf0ae6 (diff)
restructure awesome config, add fresnel
Diffstat (limited to '.config/fish/functions/up-or-search.fish')
-rw-r--r--.config/fish/functions/up-or-search.fish28
1 files changed, 28 insertions, 0 deletions
diff --git a/.config/fish/functions/up-or-search.fish b/.config/fish/functions/up-or-search.fish
new file mode 100644
index 0000000..11ef268
--- /dev/null
+++ b/.config/fish/functions/up-or-search.fish
@@ -0,0 +1,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
+