From 95a787ca0163fcecf10ae67d6ab6a18180037868 Mon Sep 17 00:00:00 2001 From: goodhumored Date: Thu, 25 Jul 2024 23:20:21 +0300 Subject: [PATCH] zshrc enhanced - fzf added, comments removed, some settings adjusted --- .zshrc | 172 ++++++++++++++++++++++++--------------------------------- 1 file changed, 72 insertions(+), 100 deletions(-) diff --git a/.zshrc b/.zshrc index 601b203..48f8f48 100644 --- a/.zshrc +++ b/.zshrc @@ -1,75 +1,13 @@ -# If you come from bash you might have to change your $PATH. -# export PATH=$HOME/bin:/usr/local/bin:$PATH - # Path to your oh-my-zsh installation. export ZSH="$HOME/.oh-my-zsh" -# Set name of the theme to load --- if set to "random", it will -# load a random theme each time oh-my-zsh is loaded, in which case, -# to know which specific one was loaded, run: echo $RANDOM_THEME -# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes ZSH_THEME="agnoster" -# Set list of themes to pick from when loading at random -# Setting this variable when ZSH_THEME=random will cause zsh to load -# a theme from this variable instead of looking in $ZSH/themes/ -# If set to an empty array, this variable will have no effect. -# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) +zstyle ':omz:update' mode auto # update automatically without asking -# Uncomment the following line to use case-sensitive completion. -# CASE_SENSITIVE="true" +HIST_STAMPS="dd.mm.yyyy" -# Uncomment the following line to use hyphen-insensitive completion. -# Case-sensitive completion must be off. _ and - will be interchangeable. -# HYPHEN_INSENSITIVE="true" - -# Uncomment one of the following lines to change the auto-update behavior -# zstyle ':omz:update' mode disabled # disable automatic updates -# zstyle ':omz:update' mode auto # update automatically without asking -# zstyle ':omz:update' mode reminder # just remind me to update when it's time - -# Uncomment the following line to change how often to auto-update (in days). -# zstyle ':omz:update' frequency 13 - -# Uncomment the following line if pasting URLs and other text is messed up. -# DISABLE_MAGIC_FUNCTIONS="true" - -# Uncomment the following line to disable colors in ls. -# DISABLE_LS_COLORS="true" - -# Uncomment the following line to disable auto-setting terminal title. -# DISABLE_AUTO_TITLE="true" - -# Uncomment the following line to enable command auto-correction. -# ENABLE_CORRECTION="true" - -# Uncomment the following line to display red dots whilst waiting for completion. -# You can also set it to another string to have that shown instead of the default red dots. -# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" -# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) -# COMPLETION_WAITING_DOTS="true" - -# Uncomment the following line if you want to disable marking untracked files -# under VCS as dirty. This makes repository status check for large repositories -# much, much faster. -# DISABLE_UNTRACKED_FILES_DIRTY="true" - -# Uncomment the following line if you want to change the command execution time -# stamp shown in the history command output. -# You can set one of the optional three formats: -# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" -# or set a custom format using the strftime function format specifications, -# see 'man strftime' for details. -# HIST_STAMPS="mm/dd/yyyy" - -# Would you like to use another custom folder than $ZSH/custom? -# ZSH_CUSTOM=/path/to/new-custom-folder - -# Which plugins would you like to load? -# Standard plugins can be found in $ZSH/plugins/ -# Custom plugins may be added to $ZSH_CUSTOM/plugins/ -# Example format: plugins=(rails git textmate ruby lighthouse) -# Add wisely, as too many plugins slow down shell startup. +# plugins plugins=( git zsh-autosuggestions @@ -87,43 +25,16 @@ plugins=( web-search ) +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=white,bold,underline" + source $ZSH/oh-my-zsh.sh -# User configuration - -# export MANPATH="/usr/local/man:$MANPATH" - -# You may need to manually set your language environment -# export LANG=en_US.UTF-8 - # Preferred editor for local and remote sessions -# if [[ -n $SSH_CONNECTION ]]; then -# export EDITOR='vim' -# else -# export EDITOR='mvim' -# fi - -# Compilation flags -# export ARCHFLAGS="-arch x86_64" - -# Set personal aliases, overriding those provided by oh-my-zsh libs, -# plugins, and themes. Aliases can be placed here, though oh-my-zsh -# users are encouraged to define aliases within the ZSH_CUSTOM folder. -# For a full list of active aliases, run `alias`. -# -# Example aliases -# alias zshconfig="mate ~/.zshrc" -# alias ohmyzsh="mate ~/.oh-my-zsh" - -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm -[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion -export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm -export PATH=/usr/local/texlive/2023/bin/x86_64-linux:$PATH - -export QSYS_ROOTDIR="/home/goodhumored/intelFPGA/22.1std/quartus/sopc_builder/bin" -export TERM="screen-256color" +if [[ -n $SSH_CONNECTION ]]; then + export EDITOR='vim' +else + export EDITOR='vim' +fi # pnpm export PNPM_HOME="/home/goodhumored/.local/share/pnpm" @@ -141,6 +52,67 @@ alias nsd="n start:dev" alias nt="n test" alias ntd="n test:dev" # pnpm end -# + +# eza +if command -v eza > /dev/null; then + alias ls="eza" + alias ll="eza --long --git --icons=always --no-user --no-permissions" + alias tree="eza --tree" +fi +# cat -> bat +if command -v bat > /dev/null; then + alias cat="bat" +fi + +# fzf customization +if command -v fd > /dev/null; then + export FZF_DEFAULT_COMMAND="fd --hidden --strip-cwd-prefix --exclude .git" + export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" + export FZF_ALT_C_COMMAND="$FZF_DEFAULT_COMMAND --type=d" + + _fzf_compgen_path() { + fd --hidden --exclude .git . "$1" + } + + _fzf_compgen_dir() { + fd --type=d --hidden --exclude .git . "$1" + } + + if command -v bat > /dev/null; then + export FZF_CTRL_T_OPTS="--preview 'bat -n --color=always --line-range :500 {}'" + fi + if command -v eza > /dev/null; then + export FZF_ALT_C_OPTS="--preview 'eza --tree --color=always {} | head -200'" + fi + _fzf_comprun() { + local command=$1 + shift + + case "$command" in + cd) fzf --preview 'eza --tree --color=always {} | head -200' "$@" ;; + export|unset) fzf --preview "eval 'echo \$' {}" "$@" ;; + ssh) fzf --preview 'dig {}' "$@" ;; + *) fzf --preview "--preview 'bat -n --color=always --line-range :500 {}'" "$@" ;; + esac + } +fi + +if [ -d ./fzf-git.sh ]; then + source ./fzf-git.sh/fzf-git.sh +fi + +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion +export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +export PATH=/usr/local/texlive/2023/bin/x86_64-linux:$PATH + +export QSYS_ROOTDIR="/home/goodhumored/intelFPGA/22.1std/quartus/sopc_builder/bin" +export TERM="screen-256color" + + export LM_LICENSE_FILE=C:\\flexlm\\lic_modelsim.txt + eval "$(zoxide init --cmd cd zsh)" +eval "$(fzf --zsh)"