Created
March 31, 2025 00:07
-
-
Save igor-ramazanov/093b1368b1349baef72b4f5133eb5746 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| provide-module -override files %{ | |
| declare-user-mode files | |
| # Search by filename | |
| define-command -hidden tmux-pick-file %{ nop %sh{ | |
| program=" | |
| let picked = fd --type=file | fzf --preview 'bat --color=always --plain --line-range=:50 {}' --preview-window wrap,noinfo; | |
| $'eval -client $kak_client edit (\$picked)' | kak -p $kak_session; | |
| " | |
| wezterm cli spawn --cwd $kak_client_env_PWD -- \ | |
| nu --login --interactive --commands "$program" &>/dev/null | |
| }} | |
| map global files f ":tmux-pick-file<ret>" -docstring " By name" | |
| # Search by name only git changed | |
| define-command -hidden tmux-pick-git-file %{ nop %sh{ | |
| program=" | |
| let picked = git diff HEAD --name-only --no-color | |
| | fzf --preview 'bat --color=always --plain --line-range=:50 {}' --preview-window wrap,noinfo; | |
| $'eval -client $kak_client edit (\$picked)' | kak -p $kak_session; | |
| " | |
| wezterm cli spawn --cwd $kak_client_env_PWD -- \ | |
| nu --login --interactive --commands "$program" &>/dev/null | |
| }} | |
| map global files g ":tmux-pick-git-file<ret>" -docstring " Modified" | |
| # Search by content | |
| define-command -hidden tmux-find-file %{ nop %sh{ | |
| program=" | |
| let picked = rg --line-number --color never '.*' | |
| | fzf | |
| | parse '{file}:{line}:{rest}' | |
| | get 0; | |
| $'eval -client $kak_client edit (\$picked.file) (\$picked.line)' | kak -p $kak_session; | |
| " | |
| wezterm cli spawn --cwd $kak_client_env_PWD -- \ | |
| nu --login --interactive --commands "$program" &>/dev/null | |
| }} | |
| map global files F ":tmux-find-file<ret>" -docstring " By content" | |
| # Search by name in local dir | |
| define-command -hidden tmux-pick-file-local %{ nop %sh{ | |
| dir="$(echo $kak_buffile | rg --replace '$1' --only-matching "$PWD/(.*)/.*")" | |
| program=" | |
| let picked = fd --type=file . $dir | |
| | fzf --preview 'bat --color=always --plain --line-range=:50 {}' --preview-window wrap,noinfo; | |
| $'eval -client $kak_client edit (\$picked)' | kak -p $kak_session; | |
| " | |
| wezterm cli spawn --cwd $kak_client_env_PWD -- \ | |
| nu --login --interactive --commands "$program" &>/dev/null | |
| }} | |
| map global files l ":tmux-pick-file-local<ret>" -docstring " In same dir" | |
| map global user f ":enter-user-mode files<ret>" -docstring " Files" | |
| define-command toggle-file-tree %{nop %sh{ | |
| chooser="$(mktemp /tmp/kakoune-yazi.XXXXXX)" | |
| program=" | |
| yazi --chooser-file $chooser $kak_buffile; | |
| let picked = cat $chooser; | |
| rm -rf $chooser; | |
| if (\$picked | str trim) != '' { | |
| $'eval -client $kak_client edit (\$picked)' | kak -p $kak_session | |
| } | |
| " | |
| wezterm cli spawn --cwd $kak_client_env_PWD -- \ | |
| nu --login --interactive --commands "$program" &>/dev/null | |
| }} | |
| map global user t ":toggle-file-tree<ret>" -docstring " Project view" | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment