2.6 KiB
2.6 KiB
zsh-config
This is my personal zsh configuraton.
Requirements
- starship - a pretty and fast prompt
- direnv* - runs on cd, safely set enviroment
- eza* - better ls
- bat* - better cat, less, man, etc.
- trash-cli* - safer deletion
- fzf* - better auto-complete
(* = optional)
Installation
- Clone this repo and init the submodules
git clone 'https://git.zander.im/Zander671/zsh-config.git'
git submodule init && git submodule update
- Create a
.zshrc
and fill it with something like this:
ZSH_CONFIG_DIR="path/to/this/repo" # This variable *MUST* be set
source "${ZSH_CONFIG_DIR}/init.zsh"
- Optionally, set some other variables (before the
source
line):
- ZSH_BOOKMARK_DIR: Bookmark directory (default: ~/.cache/zsh/bookmarks)
- ZSH_BOOKMARK_LS: If true, run
ls
after jumping to a bookmark (default: true) - ZSH_GRAPHICAL_LOGIN: Whether or not to enable starting a graphical session when a login shell is started (default: true)
Aliases
I use a lot of aliases. Because a lot of the aliases are only enabled if the
corresponding piece of software is installed (see above), it is hard to give a
full list. Therefore you should think of the following list as a guide and read
init.zsh
if you want a full list.
ls
: eza --git -Fla
: eza --git -Fal
: eza --git -Flll
: eza --git -Flacat
: bat --paging=neverpcat
: bat -ppncat
: bat -pp --color=nevere
: emacsclient -a nvim -nwn
: emacsclient -a nvim -nwemacs
: emacsclient -a nvim -nwd
: start dired in either the current or provided directorydired
: start dired in either the current or provided directoryse
: sudoeditmv
: mv -icp
: cp -irm
: disabled if trash-cli is installedtp
: trash-puttrr
: trash-restoretrl
: trash-listtre
: trash-emptytrm
: trash-rmgt
: git statusga
: git addgaa
: git add -Agc
: git commitgf
: git fetchgu
: git pullgp
: git pushgcm
: git commit -m, but treat all following args as the message (like echo)gacm
: git commit -am, but treat all following args as the message (like echo)
Configuration
Previous versions of this configuration supported files that were not under
version control to be run during initialization of the shell. However the
current version does not support this. Configuring the shell requires editing
either init.zsh
or early-init.zsh
.