updates kakoune config to use plug.kak
This commit is contained in:
parent
4cc5ff6b8d
commit
310bd307ad
13 changed files with 90 additions and 844 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,3 +3,4 @@ system
|
||||||
.*.swo
|
.*.swo
|
||||||
Session.vim
|
Session.vim
|
||||||
dot.config/nnn/.history
|
dot.config/nnn/.history
|
||||||
|
dot.config/kak/plugins/
|
||||||
|
|
1
dot.config/kak/autoload/autoload
Symbolic link
1
dot.config/kak/autoload/autoload
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/usr/share/kak/rc/
|
|
@ -1,234 +0,0 @@
|
||||||
# buflist++: names AND modified bool
|
|
||||||
# debug buffers (like *debug*, *lint*…) are excluded
|
|
||||||
declare-option -hidden str-list buffers_info
|
|
||||||
|
|
||||||
declare-option int buffers_total
|
|
||||||
|
|
||||||
# keys to use for buffer picking
|
|
||||||
declare-option str buffer_keys "1234567890qwertyuiopasdfghjklzxcvbnm"
|
|
||||||
|
|
||||||
# used to handle [+] (modified) symbol in list
|
|
||||||
define-command -hidden refresh-buffers-info %{
|
|
||||||
set-option global buffers_info
|
|
||||||
set-option global buffers_total 0
|
|
||||||
# iteration over all buffers (except debug ones)
|
|
||||||
evaluate-commands -no-hooks -buffer * %{
|
|
||||||
set-option -add global buffers_info "%val{bufname}_%val{modified}"
|
|
||||||
}
|
|
||||||
evaluate-commands %sh{
|
|
||||||
total=$(printf '%s\n' "$kak_opt_buffers_info" | tr ' ' '\n' | wc -l)
|
|
||||||
printf '%s\n' "set-option global buffers_total $total"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# used to handle # (alt) symbol in list
|
|
||||||
declare-option str alt_bufname
|
|
||||||
declare-option str current_bufname
|
|
||||||
# adjust this number to display more buffers in info
|
|
||||||
declare-option int max_list_buffers 42
|
|
||||||
|
|
||||||
hook global WinDisplay .* %{
|
|
||||||
set-option global alt_bufname %opt{current_bufname}
|
|
||||||
set-option global current_bufname %val{bufname}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command info-buffers -docstring 'populate an info box with a numbered buffers list' %{
|
|
||||||
refresh-buffers-info
|
|
||||||
evaluate-commands %sh{
|
|
||||||
# info title
|
|
||||||
printf "info -title '$kak_opt_buffers_total buffers' -- %%^"
|
|
||||||
|
|
||||||
index=0
|
|
||||||
eval "set -- $kak_opt_buffers_info"
|
|
||||||
while [ "$1" ]; do
|
|
||||||
# limit lists too big
|
|
||||||
index=$(($index + 1))
|
|
||||||
if [ "$index" -gt "$kak_opt_max_list_buffers" ]; then
|
|
||||||
printf ' …'
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
name=${1%_*}
|
|
||||||
if [ "$name" = "$kak_bufname" ]; then
|
|
||||||
printf "> %s" "$index - $name"
|
|
||||||
elif [ "$name" = "$kak_opt_alt_bufname" ]; then
|
|
||||||
printf "# %s" "$index - $name"
|
|
||||||
else
|
|
||||||
printf " %s" "$index - $name"
|
|
||||||
fi
|
|
||||||
|
|
||||||
modified=${1##*_}
|
|
||||||
if [ "$modified" = true ]; then
|
|
||||||
printf " [+]"
|
|
||||||
fi
|
|
||||||
echo
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
printf ^\\n
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
declare-user-mode pick-buffers
|
|
||||||
define-command pick-buffers -docstring 'enter buffer pick mode' %{
|
|
||||||
refresh-buffers-info
|
|
||||||
unmap global pick-buffers
|
|
||||||
evaluate-commands %sh{
|
|
||||||
index=0
|
|
||||||
keys=" $kak_opt_buffer_keys"
|
|
||||||
num_keys=$(($(echo "$kak_opt_buffer_keys" | wc -m) - 1))
|
|
||||||
eval "set -- $kak_opt_buffers_info"
|
|
||||||
while [ "$1" ]; do
|
|
||||||
# limit lists too big
|
|
||||||
index=$(($index + 1))
|
|
||||||
if [ "$index" -gt "$num_keys" ]; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
name=${1%_*}
|
|
||||||
modified=${1##*_}
|
|
||||||
if [ "$name" = "$kak_bufname" ]; then
|
|
||||||
echo "map global pick-buffers ${keys:$index:1} :buffer-by-index<space>$index<ret> -docstring \"> $name $(if [ "$modified" = true ]; then echo "[+]"; fi)\""
|
|
||||||
elif [ "$name" = "$kak_opt_alt_bufname" ]; then
|
|
||||||
echo "map global pick-buffers ${keys:$index:1} :buffer-by-index<space>$index<ret> -docstring \"# $name $(if [ "$modified" = true ]; then echo "[+]"; fi)\""
|
|
||||||
else
|
|
||||||
echo "map global pick-buffers ${keys:$index:1} :buffer-by-index<space>$index<ret> -docstring \" $name $(if [ "$modified" = true ]; then echo "[+]"; fi)\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
}
|
|
||||||
enter-user-mode pick-buffers
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command buffer-first -docstring 'move to the first buffer in the list' 'buffer-by-index 1'
|
|
||||||
|
|
||||||
define-command buffer-last -docstring 'move to the last buffer in the list' %{
|
|
||||||
buffer-by-index %opt{buffers_total}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden -params 1 buffer-by-index %{
|
|
||||||
refresh-buffers-info
|
|
||||||
evaluate-commands %sh{
|
|
||||||
target=$1
|
|
||||||
index=0
|
|
||||||
eval "set -- $kak_opt_buffers_info"
|
|
||||||
while [ "$1" ]; do
|
|
||||||
index=$(($index+1))
|
|
||||||
name=${1%_*}
|
|
||||||
if [ $index = $target ]; then
|
|
||||||
echo "buffer $name"
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command delete-buffers -docstring 'delete all saved buffers' %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
deleted=0
|
|
||||||
eval "set -- $kak_buflist"
|
|
||||||
while [ "$1" ]; do
|
|
||||||
echo "try 'delete-buffer $1'"
|
|
||||||
echo "echo -markup '{Information}$deleted buffers deleted'"
|
|
||||||
deleted=$((deleted+1))
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command buffer-only -docstring 'delete all saved buffers except current one' %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
deleted=0
|
|
||||||
eval "set -- $kak_buflist"
|
|
||||||
while [ "$1" ]; do
|
|
||||||
if [ "$1" != "$kak_bufname" ]; then
|
|
||||||
echo "try 'delete-buffer $1'"
|
|
||||||
echo "echo -markup '{Information}$deleted buffers deleted'"
|
|
||||||
deleted=$((deleted+1))
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command buffer-only-force -docstring 'delete all buffers except current one' %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
deleted=0
|
|
||||||
eval "set -- $kak_buflist"
|
|
||||||
while [ "$1" ]; do
|
|
||||||
if [ "$1" != "$kak_bufname" ]; then
|
|
||||||
echo "delete-buffer! $1"
|
|
||||||
echo "echo -markup '{Information}$deleted buffers deleted'"
|
|
||||||
deleted=$((deleted+1))
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command buffer-only-directory -docstring 'delete all saved buffers except the ones in the same current buffer directory' %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
deleted=0
|
|
||||||
current_buffer_dir=$(dirname "$kak_bufname")
|
|
||||||
eval "set -- $kak_buflist"
|
|
||||||
while [ "$1" ]; do
|
|
||||||
dir=$(dirname "$1")
|
|
||||||
if [ $dir != "$current_buffer_dir" ]; then
|
|
||||||
echo "try 'delete-buffer $1'"
|
|
||||||
echo "echo -markup '{Information}$deleted buffers deleted'"
|
|
||||||
deleted=$((deleted+1))
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command edit-kakrc -docstring 'open kakrc in a new buffer' %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
printf '%s\n' "edit $kak_config/kakrc"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
declare-user-mode buffers
|
|
||||||
|
|
||||||
map global buffers a ga -docstring 'alternate'
|
|
||||||
map global buffers b :info-buffers<ret> -docstring 'info'
|
|
||||||
map global buffers c :edit-kakrc<ret> -docstring 'config'
|
|
||||||
map global buffers d :delete-buffer<ret> -docstring 'delete'
|
|
||||||
map global buffers D :delete-buffers<ret> -docstring 'delete all'
|
|
||||||
map global buffers f :buffer<space> -docstring 'find'
|
|
||||||
map global buffers h :buffer-first<ret> -docstring 'first'
|
|
||||||
map global buffers l :buffer-last<ret> -docstring 'last'
|
|
||||||
map global buffers n :buffer-next<ret> -docstring 'next'
|
|
||||||
map global buffers o :buffer-only<ret> -docstring 'only'
|
|
||||||
map global buffers p :buffer-previous<ret> -docstring 'previous'
|
|
||||||
map global buffers s ':edit -scratch *scratch*<ret>' -docstring '*scratch*'
|
|
||||||
map global buffers u ':buffer *debug*<ret>' -docstring '*debug*'
|
|
||||||
|
|
||||||
# trick to access count, 3b → display third buffer
|
|
||||||
define-command -hidden enter-buffers-mode %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
if [ "$kak_count" -eq 0 ]; then
|
|
||||||
echo 'enter-user-mode buffers'
|
|
||||||
else
|
|
||||||
echo "buffer-by-index $kak_count"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Suggested hook
|
|
||||||
|
|
||||||
#hook global WinDisplay .* info-buffers
|
|
||||||
|
|
||||||
# Suggested mappings
|
|
||||||
|
|
||||||
#map global user b ':enter-buffers-mode<ret>' -docstring 'buffers…'
|
|
||||||
#map global user B ':enter-user-mode -lock buffers<ret>' -docstring 'buffers (lock)…'
|
|
||||||
|
|
||||||
# Suggested aliases
|
|
||||||
|
|
||||||
#alias global bd delete-buffer
|
|
||||||
#alias global bf buffer-first
|
|
||||||
#alias global bl buffer-last
|
|
||||||
#alias global bo buffer-only
|
|
||||||
#alias global bo! buffer-only-force
|
|
|
@ -1,58 +0,0 @@
|
||||||
declare-option -hidden str explore_buffers_current
|
|
||||||
|
|
||||||
set-face global ExploreBuffers 'yellow,default'
|
|
||||||
|
|
||||||
add-highlighter shared/buffers regions
|
|
||||||
add-highlighter shared/buffers/content default-region group
|
|
||||||
add-highlighter shared/buffers/content/buffers regex '^.+$' 0:ExploreBuffers
|
|
||||||
|
|
||||||
define-command -hidden explore-buffers -docstring 'Explore buffers' %{ evaluate-commands -save-regs '"/' %{
|
|
||||||
set-option current explore_buffers_current %val(bufname)
|
|
||||||
edit! -scratch *buffers*
|
|
||||||
set-option buffer filetype buffers
|
|
||||||
evaluate-commands set-register dquote %val(buflist)
|
|
||||||
execute-keys '<a-R>)<a-space>i<ret><esc><space>'
|
|
||||||
set-register / "\Q%opt(explore_buffers_current)\E"
|
|
||||||
execute-keys n
|
|
||||||
}}
|
|
||||||
|
|
||||||
define-command -hidden explore-buffers-parent -docstring 'Explore the parent directory of the selected buffer' %{
|
|
||||||
explore-buffers-validate
|
|
||||||
explore-files %sh(dirname "$kak_buffile")
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden explore-buffers-validate -docstring 'Edit selected buffer' %{
|
|
||||||
execute-keys '<space><a-x>_'
|
|
||||||
buffer %reg(.)
|
|
||||||
delete-buffer *buffers*
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden explore-buffers-delete -docstring 'Delete selected buffer' %{
|
|
||||||
execute-keys '<space><a-x>_'
|
|
||||||
delete-buffer %reg(.)
|
|
||||||
explore-buffers
|
|
||||||
}
|
|
||||||
|
|
||||||
hook global WinSetOption filetype=buffers %{
|
|
||||||
add-highlighter window/ ref buffers
|
|
||||||
map window normal <ret> ': explore-buffers-validate<ret>'
|
|
||||||
map window normal <backspace> ': explore-buffers-parent<ret>'
|
|
||||||
map window normal q ': delete-buffer<ret>'
|
|
||||||
map window normal <esc> ': delete-buffer<ret>'
|
|
||||||
map window normal d ': explore-buffers-delete<ret>'
|
|
||||||
hook -always -once window WinSetOption filetype=.* %{
|
|
||||||
remove-highlighter window/buffers
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden explore-buffers-enable %{
|
|
||||||
hook window -group explore-buffers RuntimeError '\d+:\d+: ''(buffer|b)'' wrong argument count' %{
|
|
||||||
# Hide error message
|
|
||||||
echo
|
|
||||||
explore-buffers
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hook -group explore-buffers global WinCreate .* %{
|
|
||||||
explore-buffers-enable
|
|
||||||
}
|
|
|
@ -1,136 +0,0 @@
|
||||||
declare-option -docstring 'Whether to show hidden files' bool explore_files_show_hidden no
|
|
||||||
|
|
||||||
declare-option -hidden str explore_files
|
|
||||||
declare-option -hidden int explore_files_count
|
|
||||||
|
|
||||||
set-face global ExploreFiles 'magenta,default'
|
|
||||||
set-face global ExploreDirectories 'cyan,default'
|
|
||||||
|
|
||||||
add-highlighter shared/directory regions
|
|
||||||
add-highlighter shared/directory/content default-region group
|
|
||||||
add-highlighter shared/directory/content/files regex '^.+$' 0:ExploreFiles
|
|
||||||
add-highlighter shared/directory/content/directories regex '^.+/$' 0:ExploreDirectories
|
|
||||||
|
|
||||||
define-command -hidden explore-files-display -params 1..2 %{ evaluate-commands %sh{
|
|
||||||
command=$1
|
|
||||||
path=$(realpath "${2:-.}")
|
|
||||||
name=$(basename "$path")
|
|
||||||
out=$(mktemp --directory)
|
|
||||||
fifo=$out/fifo
|
|
||||||
last_buffer_name=$(basename "$kak_bufname")
|
|
||||||
mkfifo $fifo
|
|
||||||
cd "$path"
|
|
||||||
(eval "$command" > $fifo) < /dev/null > /dev/null 2>&1 &
|
|
||||||
echo "
|
|
||||||
edit -fifo %($fifo) %($path)
|
|
||||||
set-option buffer filetype directory
|
|
||||||
hook -once window NormalIdle '' %{
|
|
||||||
evaluate-commands -save-regs / %{
|
|
||||||
set-register / %(\b\Q$last_buffer_name\E\b)
|
|
||||||
try %(execute-keys n)
|
|
||||||
}
|
|
||||||
# Information
|
|
||||||
echo -markup {Information} %(Showing $name/ entries)
|
|
||||||
}
|
|
||||||
hook -always -once buffer BufCloseFifo '' %(nop %sh(rm --recursive $out))
|
|
||||||
# Information
|
|
||||||
echo -markup {Information} %(Showing $name/ entries)
|
|
||||||
"
|
|
||||||
}}
|
|
||||||
|
|
||||||
define-command -hidden explore-files-smart -params 0..1 %{ evaluate-commands %sh{
|
|
||||||
file=${1:-.}
|
|
||||||
edit=$(test -d "$file" && echo explore-files || echo edit)
|
|
||||||
echo "$edit %($file)"
|
|
||||||
}}
|
|
||||||
|
|
||||||
define-command -hidden explore-files -params 0..1 -docstring 'Explore directory entries' %{
|
|
||||||
explore-files-display "ls --dereference --group-directories-first --indicator-style=slash %sh(test $kak_opt_explore_files_show_hidden = true && echo --almost-all)" %arg(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden explore-files-recursive -params 0..1 -docstring 'Explore directory entries recursively' %{
|
|
||||||
explore-files-display "fd %sh(test $kak_opt_explore_files_show_hidden = true && echo --hidden)" %arg(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden explore-files-forward -docstring 'Edit selected files' %{
|
|
||||||
set-option current explore_files %val(bufname)
|
|
||||||
execute-keys '<a-s>;<a-x>_'
|
|
||||||
set-option current explore_files_count %sh(count() { echo $#; }; count $kak_selections_desc)
|
|
||||||
evaluate-commands -draft -itersel -save-regs 'F' %{
|
|
||||||
set-register F "%val(bufname)/%reg(.)"
|
|
||||||
evaluate-commands -client %val(client) %(explore-files-smart %reg(F))
|
|
||||||
}
|
|
||||||
delete-buffer %opt(explore_files)
|
|
||||||
evaluate-commands %sh{
|
|
||||||
count=$kak_opt_explore_files_count
|
|
||||||
test $count -gt 1 &&
|
|
||||||
echo "echo -markup {Information} %[$count files opened]"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden explore-files-back -docstring 'Explore parent directory' %{
|
|
||||||
set-option current explore_files %val(bufname)
|
|
||||||
explore-files "%opt(explore_files)/.."
|
|
||||||
delete-buffer %opt(explore_files)
|
|
||||||
echo -markup {Information} "Showing %sh(basename ""$kak_bufname"")/ entries"
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden explore-files-change-directory -docstring 'Change directory and quit' %{
|
|
||||||
change-directory %val(bufname)
|
|
||||||
delete-buffer
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden explore-files-toggle-hidden -docstring 'Toggle hidden files' %{
|
|
||||||
set-option current explore_files_show_hidden %sh{
|
|
||||||
if test $kak_opt_explore_files_show_hidden = true; then
|
|
||||||
echo no
|
|
||||||
else
|
|
||||||
echo yes
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
explore-files %val(bufname)
|
|
||||||
}
|
|
||||||
|
|
||||||
hook global WinSetOption filetype=directory %{
|
|
||||||
add-highlighter window/ ref directory
|
|
||||||
map window normal <ret> ': explore-files-forward<ret>'
|
|
||||||
map window normal <backspace> ': explore-files-back<ret>'
|
|
||||||
map window normal . ': explore-files-toggle-hidden<ret>'
|
|
||||||
map window normal R ': explore-files-recursive %val(bufname)<ret>'
|
|
||||||
map window normal q ': explore-files-change-directory<ret>'
|
|
||||||
map window normal <esc> ': delete-buffer<ret>'
|
|
||||||
hook -always -once window WinSetOption filetype=.* %{
|
|
||||||
remove-highlighter window/directory
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden explore-files-enable %{
|
|
||||||
hook window -group explore-files RuntimeError '\d+:\d+: ''(?:edit|e)'' wrong argument count' %{
|
|
||||||
explore-files %sh(dirname "$kak_buffile")
|
|
||||||
}
|
|
||||||
hook window -group explore-files RuntimeError '\d+:\d+: ''(?:edit|e)'' (.+): is a directory' %{
|
|
||||||
# Hide error message
|
|
||||||
echo
|
|
||||||
explore-files %val(hook_param_capture_1)
|
|
||||||
}
|
|
||||||
hook window -group explore-files RuntimeError 'unable to find file ''(.+)''' %{
|
|
||||||
# Hide error message
|
|
||||||
echo
|
|
||||||
explore-files-smart %val(hook_param_capture_1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hook -group explore-files global WinCreate .* %{
|
|
||||||
explore-files-enable
|
|
||||||
}
|
|
||||||
|
|
||||||
hook -group explore-files global KakBegin .* %{ hook -once global WinCreate .* %{ hook -once global NormalIdle '' %{
|
|
||||||
try %{ evaluate-commands -draft -save-regs '/' %{
|
|
||||||
buffer *debug*
|
|
||||||
set-register / 'error while opening file ''(.+?)'':\n\h+(.+?): is a directory'
|
|
||||||
execute-keys '%1s<ret>'
|
|
||||||
evaluate-commands -draft -itersel %{
|
|
||||||
evaluate-commands -client %val(client) explore-files %reg(.)
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
}}}
|
|
|
@ -1,11 +0,0 @@
|
||||||
decl int livedown_port 8642
|
|
||||||
|
|
||||||
def livedown-start %{ %sh{
|
|
||||||
(
|
|
||||||
livedown start --open --port "$kak_opt_livedown_port" "$kak_buffile"
|
|
||||||
) >/dev/null 2>&1 </dev/null &
|
|
||||||
}}
|
|
||||||
|
|
||||||
def livedown-stop %{ %sh{
|
|
||||||
livedown stop --port "$kak_opt_livedown_port"
|
|
||||||
}}
|
|
|
@ -1,27 +0,0 @@
|
||||||
def list-registers -docstring 'populate the *registers* buffer with the content of registers' %{
|
|
||||||
edit! -scratch *registers*
|
|
||||||
evaluate-commands %sh{
|
|
||||||
# empty scratch buffer
|
|
||||||
echo 'exec \%d'
|
|
||||||
|
|
||||||
# paste the content of each register on a separate line
|
|
||||||
for reg in {'%','.','#','"','@','/','^','|',{a..z},{0..9}}; do
|
|
||||||
echo "exec 'i${reg}<space><esc>\"${reg}pGj<a-j>o<esc>'"
|
|
||||||
done
|
|
||||||
|
|
||||||
# hide empty registers (lines with less than 4 chars)
|
|
||||||
echo 'exec \%<a-s><a-K>.{4,}<ret>d<space>'
|
|
||||||
|
|
||||||
# make sure all registers are easily visible
|
|
||||||
echo 'exec gg'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# beware, it wipes the content of reg x
|
|
||||||
def info-registers -docstring 'populate an info box with the content of registers' %{
|
|
||||||
list-registers
|
|
||||||
exec -save-regs \%| '%<a-s>|cut<space>-c-30<ret>%"xyga'
|
|
||||||
info -title registers -- %reg{x}
|
|
||||||
set-register x ''
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
define-command -hidden replace-insert -params 1 %{
|
|
||||||
try %{
|
|
||||||
execute-keys -draft ';<a-K>\n<ret>'
|
|
||||||
execute-keys '<del>'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden replace-delete -params 1 %{
|
|
||||||
execute-keys '<space><a-;>H'
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command replace -docstring 'Enter in replace mode' %{
|
|
||||||
hook window InsertChar '[^\n]' -group replace %(replace-insert %val(hook_param))
|
|
||||||
hook window InsertDelete '[^\n]' -group replace %(replace-delete %val(hook_param))
|
|
||||||
hook -once window ModeChange insert:normal %{
|
|
||||||
remove-hooks window replace
|
|
||||||
}
|
|
||||||
execute-keys -with-hooks i
|
|
||||||
}
|
|
|
@ -15,45 +15,6 @@ hook global WinSetOption filetype=(?!markdown).* %{
|
||||||
add-highlighter window/ number-lines -hlcursor -separator ' '
|
add-highlighter window/ number-lines -hlcursor -separator ' '
|
||||||
}
|
}
|
||||||
|
|
||||||
# map tmux split and window commands in vim style
|
|
||||||
def -file-completion -params 1 tabe %{ tmux-terminal-window edit %arg{1} }
|
|
||||||
def -file-completion -params 1 vsplit %{ tmux-terminal-vertical edit %arg{1} }
|
|
||||||
#map global insert ctrl-n '<esc>:new<ret>'
|
|
||||||
#map global normal ctrl-n ':new<ret>'
|
|
||||||
|
|
||||||
#def fedit -params 1 -shell-candidates %{ git ls-files } %{ edit %arg{1} }
|
|
||||||
#alias global fe fedit
|
|
||||||
|
|
||||||
def -docstring 'invoke fzf to open a file' \
|
|
||||||
fzf-file %{ %sh{
|
|
||||||
if [ -z "$TMUX" ]; then
|
|
||||||
echo echo only works inside tmux
|
|
||||||
else
|
|
||||||
FILE=`fzf-tmux -d 15`
|
|
||||||
if [ -n "$FILE" ]; then
|
|
||||||
echo "eval -client '$kak_client' 'edit ${FILE}'" | kak -p ${kak_session}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}}
|
|
||||||
|
|
||||||
def -docstring 'invoke fzf to select a buffer' \
|
|
||||||
fzf-buffer %{ %sh{
|
|
||||||
if [ -z "$TMUX" ]; then
|
|
||||||
echo echo only works inside tmux
|
|
||||||
else
|
|
||||||
BUFFER=`echo ${kak_buflist} | tr : '\n' | fzf-tmux -d 15`
|
|
||||||
if [ -n "$BUFFER" ]; then
|
|
||||||
echo "eval -client '$kak_client' 'buffer ${BUFFER}'" | kak -p ${kak_session}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}}
|
|
||||||
|
|
||||||
alias global ffe fzf-file
|
|
||||||
alias global ffb fzf-buffer
|
|
||||||
|
|
||||||
set global tabstop 2
|
|
||||||
set global indentwidth 2
|
|
||||||
|
|
||||||
hook global WinSetOption filetype=(javascript|ecmascript) %{
|
hook global WinSetOption filetype=(javascript|ecmascript) %{
|
||||||
set window formatcmd 'prettier-standard'
|
set window formatcmd 'prettier-standard'
|
||||||
#hook window BufWritePre .* format
|
#hook window BufWritePre .* format
|
||||||
|
@ -69,65 +30,3 @@ hook global WinSetOption filetype=json %{
|
||||||
set window formatcmd 'jq .'
|
set window formatcmd 'jq .'
|
||||||
hook window BufWritePre .* format
|
hook window BufWritePre .* format
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#########################################################
|
|
||||||
# buffers (https://github.com/Delapouite/kakoune-buffers)
|
|
||||||
#
|
|
||||||
# sets former b (word-back) to q and makes b a global key
|
|
||||||
# for the new buffers command. I don't use macros anyway.
|
|
||||||
#########################################################
|
|
||||||
|
|
||||||
hook global WinDisplay .* info-buffers
|
|
||||||
|
|
||||||
# ciao macros
|
|
||||||
map global normal ^ q
|
|
||||||
map global normal <a-^> Q
|
|
||||||
map global normal q b
|
|
||||||
map global normal Q B
|
|
||||||
map global normal <a-q> <a-b>
|
|
||||||
map global normal <a-Q> <a-B>
|
|
||||||
|
|
||||||
map global normal b ':enter-buffers-mode<ret>' -docstring 'buffers…'
|
|
||||||
map global normal B ':enter-user-mode -lock buffers<ret>' -docstring 'buffers (lock)…'
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# lsp support (https://github.com/ul/kak-lsp)
|
|
||||||
# ...but it's not working yet
|
|
||||||
#############################################
|
|
||||||
|
|
||||||
# eval %sh{kak-lsp --kakoune -s $kak_session}
|
|
||||||
#
|
|
||||||
# set-option global lsp_completion_trigger "execute-keys 'h<a-h><a-k>\S[^\h\n,=;*(){}\[\]]\z<ret>'"
|
|
||||||
# set-option global lsp_diagnostic_line_error_sign "!"
|
|
||||||
# set-option global lsp_diagnostic_line_warning_sign "?"
|
|
||||||
#
|
|
||||||
# hook global WinSetOption filetype=(c|cpp|rust|javascript|html|css|json) %{
|
|
||||||
# map window user "l" ": enter-user-mode lsp<ret>" -docstring "LSP mode"
|
|
||||||
# lsp-enable-window
|
|
||||||
# lsp-auto-hover-enable
|
|
||||||
# lsp-auto-hover-insert-mode-disable
|
|
||||||
# set-option window lsp_hover_anchor true
|
|
||||||
# set-face window DiagnosticError default+u
|
|
||||||
# set-face window DiagnosticWarning default+u
|
|
||||||
#}
|
|
||||||
#hook global WinSetOption filetype=rust %{
|
|
||||||
# set-option window lsp_server_configuration rust.clippy_preference="on"
|
|
||||||
#}
|
|
||||||
#hook global KakEnd .* lsp-exit
|
|
||||||
|
|
||||||
|
|
||||||
##########################################################
|
|
||||||
# replace mode (https://github.com/alexherbo2/replace.kak)
|
|
||||||
# that is one thing I missed in Kakoune: writing over text
|
|
||||||
##########################################################
|
|
||||||
map global user r -docstring 'Replace' ': replace<ret>'
|
|
||||||
|
|
||||||
###########################################################
|
|
||||||
# explore files (https://github.com/alexherbo2/explore.kak)
|
|
||||||
# use fd instead of find
|
|
||||||
###########################################################
|
|
||||||
define-command -hidden -override explore-files-recursive -params 0..1 %{
|
|
||||||
explore-files-display "fd %sh(test $kak_opt_explore_files_show_hidden = true && echo --hidden)" %arg(1)
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
# Detection
|
|
||||||
# ‾‾‾‾‾‾‾‾‾
|
|
||||||
|
|
||||||
hook global BufCreate .*[.]?(todo\.txt) %{
|
|
||||||
set buffer filetype todotxt
|
|
||||||
|
|
||||||
def -hidden todo-done2bottom %{
|
|
||||||
try %{
|
|
||||||
exec '%<a-s><a-k>^x <ret>dge<a-p>:echo %reg{#} items moved<ret>'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
def -hidden todo-a2top %{
|
|
||||||
try %{
|
|
||||||
exec '%<a-s><a-k>^\(A\) <ret>dgg<a-P>:echo %reg{#} items moved<ret>'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
def -hidden todo-b2top %{
|
|
||||||
try %{
|
|
||||||
exec '%<a-s><a-k>^\(B\) <ret>dgg<a-P>:echo %reg{#} items moved<ret>'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
def -hidden todo-c2top %{
|
|
||||||
try %{
|
|
||||||
exec '%<a-s><a-k>^\(C\) <ret>dgg<a-P>:echo %reg{#} items moved<ret>'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
def -docstring 'sort items by priority and state' todo-sort %{
|
|
||||||
exec '%:todo-c2top<ret>:todo-b2top<ret>:todo-a2top<ret>:todo-done2bottom<ret>'
|
|
||||||
}
|
|
||||||
def -docstring 'mark item under cursor as done' todo-mark-done %{
|
|
||||||
try %{
|
|
||||||
exec 'xs\([ABC]\) <ret>cx <esc>'
|
|
||||||
} catch %{
|
|
||||||
exec 'ghix <esc>'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
def -docstring 'mark item under cursor as high priority' -params 1 todo-mark-prio %{
|
|
||||||
try %{
|
|
||||||
exec "xs^(\([ABC]\)|x) <ret>c(%arg{1}) <esc>"
|
|
||||||
} catch %{
|
|
||||||
exec "ghi(%arg{1}) <esc>"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
face global TodoPrioA red+b
|
|
||||||
face global TodoPrioB yellow+b
|
|
||||||
face global TodoPrioC cyan+b
|
|
||||||
face global TodoDate default+b
|
|
||||||
|
|
||||||
|
|
||||||
add-highlighter global/todotxt group
|
|
||||||
add-highlighter global/todotxt/comment regex "^x ([^\n]+)" 0:comment # done items
|
|
||||||
add-highlighter global/todotxt/prio-a regex "^\(A\) ([^\n]+)" 0:TodoPrioA # priority (A)
|
|
||||||
add-highlighter global/todotxt/prio-b regex "^\(B\) ([^\n]+)" 0:TodoPrioB # priority (B)
|
|
||||||
add-highlighter global/todotxt/prio-c regex "^\(C\) ([^\n]+)" 0:TodoPrioC # priority (C)
|
|
||||||
add-highlighter global/todotxt/key-value regex "([^:|^ ]+:)([^ |^\n]+)" 0:value 1:type # key:value
|
|
||||||
add-highlighter global/todotxt/keyword regex "(\+[^\+|^ |^\n]+)" 0:keyword # +project
|
|
||||||
add-highlighter global/todotxt/meta regex "(@[^\+|^ |^\n]+)" 0:meta # @context
|
|
||||||
add-highlighter global/todotxt/date regex "(\d{4}-\d{2}-\d{2})" 0:TodoDate # date
|
|
||||||
|
|
||||||
hook -group todotxt-highlight global WinSetOption filetype=todotxt %{ add-highlighter window ref todotxt }
|
|
||||||
hook -group todotxt-highlight global WinSetOption filetype=(?!todotxt).* %{ remove-highlighter window/todotxt }
|
|
||||||
|
|
|
@ -1,77 +0,0 @@
|
||||||
# Vue file
|
|
||||||
# ‾‾‾‾‾‾‾‾
|
|
||||||
|
|
||||||
# Detection
|
|
||||||
# ‾‾‾‾‾‾‾‾‾
|
|
||||||
|
|
||||||
hook global BufCreate .*\.vue %{
|
|
||||||
set-option buffer filetype vue
|
|
||||||
}
|
|
||||||
|
|
||||||
# Highlighters
|
|
||||||
# ‾‾‾‾‾‾‾‾‾‾‾‾
|
|
||||||
|
|
||||||
add-highlighter shared/vue regions
|
|
||||||
add-highlighter shared/vue/tag region < > regions
|
|
||||||
add-highlighter shared/vue/pug region <template\b.*?lang="pug".*?>\K (?=</template>) ref pug
|
|
||||||
add-highlighter shared/vue/html region <template\b.*?>\K (?=</template>) ref html
|
|
||||||
add-highlighter shared/vue/scss region <style\b.*?lang="scss".*?>\K (?=</style>) ref scss
|
|
||||||
add-highlighter shared/vue/sass region <style\b.*?lang="sass".*?>\K (?=</style>) ref sass
|
|
||||||
add-highlighter shared/vue/less region <style\b.*?lang="less".*?>\K (?=</style>) ref less
|
|
||||||
add-highlighter shared/vue/css region <style\b.*?>\K (?=</style>) ref css
|
|
||||||
add-highlighter shared/vue/ts region <script\b.*?lang="typescript".*?>\K (?=</script>) ref ts
|
|
||||||
add-highlighter shared/vue/js region <script\b.*?>\K (?=</script>) ref javascript
|
|
||||||
|
|
||||||
add-highlighter shared/vue/tag/base default-region group
|
|
||||||
add-highlighter shared/vue/tag/ region '"' (?<!\\)(\\\\)*" fill string
|
|
||||||
add-highlighter shared/vue/tag/ region "'" "'" fill string
|
|
||||||
|
|
||||||
add-highlighter shared/vue/tag/base/ regex \b([a-zA-Z0-9_-]+)=? 1:attribute
|
|
||||||
add-highlighter shared/vue/tag/base/ regex </?(\w+) 1:keyword
|
|
||||||
|
|
||||||
# Commands
|
|
||||||
# ‾‾‾‾‾‾‾‾
|
|
||||||
|
|
||||||
define-command -hidden vue-filter-around-selections %{
|
|
||||||
# remove trailing white spaces
|
|
||||||
try %{ execute-keys -draft -itersel <a-x> s \h+$ <ret> d }
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -hidden vue-indent-on-greater-than %[
|
|
||||||
evaluate-commands -draft -itersel %[
|
|
||||||
# align closing tag to opening when alone on a line
|
|
||||||
try %[ execute-keys -draft <space> <a-h> s ^\h+<lt>/(\w+)<gt>$ <ret> {c<lt><c-r>1,<lt>/<c-r>1<gt> <ret> s \A|.\z <ret> 1<a-&> ]
|
|
||||||
]
|
|
||||||
]
|
|
||||||
|
|
||||||
define-command -hidden vue-indent-on-new-line %{
|
|
||||||
evaluate-commands -draft -itersel %{
|
|
||||||
# preserve previous line indent
|
|
||||||
try %{ execute-keys -draft \; K <a-&> }
|
|
||||||
# filter previous line
|
|
||||||
try %{ execute-keys -draft k : vue-filter-around-selections <ret> }
|
|
||||||
# indent after lines ending with opening tag
|
|
||||||
try %{ execute-keys -draft k <a-x> <a-k> <[^/][^>]+>$ <ret> j <a-gt> }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Initialization
|
|
||||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
|
||||||
|
|
||||||
hook -group vue-highlight global WinSetOption filetype=vue %{ add-highlighter window/vue ref vue }
|
|
||||||
|
|
||||||
hook global WinSetOption filetype=vue %{
|
|
||||||
hook window ModeChange insert:.* -group vue-hooks vue-filter-around-selections
|
|
||||||
hook window InsertChar '>' -group vue-indent vue-indent-on-greater-than
|
|
||||||
hook window InsertChar \n -group vue-indent vue-indent-on-new-line
|
|
||||||
set window comment_line '//'
|
|
||||||
set window comment_block_begin '<!--'
|
|
||||||
set window comment_block_end '-->'
|
|
||||||
}
|
|
||||||
|
|
||||||
hook -group vue-highlight global WinSetOption filetype=(?!vue).* %{ remove-highlighter window/vue }
|
|
||||||
|
|
||||||
hook global WinSetOption filetype=(?!vue).* %{
|
|
||||||
remove-hooks window vue-indent
|
|
||||||
remove-hooks window vue-hooks
|
|
||||||
}
|
|
|
@ -1,116 +0,0 @@
|
||||||
declare-option -docstring %{ Path to wiki directory } str wiki_path
|
|
||||||
|
|
||||||
# program that outputs relative path given two absolute as params
|
|
||||||
declare-option -hidden str wiki_relative_path_program %{ perl -e 'use File::Spec; print File::Spec->abs2rel(@ARGV) . "\n"' }
|
|
||||||
|
|
||||||
|
|
||||||
define-command -hidden -params 1 wiki_setup %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
echo "set-option global wiki_path $1"
|
|
||||||
echo "hook global BufCreate $1/.+\.md %{ wiki_enable }"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command wiki -params 1 \
|
|
||||||
-docstring %{ wiki [file.md]: Edit or create wiki page } \
|
|
||||||
-shell-script-candidates %{ cd $kak_opt_wiki_path; find . -type f -name '*.md' | sed -e 's/^\.\///' } \
|
|
||||||
%{ evaluate-commands %sh{
|
|
||||||
if [ ! -e "$kak_opt_wiki_path/$1" ]; then
|
|
||||||
echo "wiki_new_page %{$1}"
|
|
||||||
fi
|
|
||||||
echo "edit %{$kak_opt_wiki_path/$1}"
|
|
||||||
}}
|
|
||||||
|
|
||||||
define-command wiki_enable %{
|
|
||||||
add-highlighter buffer/wiki group
|
|
||||||
add-highlighter buffer/wiki/tag regex '\B@\S+' 0:link
|
|
||||||
add-highlighter buffer/wiki/link regex '\[\w+\]' 0:link
|
|
||||||
hook buffer InsertKey '<ret>' -group wiki %{
|
|
||||||
evaluate-commands %{ try %{
|
|
||||||
execute-keys -draft %{
|
|
||||||
<a-b><a-k>\A@!\w+<ret>
|
|
||||||
:wiki_expand_pic<ret>
|
|
||||||
}} catch %{
|
|
||||||
try %{ execute-keys -draft %{
|
|
||||||
<a-b><a-k>\A@\w+<ret>
|
|
||||||
:wiki_expand_tag<ret>
|
|
||||||
}
|
|
||||||
execute-keys <backspace>
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
}
|
|
||||||
hook buffer NormalKey '<ret>' -group wiki %{
|
|
||||||
try %{ wiki_follow_link }
|
|
||||||
try %{ wiki_toggle_checkbox }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command wiki_disable %{
|
|
||||||
remove-highlighter buffer/wiki
|
|
||||||
remove-hooks buffer wiki
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command wiki_expand_tag \
|
|
||||||
-docstring %{ Expands tag from @filename form to [filename](filename.md)
|
|
||||||
Creates empty markdown file in wiki_path if not exist. Selection must be
|
|
||||||
somewhere on @tag and @tag should not contain extension } %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
this="$kak_buffile"
|
|
||||||
tag=$(echo $kak_selection | sed -e 's/^\@//')
|
|
||||||
other="$kak_opt_wiki_path/$tag.md"
|
|
||||||
relative=$(eval "$kak_opt_wiki_relative_path_program" "$other" $(dirname "$this"))
|
|
||||||
# sanity chceck
|
|
||||||
echo "execute-keys -draft '<a-k>\A@[^@]+<ret>'"
|
|
||||||
echo "execute-keys \"c[$tag]($relative)<esc>\""
|
|
||||||
echo "wiki_new_page \"$tag\""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command wiki_expand_pic \
|
|
||||||
-docstring %{ Expands images from @!filename.png form to } %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
this="$kak_buffile"
|
|
||||||
tag=$(echo $kak_selection | sed -e 's/^\@!//')
|
|
||||||
other="$kak_opt_wiki_path/$tag"
|
|
||||||
relative=$(eval "$kak_opt_wiki_relative_path_program" "$other" $(dirname "$this"))
|
|
||||||
# sanity check
|
|
||||||
echo execute-keys -draft '<a-k>^@\+[^@!]+'
|
|
||||||
echo execute-keys "c<esc>"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -params 1 -hidden \
|
|
||||||
-docstring %{ wiki_new_page [name]: create new wiki page in wiki_path if not exists } \
|
|
||||||
wiki_new_page %{
|
|
||||||
nop %sh{
|
|
||||||
file="$kak_opt_wiki_path/${1%.md}"
|
|
||||||
mkdir -p "$(dirname $file)"
|
|
||||||
touch "${file}.md"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command wiki_follow_link \
|
|
||||||
-docstring %{ Follow markdown link and open file if exists } %{
|
|
||||||
evaluate-commands %{
|
|
||||||
execute-keys %{
|
|
||||||
<esc><a-a>c\[,\)<ret><a-:>
|
|
||||||
<a-i>b
|
|
||||||
}
|
|
||||||
evaluate-commands -try-client %opt{jumpclient} edit -existing %sh{
|
|
||||||
echo "${kak_buffile%/*.md}/$kak_selection"
|
|
||||||
}
|
|
||||||
try %{ focus %opt{jumpclient} }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command wiki_toggle_checkbox \
|
|
||||||
-docstring "Toggle markdown checkbox in current line" %{
|
|
||||||
try %{
|
|
||||||
try %{
|
|
||||||
execute-keys -draft %{
|
|
||||||
<esc><space>;xs-\s\[\s\]<ret><a-i>[rX
|
|
||||||
}} catch %{
|
|
||||||
execute-keys -draft %{
|
|
||||||
<esc><space>;xs-\s\[X\]<ret><a-i>[r<space>
|
|
||||||
}}}
|
|
||||||
}
|
|
|
@ -5,8 +5,92 @@ set-option global aligntab true
|
||||||
set-option global ui_options ncurses_assistant=dilbert
|
set-option global ui_options ncurses_assistant=dilbert
|
||||||
set-option -add global ui_options ncurses_change_colors=true
|
set-option -add global ui_options ncurses_change_colors=true
|
||||||
set-option global grepcmd 'rg --column'
|
set-option global grepcmd 'rg --column'
|
||||||
|
set-option global tabstop 2
|
||||||
|
set-option global indentwidth 2
|
||||||
|
|
||||||
|
# plug.kak plugin manager
|
||||||
|
source "%val{config}/plugins/plug.kak/rc/plug.kak"
|
||||||
|
|
||||||
|
|
||||||
|
plug "andreyorst/plug.kak" noload
|
||||||
|
|
||||||
|
plug "lenormf/kakoune-extra" load %{
|
||||||
|
autodownload.kak
|
||||||
|
fzy.kak
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################
|
||||||
|
# lsp support (https://github.com/ul/kak-lsp) #
|
||||||
|
# ...but it's not working yet #
|
||||||
|
###############################################
|
||||||
|
plug "ul/kak-lsp" do %{
|
||||||
|
cargo build --release --locked
|
||||||
|
cargo install --force --path .
|
||||||
|
}
|
||||||
|
|
||||||
|
plug "TeddyDD/kakoune-wiki" config %{
|
||||||
wiki_setup "/home/nk/Wiki"
|
wiki_setup "/home/nk/Wiki"
|
||||||
|
}
|
||||||
|
|
||||||
|
###########################################################
|
||||||
|
# kakoune-buffers #
|
||||||
|
# sets former b (word-back) to q and makes b a global key #
|
||||||
|
# for the new buffers command. I don't use macros anyway. #
|
||||||
|
###########################################################
|
||||||
|
plug 'delapouite/kakoune-buffers' config %{
|
||||||
|
map global normal ^ q
|
||||||
|
map global normal <a-^> Q
|
||||||
|
map global normal q b
|
||||||
|
map global normal Q B
|
||||||
|
map global normal <a-q> <a-b>
|
||||||
|
map global normal <a-Q> <a-B>
|
||||||
|
map global normal b ': enter-buffers-mode<ret>' -docstring 'buffers'
|
||||||
|
map global normal B ': enter-user-mode -lock buffers<ret>' -docstring 'buffers (lock)'
|
||||||
|
hook·global·WinDisplay·.*·info-buffers
|
||||||
|
}
|
||||||
|
|
||||||
|
plug "ABuffSeagull/kakoune-vue"
|
||||||
|
plug "ABuffSeagull/kakoune-wiki"
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# replace mode #
|
||||||
|
# that is one thing I missed in Kakoune: writing over text #
|
||||||
|
############################################################
|
||||||
|
plug "alexherbo2/replace.kak" noload config %{
|
||||||
|
## currently not working well
|
||||||
|
# map global user r -docstring 'Replace' ': replace<ret>'
|
||||||
|
}
|
||||||
|
|
||||||
|
###########################################################
|
||||||
|
# explore files (https://github.com/alexherbo2/explore.kak)
|
||||||
|
# use fd instead of find
|
||||||
|
###########################################################
|
||||||
|
plug "alexherbo2/explore.kak" config %{
|
||||||
|
define-command -hidden -override explore-files-recursive -params 0..1 %{
|
||||||
|
explore-files-display "fd %sh(test $kak_opt_explore_files_show_hidden = true && echo --hidden)" %arg(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# TODO: check out snippets
|
||||||
|
# plug "alexherbo2/snippets.kak" config %{
|
||||||
|
# }
|
||||||
|
|
||||||
|
# TODO: check out tagbar
|
||||||
|
# plug "andreyorst/tagbar.kak" config %{
|
||||||
|
# set-option global tagbar_sort false
|
||||||
|
# set-option global tagbar_size 40
|
||||||
|
# set-option global tagbar_display_anon false
|
||||||
|
#} config %{
|
||||||
|
# if you have wrap highlighter enamled in you configuration
|
||||||
|
# # files it's better to turn it off for tagbar, using this hook:
|
||||||
|
# hook global WinSetOption filetype=tagbar %{
|
||||||
|
# remove-highlighter window/wrap
|
||||||
|
# # you can also disable rendering whitespaces here, line numbers, and
|
||||||
|
# # matching characters
|
||||||
|
# }
|
||||||
|
#}
|
||||||
|
|
||||||
|
# set-option global fzf_filesearch_cmd "fd '%s'"
|
||||||
|
|
||||||
# with inspiration from
|
# with inspiration from
|
||||||
# https://github.com/Delapouite/dotfiles/blob/master/link/kak/kakrc
|
# https://github.com/Delapouite/dotfiles/blob/master/link/kak/kakrc
|
||||||
|
@ -20,6 +104,9 @@ hook global InsertEnd .* %{
|
||||||
lint
|
lint
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# defines tabe and vsplit commands
|
||||||
|
# def -file-completion -params 1 tabe %{ tmux-terminal-window edit %arg{1} }
|
||||||
|
|
||||||
# spaces instead tabs
|
# spaces instead tabs
|
||||||
map global insert <tab> ' '
|
map global insert <tab> ' '
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue