Helix and lf config files.
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
theme = "gruvbox_dark_hard"
|
||||
|
||||
[editor]
|
||||
true-color = true
|
||||
|
||||
[editor.indent-guides]
|
||||
render = true
|
||||
character = "▏"
|
||||
skip-levels = 1
|
||||
|
||||
# command list here: https://github.com/helix-editor/helix/blob/master/helix-term/src/commands.rs
|
||||
[keys.normal]
|
||||
esc = [ "collapse_selection", "keep_primary_selection" ]
|
||||
X = "extend_line_above"
|
||||
D = "kill_to_line_end"
|
||||
|
||||
[keys.normal.'space']
|
||||
"p" = "goto_last_accessed_file"
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
# ── Core ─────────────────────────────────────────────────────────────────────
|
||||
set shell bash
|
||||
set shellopts '-eu'
|
||||
set ifs "\n"
|
||||
set scrolloff 8
|
||||
set icons true
|
||||
set period 1
|
||||
set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml"
|
||||
set cursorpreviewfmt "\033[7m"
|
||||
|
||||
# ── UI ───────────────────────────────────────────────────────────────────────
|
||||
set drawbox true
|
||||
set ratios 1:2:3
|
||||
set info size:time
|
||||
set sortby natural
|
||||
set dirfirst true
|
||||
|
||||
# ── Preview ──────────────────────────────────────────────────────────────────
|
||||
set previewer ~/.config/lf/preview
|
||||
set cleaner ~/.config/lf/cleaner
|
||||
|
||||
# ── Keybindings ──────────────────────────────────────────────────────────────
|
||||
|
||||
# unmap defaults we're replacing
|
||||
map m
|
||||
map d
|
||||
map e
|
||||
map f
|
||||
|
||||
# navigation (vim)
|
||||
map h updir
|
||||
map l open
|
||||
map j down
|
||||
map k up
|
||||
map g top
|
||||
map G bottom
|
||||
map <c-d> half-down
|
||||
map <c-u> half-up
|
||||
|
||||
# enter key — writes selection path and quits (for tmux-lf-helix script)
|
||||
map <enter> select-and-quit
|
||||
|
||||
# go-to shortcuts
|
||||
map gh cd ~
|
||||
map gc cd ~/.config
|
||||
map gd cd ~/Downloads
|
||||
map gb cd ~/bin
|
||||
|
||||
# file operations
|
||||
map dd cut
|
||||
map dD delete
|
||||
map yy copy
|
||||
map p paste
|
||||
map r rename
|
||||
map R bulk-rename
|
||||
|
||||
map . set hidden!
|
||||
map <space> toggle
|
||||
|
||||
# new file/dir
|
||||
map mf push %touch<space>
|
||||
map md push %mkdir<space>-p<space>
|
||||
|
||||
# ── Commands ─────────────────────────────────────────────────────────────────
|
||||
|
||||
cmd select-and-quit &{{
|
||||
if [ -n "$fs" ]; then
|
||||
# if files are toggled/selected use those
|
||||
echo "$fs" > "$lf_selection_path_file"
|
||||
else
|
||||
# otherwise use the hovered file
|
||||
echo "$f" > "$lf_selection_path_file"
|
||||
fi
|
||||
lf -remote "send $id quit"
|
||||
}}
|
||||
|
||||
cmd bulk-rename ${{
|
||||
old=$(mktemp)
|
||||
new=$(mktemp)
|
||||
[ -n "$fs" ] && fs=$(ls)
|
||||
printf '%s\n' "$fs" > "$old"
|
||||
printf '%s\n' "$fs" > "$new"
|
||||
$EDITOR "$new"
|
||||
[ "$(wc -l < "$new")" -ne "$(wc -l < "$old")" ] && exit
|
||||
paste "$old" "$new" | while IFS= read -r names; do
|
||||
src=$(printf '%s' "$names" | cut -f1)
|
||||
dst=$(printf '%s' "$names" | cut -f2)
|
||||
[ "$src" = "$dst" ] && continue
|
||||
mv -- "$src" "$dst"
|
||||
done
|
||||
rm "$old" "$new"
|
||||
lf -remote "send $id unselect"
|
||||
}}
|
||||
|
||||
cmd open ${{
|
||||
case $(file --mime-type -b "$f") in
|
||||
text/*|application/json|application/toml|application/yaml)
|
||||
$EDITOR "$f" ;;
|
||||
*)
|
||||
xdg-open "$f" >/dev/null 2>&1 & ;;
|
||||
esac
|
||||
}}
|
||||
Reference in New Issue
Block a user