aboutsummaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-12-14 15:52:49 +0530
committerAkshay Nair <phenax5@gmail.com>2025-12-14 15:52:49 +0530
commit5995d30453d96743ac0c4c88774388a0eaad1ba7 (patch)
tree022825d34737c904a734dcac845d40892af20974 /autoload
parentefe350c5f913a83293050270c53b1c315ce14fc2 (diff)
downloadkakoune-config-5995d30453d96743ac0c4c88774388a0eaad1ba7.tar.gz
kakoune-config-5995d30453d96743ac0c4c88774388a0eaad1ba7.zip
Add buffer jumping + fzf file select
Diffstat (limited to 'autoload')
-rw-r--r--autoload/files.kak17
1 files changed, 15 insertions, 2 deletions
diff --git a/autoload/files.kak b/autoload/files.kak
index 5754bc3..f4ebd9d 100644
--- a/autoload/files.kak
+++ b/autoload/files.kak
@@ -6,15 +6,20 @@ def file-manager -params .. %{
terminal-singleton files env "DAFFM_PATH_RELATIVE_TO=%val{client_env_PWD}" daffm -c @kak %arg{@}
}
+def findfzf %{
+ terminal-singleton fzf sh -c 'kcr edit $(fd -t f --hidden --color=never -E .git | fzf --multi --min-height=100 --preview=''bat --color=always {}'')'
+}
+
declare-user-mode file
map global user f ': enter-user-mode file<ret>' -docstring 'File mode'
map global file f ': find ' -docstring 'Find files'
map global file n ': file-manager %val{buffile}<ret>' -docstring 'File manager'
+map global file F ': findfzf<ret>' -docstring 'Fzf'
declare-user-mode buffer
-map global user b ': enter-user-mode buffer<ret>' -docstring 'Buffer mode'
+map global user b ': enter-user-mode-with-count buffer<ret>' -docstring 'Buffer mode'
map global buffer b ': buffer ' -docstring 'Switch buffer'
-map global buffer <ret> ': buffers-show<ret>' -docstring 'Show buflist'
+map global buffer <ret> ': buffer-jump %opt{user_mode_count}; buffers-show<ret>' -docstring 'Jump to buffer'
map global buffer n ': buffer-next; buffers-show<ret>' -docstring 'Next buffer'
map global buffer p ': buffer-previous; buffers-show<ret>' -docstring 'Previous buffer'
map global buffer d ': delete-buffer; buffers-show<ret>' -docstring 'Delete buffer'
@@ -31,3 +36,11 @@ def buffers-show %{
}
}
+def buffer-jump -params 1 %{
+ evaluate-commands %sh{
+ if ! [ "$1" == "0" ]; then
+ buf=$(echo "$kak_quoted_buflist" | xargs -n1 | head -n "$1" | tail -n1)
+ [ -z "$buf" ] || printf "buffer '%s'" $(echo "$buf" | sed "s/'/''/g")
+ fi
+ }
+}