config.elv 984 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. use prompt
  2. use nix-shell
  3. # import local.elv if present, for example, from ~/.config/elvish/lib/local.elv
  4. try {
  5. use local
  6. } catch e {
  7. }
  8. edit:add-var ls~ { |@a|
  9. e:ls --color=auto --group-directories-first -F --quoting-style literal $@a
  10. }
  11. if (has-external yadm) {
  12. set-env YADM_OVERRIDE_REPO ~/.dotfiles
  13. } else {
  14. edit:add-var yadm~ { |@a| git --git-dir=~/.dotfiles/ --work-tree=~ $@a }
  15. }
  16. if (has-external difft) {
  17. set-env GIT_EXTERNAL_DIFF difft
  18. }
  19. if (has-external delta) {
  20. set-env GIT_PAGER delta
  21. }
  22. # some additional bindings
  23. use readline-binding
  24. set edit:completion:binding[Ctrl-W] = $edit:close-mode~
  25. set edit:completion:binding[Tab] = $edit:completion:accept~
  26. var max-len = 30
  27. # print time if command takes longer than 5 seconds
  28. set edit:after-command = [{|m|
  29. if (> $m[duration] 5) {
  30. var cmd = $m[src][code]
  31. var len = (count $cmd)
  32. if (> $len $max-len) {
  33. set cmd = $cmd[..$max-len]…
  34. }
  35. printf "%s took %.3fs\n" $cmd $m[duration]
  36. }
  37. }]