From c5c64b92474a158f3469da0824de6a4a08fd8946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Pankowski?= Date: Fri, 8 May 2026 10:54:42 +0200 Subject: [PATCH] kakoune: open using nnn and open/create in dir --- kakoune/.config/kak/kakrc | 12 ++++++++++++ kakoune/bin/nnn-kak-edit | 4 ++++ 2 files changed, 16 insertions(+) create mode 100755 kakoune/bin/nnn-kak-edit diff --git a/kakoune/.config/kak/kakrc b/kakoune/.config/kak/kakrc index 572cf22..b0e9190 100644 --- a/kakoune/.config/kak/kakrc +++ b/kakoune/.config/kak/kakrc @@ -16,11 +16,15 @@ declare-user-mode file-mode declare-user-mode options-mode map global -docstring "File" user 'f' ': enter-user-mode file-mode' +map global -docstring "Buffer" user ' ' ': b ' map global -docstring "Open (git)" file-mode 'a' ': file-open-git' map global -docstring "Git diff file" file-mode 'd' ': git diff %val{buffile}' map global -docstring "Open (fd)" file-mode 'f' ': file-open' map global -docstring "Git grep" file-mode 'g' ': git grep ' +map global -docstring "Open (nnn)" file-mode 'n' ': nnn-open %val{buffile}' +map global -docstring "Open (nnn)" file-mode 'N' ': nnn-open .' +map global -docstring "Open/create in dir" file-mode 'c' ': open-create-in-dir' map global -docstring "Options" user 'o' ': enter-user-mode options-mode' @@ -40,6 +44,14 @@ define-command -override file-open-git %{ prompt -menu -shell-script-candidates %{ git ls-files } 'File (git): ' %{ edit -- %val{text} } } +define-command -override -params 1 nnn-open %{ + terminal nnn-kak-edit %arg{1} %val{session} %val{client} +} + +define-command -override open-create-in-dir %{ + execute-keys ': edit ' %sh{dirname "$kak_buffile"}/ +} + # ODIN hook global BufSetOption filetype=odin %{ diff --git a/kakoune/bin/nnn-kak-edit b/kakoune/bin/nnn-kak-edit new file mode 100755 index 0000000..5065c82 --- /dev/null +++ b/kakoune/bin/nnn-kak-edit @@ -0,0 +1,4 @@ +#!/bin/sh + +cd "$(dirname $1)" +exec nnn -A -p - | awk "{print \"evaluate-commands -client $3 edit\", \$1 }" | kak -p "$2"