dotfiles/.config/kak/autoload/rename.kak

61 lines
1.7 KiB
Text

define-command -docstring %{
move-file <name>: move the file on the filesystem and the open buffer.
} -params 1 move-file %{
nop %sh{
old="${kak_bufname}"
echo "rename-buffer $1 ; write" >$kak_command_fifo
rm "$old"
}
}
complete-command move-file file
alias global mv move-file
define-command -docstring %{
rename-file <name>: rename the file on filesystem and buffer,
keeping the same directory.
} -params 1 rename-file %{
nop %sh{
dir="${kak_buffile%/*}"
# base="${kak_buffile##/*}"
new="${dir}/$1"
echo "rename-buffer $new ; write" >$kak_command_fifo
rm "$kak_buffile"
}
}
alias global rf rename-file
define-command -docstring %{
remove-file [<switches>] [<name>]: remove the file from the filesystem
and close the buffer. Omit <name> to remove the current file.
Switches:
-f remove even if buffer has unsaved changes
} -params 0..2 remove-file %{
evaluate-commands %sh{
if [ "$1" = "-f" ]; then
force="true"
shift
fi
if [ -z "$1" ]; then
targ="$kak_buffile"
targ_bname="$kak_bufname"
else
targ="$(realpath ${1})"
targ_bname="$1"
fi
if [ "$kak_modified" = "true" ]; then
if [ "$force" != "true" ]; then
echo "fail 'Refusing to remove modified buffer without -f switch.'"
else
echo "try %{ delete-buffer! $targ_bname }" >$kak_command_fifo
rm "$targ"
fi
else
echo "try %{ delete-buffer $targ_bname }" >$kak_command_fifo
rm "$targ"
fi
}
}
alias global rm remove-file
complete-command remove-file file