Whitespace changes

Delete unnecessary indentation and convert all spaces to tabs.
This commit is contained in:
2020-06-30 04:10:47 +02:00
parent a180a09f6f
commit da474b7899
5 changed files with 538 additions and 535 deletions

View File

@@ -8,177 +8,177 @@
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
export ZSH_CONF="$ZDOTDIR/plugins"
# https://github.com/romkatv/dotfiles-public/blob/7e49fc4fb71d/.zshrc#L35
comp-conf() {
emulate -L zsh
[ ! "$1.zwc" -nt "$1" ] && [ -w "${1:h}" ] || return 0
zmodload -F zsh/files b:zf_mv b:zf_rm
local tmp="$1.tmp.$$.zwc"
{
zcompile -R -- "$tmp" "$1" && zf_mv -f -- "$tmp" "$1.zwc" || return 1
} always {
(( ! $? )) || zf_rm -f -- "$tmp"
}
emulate -L zsh
[ ! "$1.zwc" -nt "$1" ] && [ -w "${1:h}" ] || return 0
zmodload -F zsh/files b:zf_mv b:zf_rm
local tmp="$1.tmp.$$.zwc"
{
zcompile -R -- "$tmp" "$1" && zf_mv -f -- "$tmp" "$1.zwc" || return 1
} always {
(( ! $? )) || zf_rm -f -- "$tmp"
}
}
# https://github.com/romkatv/dotfiles-public/blob/7e49fc4fb71d/.zshrc#L47
comp-source() {
emulate -L zsh
[ -e "$1" ] && comp-conf "$1" && source -- "$1"
emulate -L zsh
[ -e "$1" ] && comp-conf "$1" && source -- "$1"
}
## set zshoptions
setopt AUTO_CONTINUE # Stopped jobs with 'disown' are automatically sent a CONT signal to make them running.
setopt AUTO_LIST # Automatically list choices on an ambiguous completion.
setopt AUTO_PARAM_SLASH # Add a trailing slash when completing directories
setopt AUTO_PUSHD # Make cd push the old directory onto the directory stack.
setopt NO_AUTO_REMOVE_SLASH # Keeps trailing slash for directories when auto completing.
# (Beware: commands will act on the target directory not the symlink with the slash)
setopt NO_BEEP # Do not beep on error in ZLE.
setopt C_BASES # Output hexadecimal numbers in the standard C format ('16#FF' -> '0xFF').
setopt CHASE_LINKS # Resolve symbolic links to their true values when changing directory.
setopt NO_CLOBBER # '>!' or '>|' must be used to truncate a file, and '>>!' or '>>|' to create a file.
setopt COMPLETE_IN_WORD # Complete from the cursor rather than from the end of the word
setopt CORRECT # Try to correct the spelling of a command
setopt CORRECT_ALL # Try to correct the spelling of all arguments
export CORRECT_IGNORE_FILE=".*" # Do not offer hidden files as correction
setopt EXTENDED_HISTORY # Save in format : <beginning time>:<elapsed seconds>;<command>
setopt EXTENDED_GLOB # Treat the `#', `~' and `^' characters as part of patterns for filename generation, etc.
setopt NO_FLOW_CONTROL # Disables output flow control in the shell's editor via start/stop characters (usually ^S/^Q).
setopt GLOB_DOTS # Do not require a leading `.' in a filename to be matched explicitly.
setopt HIST_IGNORE_DUPS # Do not enter command lines into the history list if they are duplicates of the previous event.
setopt HIST_IGNORE_SPACE # History should ignore commands beginning with a space
setopt HIST_VERIFY # perform history expansion and reload line in editing buffer instead of executing it directly
setopt NO_INC_APPEND_HISTORY # Do not write lines as soon as they are entered (breaks exec time otherwise)
setopt INC_APPEND_HISTORY_TIME # Write lines after they are finished
setopt INTERACTIVE_COMMENTS # Allow comments even in interactive shells.
setopt LIST_AMBIGUOUS # Insert unabmbiguous prefix without completion list (auto_list set)
setopt LIST_PACKED # Make completion list smaller by printing matches in columns with different widths.
setopt NO_MENU_COMPLETE # Do not autoselect the first entry when completing
setopt PUSHD_IGNORE_DUPS # Don't push multiple copies of the same directory onto the directory stack.
setopt NO_SHARE_HISTORY # Do not write + read history after every command (messes up exec time otherwise)
setopt SH_WORD_SPLIT # Causes field splitting to be performed on unquoted parameter expansions
setopt AUTO_CONTINUE # Stopped jobs with 'disown' are automatically sent a CONT signal to make them running.
setopt AUTO_LIST # Automatically list choices on an ambiguous completion.
setopt AUTO_PARAM_SLASH # Add a trailing slash when completing directories
setopt AUTO_PUSHD # Make cd push the old directory onto the directory stack.
setopt NO_AUTO_REMOVE_SLASH # Keeps trailing slash for directories when auto completing.
# (Beware: commands will act on the target directory not the symlink with the slash)
setopt NO_BEEP # Do not beep on error in ZLE.
setopt C_BASES # Output hexadecimal numbers in the standard C format ('16#FF' -> '0xFF').
setopt CHASE_LINKS # Resolve symbolic links to their true values when changing directory.
setopt NO_CLOBBER # '>!' or '>|' must be used to truncate a file, and '>>!' or '>>|' to create a file.
setopt COMPLETE_IN_WORD # Complete from the cursor rather than from the end of the word
setopt CORRECT # Try to correct the spelling of a command
setopt CORRECT_ALL # Try to correct the spelling of all arguments
export CORRECT_IGNORE_FILE=".*" # Do not offer hidden files as correction
setopt EXTENDED_HISTORY # Save in format : <beginning time>:<elapsed seconds>;<command>
setopt EXTENDED_GLOB # Treat the `#', `~' and `^' characters as part of patterns for filename generation, etc.
setopt NO_FLOW_CONTROL # Disables output flow control in the shell's editor via start/stop characters (usually ^S/^Q).
setopt GLOB_DOTS # Do not require a leading `.' in a filename to be matched explicitly.
setopt HIST_IGNORE_DUPS # Do not enter command lines into the history list if they are duplicates of the previous event.
setopt HIST_IGNORE_SPACE # History should ignore commands beginning with a space
setopt HIST_VERIFY # perform history expansion and reload line in editing buffer instead of executing it directly
setopt NO_INC_APPEND_HISTORY # Do not write lines as soon as they are entered (breaks exec time otherwise)
setopt INC_APPEND_HISTORY_TIME # Write lines after they are finished
setopt INTERACTIVE_COMMENTS # Allow comments even in interactive shells.
setopt LIST_AMBIGUOUS # Insert unabmbiguous prefix without completion list (auto_list set)
setopt LIST_PACKED # Make completion list smaller by printing matches in columns with different widths.
setopt NO_MENU_COMPLETE # Do not autoselect the first entry when completing
setopt PUSHD_IGNORE_DUPS # Don't push multiple copies of the same directory onto the directory stack.
setopt NO_SHARE_HISTORY # Do not write + read history after every command (messes up exec time otherwise)
setopt SH_WORD_SPLIT # Causes field splitting to be performed on unquoted parameter expansions
autoload -U select-word-style && select-word-style bash
autoload -U select-word-style && select-word-style bash
## Setup the prompt
# use bright version of colors when printing bold
if [ -e "${XDG_CONFIG_HOME:-$HOME/.config}/dircolors/dircolors" ]; then
eval "$(dircolors -b "${XDG_CONFIG_HOME:-$HOME/.config}/dircolors/dircolors")"
else
eval "$(dircolors -b)"
fi
# use bright version of colors when printing bold
if [ -e "${XDG_CONFIG_HOME:-$HOME/.config}/dircolors/dircolors" ]; then
eval "$(dircolors -b "${XDG_CONFIG_HOME:-$HOME/.config}/dircolors/dircolors")"
else
eval "$(dircolors -b)"
fi
if [ -e "$ZSH_CONF/powerlevel10k/powerlevel10k.zsh-theme" ]; then
comp-source "$ZSH_CONF/powerlevel10k/powerlevel10k.zsh-theme"
# To customize prompt, run `p10k configure` or edit $ZSH_CONF/p10k.zsh-theme.
comp-source "$ZSH_CONF/p10k.zsh-theme"
fi
if [ -e "$ZSH_CONF/powerlevel10k/powerlevel10k.zsh-theme" ]; then
comp-source "$ZSH_CONF/powerlevel10k/powerlevel10k.zsh-theme"
# To customize prompt, run `p10k configure` or edit $ZSH_CONF/p10k.zsh-theme.
comp-source "$ZSH_CONF/p10k.zsh-theme"
fi
## Setup zsh completion system
[ ! -d "$ZSH_CONF/completion" ] || fpath=("$ZSH_CONF/completion" $fpath)
[ ! -d "$ZSH_CONF/completion" ] || fpath=("$ZSH_CONF/completion" $fpath)
autoload -Uz compinit
compinit -d "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/zcompdump-$ZSH_VERSION"
autoload -Uz compinit
compinit -d "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/zcompdump-$ZSH_VERSION"
zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true
zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
zstyle ':completion:*' menu select
zstyle ':completion:*' menu select
zstyle -e ':completion:*:users' users 'local user; getent passwd | while IFS=: read -rA user; do (( user[3] >= 1000 || user[3] == 0 )) && reply+=($user[1]); done'
_comp_options+=(globdots) # Include hidden files
# Don't complete the same twice for diff/meld (http://leahneukirchen.org/dotfiles/.zshrc)
zstyle ':completion:*:(diff|meld):*' ignore-line yes
zstyle -e ':completion:*:users' users 'local user; getent passwd | while IFS=: read -rA user; do (( user[3] >= 1000 || user[3] == 0 )) && reply+=($user[1]); done'
_comp_options+=(globdots) # Include hidden files
# Don't complete the same twice for diff/meld (http://leahneukirchen.org/dotfiles/.zshrc)
zstyle ':completion:*:(diff|meld):*' ignore-line yes
## Load external config files and modules
autoload edit-command-line; zle -N edit-command-line
autoload zmv
! alias run-help >/dev/null 2>&1 || unalias run-help
autoload run-help
# stderred
if [ -e "$ZSH_CONF/stderred/build/libstderred.so" ]; then
export LD_PRELOAD="$ZSH_CONF/stderred/build/libstderred.so${LD_PRELOAD:+:$LD_PRELOAD}"
export STDERRED_ESC_CODE="$(tput bold && tput setaf 1)"
export STDERRED_BLACKLIST="^(git|curl|wget|swipl)$"
fi
comp-source "$ZSH_CONF/functionsPre.zsh"
comp-source "$ZSH_CONF/alias.zsh"
comp-source "$ZSH_CONF/functionsPost.zsh"
comp-source "$ZSH_CONF/transfer.zsh"
comp-source "$ZSH_CONF/zsh-autosuggestions/zsh-autosuggestions.zsh"
comp-source "$ZSH_CONF/completion.zsh"
# comp-source "$ZSH_CONF/zsh-async/async.zsh"
# async_init
### syntax-highlight > history-substring > keys
# syntax highlighting
if [ -e "$ZSH_CONF/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" ]; then
comp-source "$ZSH_CONF/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
comp-source "$ZSH_CONF/zsh-syntax-highlighting.zsh-theme"
fi
# history substr search
if [ -e "$ZSH_CONF/zsh-history-substring-search/zsh-history-substring-search.zsh" ]; then
comp-source "$ZSH_CONF/zsh-history-substring-search/zsh-history-substring-search.zsh"
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=true
HISTORY_SUBSTRING_SEARCH_FUZZY=true
fi
comp-source "$ZSH_CONF/keys.zsh"
autoload edit-command-line; zle -N edit-command-line
autoload zmv
! alias run-help >/dev/null 2>&1 || unalias run-help
autoload run-help
# stderred
if [ -e "$ZSH_CONF/stderred/build/libstderred.so" ]; then
export LD_PRELOAD="$ZSH_CONF/stderred/build/libstderred.so${LD_PRELOAD:+:$LD_PRELOAD}"
export STDERRED_ESC_CODE="$(tput bold && tput setaf 1)"
export STDERRED_BLACKLIST="^(git|curl|wget|swipl)$"
fi
comp-source "$ZSH_CONF/functionsPre.zsh"
comp-source "$ZSH_CONF/alias.zsh"
comp-source "$ZSH_CONF/functionsPost.zsh"
comp-source "$ZSH_CONF/transfer.zsh"
comp-source "$ZSH_CONF/zsh-autosuggestions/zsh-autosuggestions.zsh"
comp-source "$ZSH_CONF/completion.zsh"
# comp-source "$ZSH_CONF/zsh-async/async.zsh"
# async_init
### syntax-highlight > history-substring > keys
# syntax highlighting
if [ -e "$ZSH_CONF/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" ]; then
comp-source "$ZSH_CONF/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
comp-source "$ZSH_CONF/zsh-syntax-highlighting.zsh-theme"
fi
# history substr search
if [ -e "$ZSH_CONF/zsh-history-substring-search/zsh-history-substring-search.zsh" ]; then
comp-source "$ZSH_CONF/zsh-history-substring-search/zsh-history-substring-search.zsh"
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=true
HISTORY_SUBSTRING_SEARCH_FUZZY=true
fi
comp-source "$ZSH_CONF/keys.zsh"
## Env variables that have nothing to do with zsh
export EDITOR=nvim
export EDITOR=nvim
# `sudo nano` won't work without this (?)
if [ "$TERM" = "xterm-kitty" ]; then
export TERM=xterm-256color
fi
# `sudo nano` won't work without this (?)
if [ "$TERM" = "xterm-kitty" ]; then
export TERM=xterm-256color
fi
## https://www.tecmint.com/view-colored-man-pages-in-linux/
## First seen in Fox Kiesters dotfiles
export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;31m'
## https://www.tecmint.com/view-colored-man-pages-in-linux/
## First seen in Fox Kiesters dotfiles
export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;31m'
## Less clutter in $HOME by enforcing the XDG base directory standard
export ATOM_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/atom"
export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go"
export LESSHISTFILE=-
export SQLITE_HISTORY="${XDG_DATA_HOME:-$HOME/.local/share}/sqlite3/sqlite_history"
## Less clutter in $HOME by enforcing the XDG base directory standard
export ATOM_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/atom"
export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go"
export LESSHISTFILE=-
export SQLITE_HISTORY="${XDG_DATA_HOME:-$HOME/.local/share}/sqlite3/sqlite_history"
export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android"
export VIMINIT='let $MYVIMRC="/home/user/.config/vim/xdg.vim" | source $MYVIMRC'
export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android"
export VIMINIT='let $MYVIMRC="/home/user/.config/vim/xdg.vim" | source $MYVIMRC'
## Setup asynchronous jobs
# async_start_worker msg_completion
# async_job msg_completion tg-completion
# async_start_worker msg_completion
# async_job msg_completion tg-completion
## Setup zle
zle_highlight=('paste:none')
zle_highlight=('paste:none')
## History
HISTSIZE=1000000
SAVEHIST=1000000
HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/zsh/.zsh_history"
HISTSIZE=1000000
SAVEHIST=1000000
HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/zsh/.zsh_history"

View File

@@ -2,106 +2,106 @@
## Created: 2019-01-16
## Add fslint-directory to PATH
PATH=$PATH:/usr/share/fslint/fslint
PATH=$PATH:/usr/share/fslint/fslint
## Add flags or shorten commands that I cannot remember
alias getclip="xclip -selection c -o"
alias setclip="perl -pe 'chomp if eof' | xclip -selection c"
alias pdfviewer='evince'
alias pdf='launch evince'
alias darkpdf='launch zathura'
alias geeqie='launch qeeqie'
alias grep='grep --color'
alias igrep='grep -i'
alias emacs-game='emacs -batch -l dunnet'
alias trash-restore='restore-trash'
alias cp='cp -i'
alias mv='mv -i' # --backup=t ??
alias rm='rm -I'
alias less='less -N'
alias lsblk='lsblk -f'
alias rd='rmdir'
alias md='mkdir -p'
alias o='xdg-open'
alias p='pwd'
alias :q='exit'
alias :Q=:q
alias update='sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y; [ ! -e /var/run/reboot-required ] || printf "\n\nSystem restart required.\n"'
alias pdf2text='pdftotext'
alias pdf2txt='pdftotext'
alias rm='printf "\033[1;031mUse trash!\n\033[0m"; false'
alias bat='upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -E "to full|percentage" | tr -d " " | sed "s/:/: /"'
alias battery='bat'
alias qrdecode='zbarimg'
alias pdfmerge='pdfunite'
alias loadhist='fc -RI'
alias wget='wget --config=${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc --hsts-file="${XDG_DATA_HOME:-$HOME/.local/share}/wget/wget-hsts"'
alias -g G='| grep '
alias -g no2='2>/dev/null'
alias hex=xxd
alias bin='xxd -b -c4 | cut -d" " -f2-5'
alias vim=nvim
alias vi=nvim
alias tmux='tmux -f "$HOME/.config/tmux/tmux.conf"'
alias resetCursor='echo -ne "\e[5 q"'
alias makeThisScratchpad='echo -ne "\033]0;scratchpad-terminal\007"'
alias tmsu='tmsu -D "${XDG_DATA_HOME:-$HOME/.local/share}/tmsu/db"'
alias grepdate='grep -E "(={8})|([0-9]{4}([: -_][0-9]{2}){5})|([0-9]{8}[ -_][0-9]{6})"'
alias feh='feh -.'
# 'Temporary' shell in alternate mode that does not mess with the scrollback history
alias tmpshell='tput smcup && zsh && tput rmcup'
alias getclip="xclip -selection c -o"
alias setclip="perl -pe 'chomp if eof' | xclip -selection c"
alias pdfviewer='evince'
alias pdf='launch evince'
alias darkpdf='launch zathura'
alias geeqie='launch qeeqie'
alias grep='grep --color'
alias igrep='grep -i'
alias emacs-game='emacs -batch -l dunnet'
alias trash-restore='restore-trash'
alias cp='cp -i'
alias mv='mv -i' # --backup=t ??
alias rm='rm -I'
alias less='less -N'
alias lsblk='lsblk -f'
alias rd='rmdir'
alias md='mkdir -p'
alias o='xdg-open'
alias p='pwd'
alias :q='exit'
alias :Q=:q
alias update='sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y; [ ! -e /var/run/reboot-required ] || printf "\n\nSystem restart required.\n"'
alias pdf2text='pdftotext'
alias pdf2txt='pdftotext'
alias rm='printf "\033[1;031mUse trash!\n\033[0m"; false'
alias bat='upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -E "to full|percentage" | tr -d " " | sed "s/:/: /"'
alias battery='bat'
alias qrdecode='zbarimg'
alias pdfmerge='pdfunite'
alias loadhist='fc -RI'
alias wget='wget --config=${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc --hsts-file="${XDG_DATA_HOME:-$HOME/.local/share}/wget/wget-hsts"'
alias -g G='| grep '
alias -g no2='2>/dev/null'
alias hex=xxd
alias bin='xxd -b -c4 | cut -d" " -f2-5'
alias vim=nvim
alias vi=nvim
alias tmux='tmux -f "$HOME/.config/tmux/tmux.conf"'
alias resetCursor='echo -ne "\e[5 q"'
alias makeThisScratchpad='echo -ne "\033]0;scratchpad-terminal\007"'
alias tmsu='tmsu -D "${XDG_DATA_HOME:-$HOME/.local/share}/tmsu/db"'
alias grepdate='grep -E "(={8})|([0-9]{4}([: -_][0-9]{2}){5})|([0-9]{8}[ -_][0-9]{6})"'
alias feh='feh -.'
# 'Temporary' shell in alternate mode that does not mess with the scrollback history
alias tmpshell='tput smcup && zsh && tput rmcup'
## functions
alias trash=_trash_list_default
alias nemo=_nemo_wd_default
alias trash=_trash_list_default
alias nemo=_nemo_wd_default
## git
alias gs='git status --short' # overrides ghostscript
alias gits='gs'
alias gstat='gs'
alias gitstat='gs'
alias ga='git add'
alias gaa='git add -A'
alias gc='git commit -m'
alias gpsh='git push'
alias gpush='git push'
alias gpll='git pull'
alias gpull='git pull'
alias gdiff='git diff'
alias gd='git diff'
alias gs='git status --short' # overrides ghostscript
alias gits='gs'
alias gstat='gs'
alias gitstat='gs'
alias ga='git add'
alias gaa='git add -A'
alias gc='git commit -m'
alias gpsh='git push'
alias gpush='git push'
alias gpll='git pull'
alias gpull='git pull'
alias gdiff='git diff'
alias gd='git diff'
## Navigation
alias ls='_ls_show_hidden --color=auto --group-directories-first -p -v'
alias sl='ls'
alias la='ls -A'
alias l='ls -lh --time-style=long-iso'
alias ll='l -A'
alias cd..='cd ..'
alias cd~='cd ~'
alias ls='_ls_show_hidden --color=auto --group-directories-first -p -v'
alias sl='ls'
alias la='ls -A'
alias l='ls -lh --time-style=long-iso'
alias ll='l -A'
alias cd..='cd ..'
alias cd~='cd ~'
## Hashes for often visited folders
hash -d Desktop=$HOME/Desktop/
hash -d Documents=$HOME/Documents/
hash -d Pictures=$HOME/Pictures/
hash -d Downloads=$HOME/Downloads/
hash -d Projects=$HOME/Projects/
hash -d dot=~Projects/dotfiles/
hash -d dots=~dot
## Hashes for often visited folders
hash -d Desktop=$HOME/Desktop/
hash -d Documents=$HOME/Documents/
hash -d Pictures=$HOME/Pictures/
hash -d Downloads=$HOME/Downloads/
hash -d Projects=$HOME/Projects/
hash -d dot=~Projects/dotfiles/
hash -d dots=~dot
local UNI="$HOME/Documents/uni"
hash -d cheat=$HOME/Documents/Cheat\ Sheet/
hash -d uni=$UNI/
# hash for current/last wise
local YEAR=$(date +"%y")
if [ -d "$UNI/$YEAR-WiSe" ]; then
hash -d wise="$UNI/$YEAR-WiSe/"
elif [ -d "$UNI/$(($YEAR - 1))-WiSe" ]; then
hash -d wise="$UNI/$(($YEAR - 1))-WiSe/"
fi
# hash for current/last sose
if [ -d "$UNI/$YEAR-SoSe" ]; then
hash -d sose="$UNI/$YEAR-SoSe"/
elif [ -d "$UNI/$(($YEAR - 1))-SoSe" ]; then
hash -d sose="$UNI/$(($YEAR - 1))-SoSe/"
fi
local UNI="$HOME/Documents/uni"
hash -d cheat=$HOME/Documents/Cheat\ Sheet/
hash -d uni=$UNI/
# hash for current/last wise
local YEAR=$(date +"%y")
if [ -d "$UNI/$YEAR-WiSe" ]; then
hash -d wise="$UNI/$YEAR-WiSe/"
elif [ -d "$UNI/$(($YEAR - 1))-WiSe" ]; then
hash -d wise="$UNI/$(($YEAR - 1))-WiSe/"
fi
# hash for current/last sose
if [ -d "$UNI/$YEAR-SoSe" ]; then
hash -d sose="$UNI/$YEAR-SoSe"/
elif [ -d "$UNI/$(($YEAR - 1))-SoSe" ]; then
hash -d sose="$UNI/$(($YEAR - 1))-SoSe/"
fi

View File

@@ -3,149 +3,151 @@
## change into dir and print accordingly
function cl() {
cd "$@" && ls
cd "$@" && ls
}
## Copy file and append .bkp extension
function bkp() {
for file in "$@"; do
cp -i "$file" "$file.bkp"
done
for file in "$@"; do
cp -i "$file" "$file.bkp"
done
}
## Launches program and detaches it from the shell
function launch() {
# eval "$@" ## does not work with special characters?
launch_command="$1"
shift
$launch_command "$@" &>/dev/null & disown
# eval "$@" ## does not work with special characters?
launch_command="$1"
shift
$launch_command "$@" &>/dev/null & disown
}
## Compares two pdfs based on the result of pdftotext
function pdfdiff() {
if [[ $# -eq 2 && -r "$1" && -r "$2" ]]; then
diff <(pdftotext "$1" -) <(pdftotext "$2" -)
else
echo "something went wrong" 2>&1
return 1
fi
}
if [[ $# -eq 2 && -r "$1" && -r "$2" ]]; then
diff <(pdftotext "$1" -) <(pdftotext "$2" -)
else
echo "something went wrong" 2>&1
return 1
fi
}
## Gets Passwd from bitwarden and copies it into the clipboard
function bwpwd() {
if bw "get" "password" "$@" >/dev/null; then
bw "get" "password" "$@" | tr -d '\n' | setclip
else
bw "get" "password" "$@"
fi
if bw "get" "password" "$@" >/dev/null; then
bw "get" "password" "$@" | tr -d '\n' | setclip
else
bw "get" "password" "$@"
fi
}
## creates directory and changes into it
function mkcd () {
mkdir "$@" # create directory
while [ $# -gt 1 ]; do # shift arguments if mkdir options were used
shift
done
if [ -d "$1" ]; then
cd "$1"
pwd
fi
# Create directory
mkdir "$@"
# shift arguments if mkdir options were used
while [ $# -gt 1 ]; do
shift
done
if [ -d "$1" ]; then
cd "$1"
pwd
fi
}
## Send a message over telegram by using the -e flag
function msg() {
if [ $# -ge 2 ]; then
telegram-cli -W -e "msg $*" | grep -E "${${*/ /.*}//_/ }"
# | grep -E "$(echo "$*" | sed 's/ /.*/; s/_/ /g')"
else
printf "\033[1;31mPlease specify a contact and a message.\n\033[0m" >&2
fi
if [ $# -ge 2 ]; then
telegram-cli -W -e "msg $*" | grep -E "${${*/ /.*}//_/ }"
# | grep -E "$(echo "$*" | sed 's/ /.*/; s/_/ /g')"
else
printf "\033[1;31mPlease specify a contact and a message.\n\033[0m" >&2
fi
}
## Execute tg -e command but cuts of the uninteresting parts
function tg() {
tg="telegram-cli"
if [ "$1" = "-e" ]; then
shift
$tg -N -W -e "$@" | tail -n +9 | head -n -2
else
$tg -N -W "$@"
fi
tg="telegram-cli"
if [ "$1" = "-e" ]; then
shift
$tg -N -W -e "$@" | tail -n +9 | head -n -2
else
$tg -N -W "$@"
fi
}
## Encode and decode qr-codes
function qr() {
if [[ $# -eq 1 && -r "$1" ]]; then
zbarimg "$1"
else
qrencode "$@"
fi
if [[ $# -eq 1 && -r "$1" ]]; then
zbarimg "$1"
else
qrencode "$@"
fi
}
## Edit config file
function conf() {
# default to vim if no editor is set
local CONF_EDITOR=${EDITOR:-vim}
local CONF_EDITOR=${EDITOR:-vim}
# parse otions
while getopts "e:" opt 2>/dev/null; do
case $opt in
e) CONF_EDITOR="$OPTARG";;
*) printf "\033[1;31mUsage: $0 [-e <editor>] <program>[/subdirs] [<config_file>]\n\033[0m" >&2
return 1 ;;
esac
done
shift $(($OPTIND - 1 ))
while getopts "e:" opt 2>/dev/null; do
case $opt in
e) CONF_EDITOR="$OPTARG";;
*) printf "\033[1;31mUsage: $0 [-e <editor>] <program>[/subdirs] [<config_file>]\n\033[0m" >&2
return 1 ;;
esac
done
shift $(($OPTIND - 1 ))
# CONF_EDITOR=( $(resolve -s $CONF_EDITOR) )
# CONF_EDITOR=( $(resolve -s $CONF_EDITOR) )
# conf needs an argument
if [ $# -eq 0 ]; then
printf "\033[1;31mPlease specify a config.\n\033[0m" >&2
return 1
fi
if [ $# -eq 0 ]; then
printf "\033[1;31mPlease specify a config.\n\033[0m" >&2
return 1
fi
# search for program name in XDG_CONFIG_HOME and $HOME
local CONF_DIR="$(_get_config_dir "$1")"
if [ $? -ne 0 ]; then
printf "\033[1;31mFalling back to $HOME.\n\033[0m" >&2
CONF_DIR="$HOME"
fi
local CONF_DIR="$(_get_config_dir "$1")"
if [ $? -ne 0 ]; then
printf "\033[1;31mFalling back to $HOME.\n\033[0m" >&2
CONF_DIR="$HOME"
fi
# open file with specified name if
if [ $# -gt 1 ]; then
if [ -r "$CONF_DIR/$2" ]; then
$CONF_EDITOR "$CONF_DIR/$2"
return 0
else
printf "\033[1;31mCould not find config file with that name.\n\033[0m" >&2
return 1
fi
fi
if [ $# -gt 1 ]; then
if [ -r "$CONF_DIR/$2" ]; then
$CONF_EDITOR "$CONF_DIR/$2"
return 0
else
printf "\033[1;31mCould not find config file with that name.\n\033[0m" >&2
return 1
fi
fi
# possible config-file names + same in hidden
local -a CONF_PATTERNS
CONF_PATTERNS=(
"$1.conf"
"$1.config"
"${1}rc"
"config"
"conf"
"$1.yml"
"$1.yaml"
"config.ini"
"$1"
)
local -a CONF_PATTERNS
CONF_PATTERNS=(
"$1.conf"
"$1.config"
"${1}rc"
"config"
"conf"
"$1.yml"
"$1.yaml"
"config.ini"
"$1"
)
# check if config file exists
for config in $CONF_PATTERNS; do
if [ -r "$CONF_DIR/$config" ]; then
$CONF_EDITOR "$CONF_DIR/$config"
return 0
elif [ -r "$CONF_DIR/.$config" ]; then
$CONF_EDITOR "$CONF_DIR/.$config"
return 0
fi
done
for config in $CONF_PATTERNS; do
if [ -r "$CONF_DIR/$config" ]; then
$CONF_EDITOR "$CONF_DIR/$config"
return 0
elif [ -r "$CONF_DIR/.$config" ]; then
$CONF_EDITOR "$CONF_DIR/.$config"
return 0
fi
done
# if no config was found in a location other than HOME, look again in HOME.
# (For cases like default vim with ~/.vim/ and ~/.vimrc)
@@ -159,163 +161,163 @@ function conf() {
done
fi
printf "\033[1;31mCould not find config file.\n\033[0m" >&2
return 1
printf "\033[1;31mCould not find config file.\n\033[0m" >&2
return 1
}
## Change into config dir
function c() {
CONF_DIR="$(_get_config_dir $*)"
if [ $? -eq 0 ]; then
cd "$CONF_DIR"
else
printf "$CONF_DIR" >&2
return 1
fi
CONF_DIR="$(_get_config_dir $*)"
if [ $? -eq 0 ]; then
cd "$CONF_DIR"
else
printf "$CONF_DIR" >&2
return 1
fi
}
## Get config directory
function _get_config_dir() {
if [ $# -gt 1 ]; then
printf "\033[1;31mPlease specify one config.\n\033[0m" >&2
return 1
elif [ $# -eq 0 ]; then
echo "${XDG_CONFIG_HOME:-$HOME/.config}"
elif [ -d "${XDG_CONFIG_HOME:-$HOME/.config}/$1" ]; then
echo "${XDG_CONFIG_HOME:-$HOME/.config}/$1"
elif [ -d "$HOME/.$1" ]; then
echo "$HOME/.$1"
else
printf "\033[1;31mCould not find config home.\n\033[0m" >&2
return 1
fi
if [ $# -gt 1 ]; then
printf "\033[1;31mPlease specify one config.\n\033[0m" >&2
return 1
elif [ $# -eq 0 ]; then
echo "${XDG_CONFIG_HOME:-$HOME/.config}"
elif [ -d "${XDG_CONFIG_HOME:-$HOME/.config}/$1" ]; then
echo "${XDG_CONFIG_HOME:-$HOME/.config}/$1"
elif [ -d "$HOME/.$1" ]; then
echo "$HOME/.$1"
else
printf "\033[1;31mCould not find config home.\n\033[0m" >&2
return 1
fi
}
## Function that resolves a command to the end
function resolve() {
# TODO: comment!!
# In script mode only the result and its arguments are printed
# The result can then be used directly by other scripts without further
# manipulation
typeset SCRIPT_MODE VERBOSE_MODE 1>&2
while getopts "sv" opt 2>/dev/null; do
case $opt in
s) SCRIPT_MODE=1;;
v) VERBOSE_MODE=1;;
*) echo "Unknown flag!" >&2
return 1;;
esac
done
shift $(( $OPTIND - 1 ))
# In script mode only the result and its arguments are printed
# The result can then be used directly by other scripts without further
# manipulation
typeset SCRIPT_MODE VERBOSE_MODE 1>&2
while getopts "sv" opt 2>/dev/null; do
case $opt in
s) SCRIPT_MODE=1;;
v) VERBOSE_MODE=1;;
*) echo "Unknown flag!" >&2
return 1;;
esac
done
shift $(( $OPTIND - 1 ))
if (( $SCRIPT_MODE )) && (( $VERBOSE_MODE )); then
echo "Script and verbose mode do no work together." >&2
return 1
fi
if (( $SCRIPT_MODE )) && (( $VERBOSE_MODE )); then
echo "Script and verbose mode do no work together." >&2
return 1
fi
typeset THIS THIS_COMMAND THIS_ARGUMENTS 1>&2
# When receiving a command with arguments, do not differ between
# one and multiple arguments.
THIS="$*"
THIS_COMMAND="${THIS%% *}"
# ${THIS%%* } would result in THIS_COMMAND when no arguements are specified.
# We want an empty string in this case.
THIS_ARGUMENTS="${THIS#${THIS_COMMAND}}"
typeset THIS THIS_COMMAND THIS_ARGUMENTS 1>&2
# When receiving a command with arguments, do not differ between
# one and multiple arguments.
THIS="$*"
THIS_COMMAND="${THIS%% *}"
# ${THIS%%* } would result in THIS_COMMAND when no arguements are specified.
# We want an empty string in this case.
THIS_ARGUMENTS="${THIS#${THIS_COMMAND}}"
# Resolve all aliases
while [[ "$(which $THIS_COMMAND | head -n1)" =~ "^${THIS_COMMAND}: aliased to " ]]; do
if (( $VERBOSE_MODE )); then
echo $THIS_COMMAND$THIS_ARGUMENTS
fi
THIS="$(which "$THIS_COMMAND" | cut -d' ' -f4-)"
THIS_COMMAND="${THIS%% *}"
THIS_ARGUMENTS="${THIS#${THIS_COMMAND}}$THIS_ARGUMENTS"
# Resolve all aliases
while [[ "$(which $THIS_COMMAND | head -n1)" =~ "^${THIS_COMMAND}: aliased to " ]]; do
if (( $VERBOSE_MODE )); then
echo $THIS_COMMAND$THIS_ARGUMENTS
fi
THIS="$(which "$THIS_COMMAND" | cut -d' ' -f4-)"
THIS_COMMAND="${THIS%% *}"
THIS_ARGUMENTS="${THIS#${THIS_COMMAND}}$THIS_ARGUMENTS"
done
done
command_type="$(type $THIS_COMMAND)"
if [[ "$command_type" =~ "^$THIS_COMMAND is a shell function from " ]]; then
if (( $SCRIPT_MODE )); then
echo -n "$THIS_COMMAND$THIS_ARGUMENTS"
return 0
elif (( $VERBOSE_MODE )); then
echo "$THIS_COMMAND$THIS_ARGUMENTS"
else
echo "$* is resolved to:\n$THIS_COMMAND$THIS_ARGUMENTS"
fi
echo -n "${command_type}:"
from_file="$(echo $command_type | cut -d' ' -f7-)"
# from_file=${command_type##* }
grep -En -m1 "(function[ \t]+${THIS_COMMAND}[ \t]*(\(\)|)[ \t]*{|${THIS_COMMAND}[ \t]*\(\)[ \t]*{)" "$from_file" \
| cut -d: -f1
else
if (( $VERBOSE_MODE )); then
echo "$THIS_COMMAND$THIS_ARGUMENTS"
fi
THIS_COMMAND="$(which $THIS_COMMAND)"
if [ $? -ne 0 ]; then
echo "${THIS_COMMAND%% *} not found." >&2
return 1
fi
if (( $VERBOSE_MODE )); then
echo -n "$THIS_COMMAND"
NEXT_STEP="$(file -bh $THIS_COMMAND | cut -d' ' -f4-)"
if [ "${NEXT_STEP:0:1}" != '/' ]; then
NEXT_STEP="${THIS_COMMAND%/*}/$NEXT_STEP"
fi
while [[ "$(file -bh $THIS_COMMAND)" =~ "^symbolic link to" && "$NEXT_STEP" != "$THIS_COMMAND" ]]; do
THIS_COMMAND=$NEXT_STEP
NEXT_STEP="$(file -bh $THIS_COMMAND | cut -d' ' -f4-)"
if [ "${NEXT_STEP:0:1}" != '/' ]; then
NEXT_STEP="${THIS_COMMAND%/*}/$NEXT_STEP"
fi
command_type="$(type $THIS_COMMAND)"
if [[ "$command_type" =~ "^$THIS_COMMAND is a shell function from " ]]; then
if (( $SCRIPT_MODE )); then
echo -n "$THIS_COMMAND$THIS_ARGUMENTS"
return 0
elif (( $VERBOSE_MODE )); then
echo "$THIS_COMMAND$THIS_ARGUMENTS"
else
echo "$* is resolved to:\n$THIS_COMMAND$THIS_ARGUMENTS"
fi
echo -n "${command_type}:"
from_file="$(echo $command_type | cut -d' ' -f7-)"
# from_file=${command_type##* }
grep -En -m1 "(function[ \t]+${THIS_COMMAND}[ \t]*(\(\)|)[ \t]*{|${THIS_COMMAND}[ \t]*\(\)[ \t]*{)" "$from_file" \
| cut -d: -f1
else
if (( $VERBOSE_MODE )); then
echo "$THIS_COMMAND$THIS_ARGUMENTS"
fi
THIS_COMMAND="$(which $THIS_COMMAND)"
if [ $? -ne 0 ]; then
echo "${THIS_COMMAND%% *} not found." >&2
return 1
fi
if (( $VERBOSE_MODE )); then
echo -n "$THIS_COMMAND"
NEXT_STEP="$(file -bh $THIS_COMMAND | cut -d' ' -f4-)"
if [ "${NEXT_STEP:0:1}" != '/' ]; then
NEXT_STEP="${THIS_COMMAND%/*}/$NEXT_STEP"
fi
while [[ "$(file -bh $THIS_COMMAND)" =~ "^symbolic link to" && "$NEXT_STEP" != "$THIS_COMMAND" ]]; do
THIS_COMMAND=$NEXT_STEP
NEXT_STEP="$(file -bh $THIS_COMMAND | cut -d' ' -f4-)"
if [ "${NEXT_STEP:0:1}" != '/' ]; then
NEXT_STEP="${THIS_COMMAND%/*}/$NEXT_STEP"
fi
echo -n "\n$THIS_COMMAND"
done
echo $THIS_ARGUMENTS
return 0
fi
THIS_COMMAND="$(realpath $THIS_COMMAND)"
if (( $SCRIPT_MODE )); then
echo -n "$THIS_COMMAND$THIS_ARGUMENTS"
return 0
fi
echo "$* is resolved to:\n$THIS_COMMAND$THIS_ARGUMENTS"
fi
echo -n "\n$THIS_COMMAND"
done
echo $THIS_ARGUMENTS
return 0
fi
THIS_COMMAND="$(realpath $THIS_COMMAND)"
if (( $SCRIPT_MODE )); then
echo -n "$THIS_COMMAND$THIS_ARGUMENTS"
return 0
fi
echo "$* is resolved to:\n$THIS_COMMAND$THIS_ARGUMENTS"
fi
}
## Grep a keyword at the beginning of a line (ignoring whitespace) in a man page
function mangrep() {
mangrep_file="$1"
mangrep_pattern="$2"
shift
shift
man -P 'less -p "^ *'"${mangrep_pattern}\"" "$@" "${mangrep_file}"
unset mangrep_{file,pattern}
mangrep_file="$1"
mangrep_pattern="$2"
shift
shift
man -P 'less -p "^ *'"${mangrep_pattern}\"" "$@" "${mangrep_file}"
unset mangrep_{file,pattern}
}
## Grep in zsh history file
function histgrep() {
grep "$@" "${HISTFILE:-$HOME/.zsh_history}"
grep "$@" "${HISTFILE:-$HOME/.zsh_history}"
}
function format() {
# TODO: respect manual changes made in meld
CLANG_FORMAT_FILE="$HOME/Projects/C/.clang.format"
FORMAT="{$(sed -E '/^\s*$/d' "$CLANG_FORMAT_FILE" | tr '\n' ',' | sed 's/,$//')}"
if [ $# -eq 1 ]; then
meld <(clang-format -style="$FORMAT" $1) $1
fi
echo -n "Are you happy? [yn] "
read yn
if [ $yn = "y" ]; then
clang-format -i -style="$FORMAT" $1
fi
# TODO: respect manual changes made in meld
CLANG_FORMAT_FILE="$HOME/Projects/C/.clang.format"
FORMAT="{$(sed -E '/^\s*$/d' "$CLANG_FORMAT_FILE" | tr '\n' ',' | sed 's/,$//')}"
if [ $# -eq 1 ]; then
meld <(clang-format -style="$FORMAT" $1) $1
fi
echo -n "Are you happy? [yn] "
read yn
if [ $yn = "y" ]; then
clang-format -i -style="$FORMAT" $1
fi
}
function urlenc() {
python3 -c "from urllib import parse; print(parse.quote('$@'), end='')"
python3 -c "from urllib import parse; print(parse.quote('$@'), end='')"
}
function urldec() {
python3 -c "from urllib import parse; print(parse.unquote('$@'), end='')"
python3 -c "from urllib import parse; print(parse.unquote('$@'), end='')"
}

View File

@@ -3,43 +3,43 @@
## List items in trash if no argument is specified
function _trash_list_default() {
if [ $# -eq 0 ]; then
trash-list
else
\trash "$@"
fi
if [ $# -eq 0 ]; then
trash-list
else
\trash "$@"
fi
}
## Open nemo in current directory if no argument is specified
function _nemo_wd_default() {
if [ $# -eq 0 ]; then
\nemo ./
else
\nemo "$@"
fi
if [ $# -eq 0 ]; then
\nemo ./
else
\nemo "$@"
fi
}
## ls function that prints hidden files when there are no regular files
## or if we are in a directory that matches the regex in LS_SHOW_ALL_DIRS
function _ls_show_hidden() {
# Can be overwritten by settings it before calling
local LS_SHOW_ALL_DIRS=${LS_SHOW_ALL_DIRS:-"dotfiles|\.config"}
# Can be overwritten by settings it before calling
local LS_SHOW_ALL_DIRS=${LS_SHOW_ALL_DIRS:-"dotfiles|\.config"}
# if a path is given, target will contain the given directory or the directory in which the
# given file is located
local target
for arg in "$@"; do
if [ -d "$arg" ]; then
target="$arg"
break
elif [ -d "${arg%/*}" ]; then
target="${arg%/*}"
break
fi
done
if [[ -z "$(command ls "$@")" || "$( (cd "$target"; pwd) )" =~ "${LS_SHOW_ALL_DIRS:-^$}" ]]; then
command ls -A "$@"
else
command ls "$@"
fi
local target
for arg in "$@"; do
if [ -d "$arg" ]; then
target="$arg"
break
elif [ -d "${arg%/*}" ]; then
target="${arg%/*}"
break
fi
done
if [[ -z "$(command ls "$@")" || "$( (cd "$target"; pwd) )" =~ "${LS_SHOW_ALL_DIRS:-^$}" ]]; then
command ls -A "$@"
else
command ls "$@"
fi
}

View File

@@ -2,74 +2,75 @@
## Created: 2019-04-17
## Setup keybindings
bindkey -v
# no delay when switching into NORMAL
export KEYTIMEOUT=1
bindkey -v
# no delay when switching into NORMAL
export KEYTIMEOUT=1
function zle-line-init zle-keymap-select {
# Switch cursor style depending on mode
case $KEYMAP in
vicmd) echo -ne "\e[1 q";; # block
viins|main) echo -ne "\e[5 q";; # beam
esac
function zle-line-init zle-keymap-select {
# Switch cursor style depending on mode
case $KEYMAP in
vicmd) echo -ne "\e[1 q";; # block
viins|main) echo -ne "\e[5 q";; # beam
esac
# Make sure that the terminal is in application mode when zle is active, since
# only then values from $terminfo are valid
echoti smkx
}
zle -N zle-line-init
zle -N zle-keymap-select
# Make sure that the terminal is in application mode when zle is active, since
# only then values from $terminfo are valid
echoti smkx
}
zle -N zle-line-init
zle -N zle-keymap-select
# See above (echoti smkx)
function zle-line-finish { echoti rmkx; }
zle -N zle-line-finish
# See above (echoti smkx)
function zle-line-finish { echoti rmkx; }
zle -N zle-line-finish
bindkey '^[h' run-help
bindkey '^[h' run-help
## History
## Alternatives to check out: {up,down}-line-or-search
bindkey '^[[A' history-substring-search-up
bindkey "$terminfo[kcuu1]" history-substring-search-up
bindkey '^[[B' history-substring-search-down
bindkey "$terminfo[kcud1]" history-substring-search-down
bindkey '^R' history-incremental-search-backward
## Alternatives to check out: {up,down}-line-or-search
bindkey '^[[A' history-substring-search-up
bindkey "$terminfo[kcuu1]" history-substring-search-up
bindkey '^[[B' history-substring-search-down
bindkey "$terminfo[kcud1]" history-substring-search-down
bindkey '^R' history-incremental-search-backward
## Navigation
bindkey '^[[Z' reverse-menu-complete # shift-tab
bindkey '^K' kill-whole-line # ctrl-K
bindkey '^Q' push-input # ctrl-Q
bindkey '\e[H' beginning-of-line # home
bindkey "$terminfo[khome]" beginning-of-line # home
bindkey '\e[F' end-of-line # end
bindkey "$terminfo[kend]" end-of-line # end
bindkey -v '^?' backward-delete-char # normal delete not vim-bac...
bindkey '^[[P' delete-char # delete
bindkey '^[[3~' delete-char # delete
bindkey '^[[1;5D' backward-word # ctrl-left
bindkey '^[[1;5C' forward-word # ctrl-right
bindkey '^H' backward-kill-word # ctrl-backspace
bindkey '^[[3;5~' kill-word # ctrl-delete
bindkey "$terminfo[kmous]" kill-word # ctrl-delete
bindkey '^[[Z' reverse-menu-complete # shift-tab
bindkey '^K' kill-whole-line # ctrl-K
bindkey '^Q' push-input # ctrl-Q
bindkey '\e[H' beginning-of-line # home
bindkey "$terminfo[khome]" beginning-of-line # home
bindkey '\e[F' end-of-line # end
bindkey "$terminfo[kend]" end-of-line # end
bindkey -v '^?' backward-delete-char # normal delete not vim-bac...
bindkey '^[[P' delete-char # delete
bindkey '^[[3~' delete-char # delete
bindkey '^[[1;5D' backward-word # ctrl-left
bindkey '^[[1;5C' forward-word # ctrl-right
bindkey '^H' backward-kill-word # ctrl-backspace
bindkey '^[[3;5~' kill-word # ctrl-delete
bindkey "$terminfo[kmous]" kill-word # ctrl-delete
## From https://github.com/nicoulaj/dotfiles/blob/1c7dd1b621bc8bae895bafc438562482ea245d7e/.config/zsh/functions/widgets/rationalize-dots
function _expandDots {
#[[ $LBUFFER = *.. ]] && LBUFFER+=/.. || LBUFFER+=.
setopt localoptions nonomatch
local MATCH dir split
split=(${(z)LBUFFER})
(( $#split > 1 )) && dir=$split[-1] || dir=$split
if [[ $LBUFFER =~ '(^|/| | |'$'\n''|\||;|&)\.\.$' ]]; then
LBUFFER+=/
zle self-insert
zle self-insert
[[ -e $dir ]] && zle -M ${dir:a:h}
elif [[ $LBUFFER[-1] == '.' ]]; then
zle self-insert
[[ -e $dir ]] && zle -M ${dir:a:h}
else
zle self-insert
fi
}
#autoload _expandDots
zle -N _expandDots
bindkey . _expandDots
## From https://github.com/nicoulaj/dotfiles/blob/1c7dd1b621bc8bae895bafc438562482ea245d7e/.config/zsh/functions/widgets/rationalize-dots
function _expandDots {
#[[ $LBUFFER = *.. ]] && LBUFFER+=/.. || LBUFFER+=.
setopt localoptions nonomatch
local MATCH dir split
split=(${(z)LBUFFER})
(( $#split > 1 )) && dir=$split[-1] || dir=$split
if [[ $LBUFFER =~ '(^|/| | |'$'\n''|\||;|&)\.\.$' ]]; then
LBUFFER+=/
zle self-insert
zle self-insert
[[ -e $dir ]] && zle -M ${dir:a:h}
elif [[ $LBUFFER[-1] == '.' ]]; then
zle self-insert
[[ -e $dir ]] && zle -M ${dir:a:h}
else
zle self-insert
fi
}
#autoload _expandDots
zle -N _expandDots
bindkey . _expandDots