diff options
| author | Marc Vertes <mvertes@free.fr> | 2025-04-25 16:49:35 +0200 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2025-04-25 16:49:35 +0200 |
| commit | 733d2209b0c78adaf55baf26b4aa67ef08f057ab (patch) | |
| tree | d2579206546bdb7f1694f8c0e6755822f62bab8c | |
| parent | 697dbbdfe606c03a36adee298c8e9081290e4d3b (diff) | |
update
| -rw-r--r-- | .vimrc | 1 | ||||
| l---------[-rwxr-xr-x] | bin/cle | 50 |
2 files changed, 2 insertions, 49 deletions
@@ -37,6 +37,7 @@ set guicursor=a:block-Cursor/lCursor-blinkon0 " Activate man pages display in vim with hyperlink navigation. ru ftplugin/man.vim set keywordprg=:Man +nmap q :q
" fzf plugin set rtp+=/opt/homebrew/opt/fzf @@ -1,49 +1 @@ -#!/bin/sh -Ce - -clip() { print "$1" | tee /dev/tty | head -n 1 | pbcopy; } - -checkpath() { set -- $(realpath "$1"); [ "${1#~/.cle/}" != "$1" ]; } - -del() { - set -- ~/.cle/"$1" - checkpath "$1" || die "invalid path $1" - rm -i "$1" - rmdir -p "${1%/*}" 2>/dev/null || true -} - -die() { echo "$@" >&2; exit 1; } - -edit() { - [ "$1" ] || die 'missing argument' - tmp=$(mktemp) f=~/.cle/"$1" - trap 'rm -f "$tmp"' EXIT - print "$1" >| "$tmp" || mkdir -p "${f%/*}" - [ -s "$tmp" ] || gen >| "$tmp" - "${EDITOR:-vim}" "$tmp" - crypt < "$tmp" >| "$f" -} - -gen() { LC_ALL=C tr -dc 'A-Za-z0-9!?%=' < /dev/urandom | head -c 10; } - -list() { cd ~/.cle && find -- * -name .git -prune -o -type f -print; } - -print() { [ -f ~/.cle/"$1" ] && crypt -d < ~/.cle/"$1"; } - -tui() { - list | fzf --preview 'cle print {}' \ - --preview-window hidden \ - --header 'Ret Select, Esc Cancel, ^E Edit, ^N New, ^P Preview, ^Del Delete' \ - --bind 'ctrl-delete:execute(cle del {})+reload(cle list)' \ - --bind 'ctrl-e:execute(cle edit {})' \ - --bind 'ctrl-n:execute(cle edit {q})+reload(cle list)' \ - --bind 'ctrl-p:toggle-preview' \ - --query "$1" --select-1 | - xargs cle clip -} - -case $1 in - (clip|del|edit|gen|list|print) - cmd=$1; shift; $cmd "$@" ;; - (*) - tui "$@" ;; -esac +../.cle/cle
\ No newline at end of file |
