use prompt use nix-shell use direlv edit:add-var ls~ { |@a| e:ls --color=auto --group-directories-first -F --quoting-style literal $@a } if (has-external yadm) { set-env YADM_OVERRIDE_REPO ~/.dotfiles } else { edit:add-var yadm~ { |@a| git --git-dir=~/.dotfiles/ --work-tree=~ $@a } } if (has-external difft) { set-env GIT_EXTERNAL_DIFF difft } if (has-external delta) { set-env GIT_PAGER delta } # some additional bindings use readline-binding set edit:completion:binding[Ctrl-W] = $edit:close-mode~ set edit:completion:binding[Tab] = $edit:completion:accept~ var max-len = 30 # print time if command takes longer than 5 seconds set edit:after-command = [{|m| if (> $m[duration] 5) { var cmd = $m[src][code] var len = (count $cmd) if (> $len $max-len) { set cmd = $cmd[..$max-len]… } printf "%s took %.3fs\n" $cmd $m[duration] } }] # import local.elv if present, for example, from ~/.config/elvish/lib/local.elv try { use local } catch e { if (not-eq $e[reason] "") { fail $e } }