diff options
| author | Mike Vink <ivi@vinkies.net> | 2025-02-09 19:49:29 +0100 |
|---|---|---|
| committer | Mike Vink <ivi@vinkies.net> | 2025-02-09 19:49:29 +0100 |
| commit | c777225918e964e3a52ced1848a4ef0f58408503 (patch) | |
| tree | 51699b8ecbceb8b98e9e0b9f39aee5f1bbb6eba1 /.config | |
| parent | 439dc96e5a80cc15952cded1f432185ed97f8c69 (diff) | |
update
Diffstat (limited to '.config')
| -rw-r--r-- | .config/ksh/ksh.kshrc | 22 | ||||
| -rw-r--r-- | .config/lf/lfrc | 7 | ||||
| -rw-r--r-- | .config/shell/profile | 11 | ||||
| -rw-r--r-- | .config/vis/visrc.lua | 40 |
4 files changed, 49 insertions, 31 deletions
diff --git a/.config/ksh/ksh.kshrc b/.config/ksh/ksh.kshrc new file mode 100644 index 0000000..1868212 --- /dev/null +++ b/.config/ksh/ksh.kshrc @@ -0,0 +1,22 @@ +lfcd () { + tmp="$(mktemp -uq)" + trap 'rm -f $tmp >/dev/null 2>&1 && trap - HUP INT QUIT TERM PWR EXIT' HUP INT QUIT TERM PWR EXIT + lf -last-dir-path="$tmp" "$@" + if [ -f "$tmp" ]; then + dir="$(cat "$tmp")" + [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" + fi +} +bind -m ^O=' lfcd^J' + +# Emacs mode clear chops off multline prompts. +export PS1="$(hostname):/\$( +pwd | cut -d'/' -f2- --output-delimiter ' +' | cut -c1-3 | paste -sd '/' +)\$(prompt-git)\n# " +bind -m ^L="^A^K clear^J" + +export HISTFILE="$HOME/.history" +export HISTCONTROL=ignorespace +set -o emacs + diff --git a/.config/lf/lfrc b/.config/lf/lfrc index e34d8c3..bb86a04 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -16,8 +16,9 @@ # called directly instead of normal lf. # Basic vars -set shellopts '-eu' +# set shellopts '-eu' set ifs "\n" +set hidden set scrolloff 10 set icons set period 1 @@ -120,7 +121,7 @@ cmd bulkrename ${{ tmpfile_old="$(mktemp)" tmpfile_new="$(mktemp)" - [ -n "$fs" ] && fs=$(basename -a $fs) || fs=$(ls) + [ -n "$fs" ] && fs=$(basename -a $fs) || fs=$(ls -A) echo "$fs" > "$tmpfile_old" echo "$fs" > "$tmpfile_new" @@ -146,7 +147,7 @@ cmd on-quit ${{ fi }} -cmd change-last-dir &{{ +cmd change-last-dir ${{ echo "$PWD" > /tmp/lf-on-quit }} diff --git a/.config/shell/profile b/.config/shell/profile index ee2e117..d7ac043 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -1,9 +1,4 @@ -export HISTFILE="$HOME/.history" -export HISTCONTROL="ignorespace" +export EDITOR=vis + +export PATH=$PATH:$HOME/go/bin:/usr/local/go/bin -# Emacs mode clear chops off multline prompts. -export PS1="$(hostname):/\$( -pwd | cut -d'/' -f2- --output-delimiter ' -' | cut -c1-3 | paste -sd '/' -) \$(prompt-git)\n# " -bind -m ^L=" clear^J" diff --git a/.config/vis/visrc.lua b/.config/vis/visrc.lua index 4f87b50..69a16a9 100644 --- a/.config/vis/visrc.lua +++ b/.config/vis/visrc.lua @@ -75,34 +75,34 @@ local parent = function(filename) return nil end -local lfcd = function(cd_or_select_path) - local code, result, err = vis:pipe("", "lf --print-selection " .. cd_or_select_path) - vis:command("cd " .. err) - if result then - vis:command("e " .. result) +-- Only works on linux for now. +local pcwd = function() + local stat = io.open("/proc/self/stat"):read("*a") + local fields = {} + for k in stat:gmatch("[^%s]+") do table.insert(fields, k) end + if not fields[4] then + return "." end - return true; + local parent_cwd = "/proc/" .. fields[4] .. "/cwd" + vis:info(parent_cwd) + return parent_cwd end vis:map(m.NORMAL, "<C-x>~", function() - vis:command("cd " .. (parent(vis.win.file.path) or ".")) + vis:command("cd " .. pcwd()) return true; end) -vis:map(m.NORMAL, "<C-x><C-f>", function() - local code, result, err = vis:pipe("", "vis-open " .. (parent(vis.win.file.path) or ".")) +vis:map(m.NORMAL, "<C-x>_", function() + local code, result, err = vis:pipe("vis-open .") if result then - if not os.execute("cd " .. result) then - vis:command("e " .. result) - else - return lfcd(result) - end - return true; + vis:command("e " .. result) end return true; end) -vis:map(m.NORMAL, "<C-x>-", function() - return lfcd(parent(vis.win.file.path) or "") -end) -vis:map(m.NORMAL, "<C-x>_", function() - return lfcd(".") +vis:map(m.NORMAL, "<C-x><C-f>", function() + local code, result, err = vis:pipe("vis-open " .. (parent(vis.win.file.path) or ".")) + if result then + vis:command("e " .. result) + end + return true; end) |
