config.elv 1.0 KB

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