Compare commits

..

1 commit

Author SHA1 Message Date
Dmytro Meleshko
02722dc031 [zsh] improve path.zsh loading speed by not calling the entire rustc
The effects of this were very significant on my good ol' winchester.
2021-02-12 21:38:35 +00:00
5 changed files with 33 additions and 55 deletions

View file

@ -2,12 +2,11 @@
let g:gitgutter_map_keys = 0 let g:gitgutter_map_keys = 0
nnoremap <leader>gg :G nnoremap <leader>gg :G
nnoremap <leader>g :Git<space> nnoremap <leader>g :Git<space>
nnoremap <leader>gs :vertical Git<CR> nnoremap <leader>gs :vertical Gstatus<CR>
nnoremap <leader>gd :Gdiffsplit nnoremap <leader>gd :Gdiff
nnoremap <leader>gb :Git blame<CR> nnoremap <leader>gb :Gblame<CR>
nnoremap <leader>gw :GBrowse<CR> nnoremap <leader>gw :Gbrowse<CR>
nnoremap <leader>gW :.GBrowse<CR>
nnoremap <leader>gc :Gcommit % nnoremap <leader>gc :Gcommit %
nnoremap <leader>gl :Gclog<CR> nnoremap <leader>gl :Glog<CR>
nnoremap <leader>gp :Git push nnoremap <leader>gp :Gpush
" }}} " }}}

View file

@ -74,12 +74,7 @@ alias du='du -h'
alias df='df -h' alias df='df -h'
alias free='free -h' alias free='free -h'
if command_exists apt && command_exists apt-get; then alias apt-get="echo -e \"use 'apt' instead of 'apt-get'\nif you really want to use 'apt-get', type '"'\\\\'"apt-get'\" #"
apt_get_message="use 'apt' instead of 'apt-get'
if you really want to use 'apt-get', type '\\apt-get'"
alias apt-get="echo -E ${(qqq)apt_get_message} #"
unset apt_get_message
fi
# editor # editor
alias edit="$EDITOR" alias edit="$EDITOR"
@ -102,9 +97,3 @@ alias bin-list-dylib-symbols='nm -gD'
# Duplicated as an alias to prevent autocorrection of the real "command" part. # Duplicated as an alias to prevent autocorrection of the real "command" part.
# See also scripts/prime-run # See also scripts/prime-run
alias prime-run='__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia ' alias prime-run='__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia '
if ! command_exists update-grub; then
# Doesn't exist on Arch by default. Probably implementing this command was
# left as a challenge to the documentation reader.
alias update-grub="grub-mkconfig -o /boot/grub/grub.cfg"
fi

View file

@ -40,12 +40,9 @@ zstyle ':completion:*:processes' force-list always
_completion_get_hosts() { _completion_get_hosts() {
print localhost print localhost
local line if [[ -f ~/.ssh/config ]]; then
< ~/.ssh/config while IFS= read -r line; do awk "match(\$0, /^Host[[:blank:]]*/) { print substr(\$0, RLENGTH+1); }" ~/.ssh/config
if [[ "$line" =~ '^Host[[:blank:]]+(.*)[[:blank:]]*' ]]; then fi
print -- "${match[1]}"
fi
done
} }
zstyle -e ':completion:*:hosts' hosts 'reply=("${(@f)$(_completion_get_hosts)}")' zstyle -e ':completion:*:hosts' hosts 'reply=("${(@f)$(_completion_get_hosts)}")'

View file

@ -1,11 +1,9 @@
#!/usr/bin/env zsh #!/usr/bin/env zsh
export PATH
export MANPATH
# tie these env variables to zsh arrays # tie these env variables to zsh arrays
export -T PKG_CONFIG_PATH pkg_config_path ':' typeset -T PKG_CONFIG_PATH pkg_config_path ':'
export -T LD_LIBRARY_PATH ld_library_path ':'
export PKG_CONFIG_PATH PATH MANPATH
path_prepend() { path_prepend() {
if (( $# < 1 )); then if (( $# < 1 )); then
@ -77,28 +75,24 @@ if [[ -f ~/.rustup/settings.toml ]]; then
# use of rustup's CLI. Also a shortcut is taken: strings aren't unescaped # use of rustup's CLI. Also a shortcut is taken: strings aren't unescaped
# because Rust toolchain names don't need escaping in strings. # because Rust toolchain names don't need escaping in strings.
# See also <https://github.com/toml-lang/toml/blob/master/toml.abnf>. # See also <https://github.com/toml-lang/toml/blob/master/toml.abnf>.
rust_toolchain="" if rust_toolchain="$(
< ~/.rustup/settings.toml while IFS= read -r line; do awk '
if [[ "$line" =~ '^default_toolchain = "(.+)"$' ]]; then match($0, /^default_toolchain = "(.+)"$/, matches) {
rust_toolchain="${match[1]}" print matches[1];
break exit;
elif [[ "$line" == \[*\] ]]; then }
break /^\[.+\]$/ {
fi exit;
done; unset line }
' ~/.rustup/settings.toml
if [[ -n "$rust_toolchain" ]]; then )" && [[ -n "$rust_toolchain" ]]; then
rust_sysroot=~/.rustup/toolchains/"$rust_toolchain" rust_sysroot=~/.rustup/toolchains/"$rust_toolchain"
path_prepend path "$rust_sysroot"/bin path_prepend path "$rust_sysroot"/bin
path_prepend fpath "$rust_sysroot"/zsh/site-functions path_prepend fpath "$rust_sysroot"/zsh/site-functions
path_prepend manpath "$rust_sysroot"/share/man path_prepend manpath "$rust_sysroot"/share/man
path_prepend ld_library_path "$rust_sysroot"/lib
unset rust_sysroot
fi fi
unset rust_toolchain rust_sysroot
unset rust_toolchain
fi fi
path_prepend path ~/.cargo/bin path_prepend path ~/.cargo/bin
# add my binaries and completions # add my binaries and completions
@ -109,12 +103,3 @@ path_prepend fpath "$ZSH_DOTFILES/completions"
path_prepend path ~/.local/bin path_prepend path ~/.local/bin
unfunction path_prepend unfunction path_prepend
# For some reason manpath is not always set when logging with ssh for instance.
# Let's ensure that it is always set and exported. The additional colon ensures
# that the system manpath isn't overwritten (see manpath(1)).
if [[ -n "$MANPATH" && "$MANPATH" != *: ]]; then
# Append a colon if MANPATH isn't empty and doesn't end with a colon already
MANPATH="$MANPATH:"
fi
export MANPATH="$MANPATH"

View file

@ -46,6 +46,14 @@ _perf_timer_start "total"
fi fi
# }}} # }}}
# For some reason manpath is not always set when logging with ssh for instance.
# Let's ensure that it is always set and exported. The additional colon ensures
# that the system manpath isn't overwritten (see manpath(1)), though in reality
# two colons get added for some reason, which is also valid, but means
# something slightly different (again, see manpath(1)). Hope this won't cause
# any problems in the future.
export MANPATH="$MANPATH:"
for script in functions options path env plugins aliases completion zle prompt colorscheme; do for script in functions options path env plugins aliases completion zle prompt colorscheme; do
_perf_timer_start "$script.zsh" _perf_timer_start "$script.zsh"
source "$ZSH_DOTFILES/$script.zsh" source "$ZSH_DOTFILES/$script.zsh"