feat(revamp): add zsh and neovim configs, add an install script and a dependencies list
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# Configuration Files
|
||||
|
||||
Zsh has several system-wide and user-local configuration files.
|
||||
|
||||
Additionally, Prezto has one user-local configuration file.
|
||||
|
||||
System-wide configuration files are installation-dependent but are installed
|
||||
in _`/etc`_ by default.
|
||||
|
||||
User-local configuration files have the same name as their global counterparts
|
||||
but are prefixed with a dot (hidden). Zsh looks for these files in the path
|
||||
stored in the `$ZDOTDIR` environment variable. However, if said variable is
|
||||
not defined, Zsh will use the user's home directory.
|
||||
|
||||
## File Descriptions
|
||||
|
||||
The [configuration files][1] are read in the following order:
|
||||
|
||||
1. _`/etc/zshenv`_
|
||||
2. _`${ZDOTDIR:-$HOME}/.zshenv`_
|
||||
3. _`/etc/zprofile`_
|
||||
4. _`${ZDOTDIR:-$HOME}/.zprofile`_
|
||||
5. _`/etc/zshrc`_
|
||||
6. _`${ZDOTDIR:-$HOME}/.zshrc`_
|
||||
7. _`${ZDOTDIR:-$HOME}/.zpreztorc`_
|
||||
8. _`/etc/zlogin`_
|
||||
9. _`${ZDOTDIR:-$HOME}/.zlogin`_
|
||||
10. _`${ZDOTDIR:-$HOME}/.zlogout`_
|
||||
11. _`/etc/zlogout`_
|
||||
|
||||
### zshenv
|
||||
|
||||
This file is sourced by all instances of Zsh, and thus, it should be kept as
|
||||
small as possible and should only define environment variables.
|
||||
|
||||
### zprofile
|
||||
|
||||
This file is similar to _zlogin_, but it is sourced before _zshrc_. It was added
|
||||
for [KornShell][2] fans. See the description of _zlogin_ below for what it may
|
||||
contain.
|
||||
|
||||
_zprofile_ and _zlogin_ are not meant to be used together but can be done so.
|
||||
|
||||
### zshrc
|
||||
|
||||
This file is sourced by interactive shells. It should define aliases, functions,
|
||||
shell options, and key bindings.
|
||||
|
||||
### zpreztorc
|
||||
|
||||
This file configures Prezto.
|
||||
|
||||
### zlogin
|
||||
|
||||
This file is sourced by login shells after _zshrc_. Thus, it should contain
|
||||
commands that need to execute at login. It is usually used for messages such as
|
||||
[_`fortune`_][3], [_`msgs`_][4], or for the creation of files.
|
||||
|
||||
This is not the file to define aliases, functions, shell options, and key
|
||||
bindings. It should not change the shell environment.
|
||||
|
||||
### zlogout
|
||||
|
||||
This file is sourced by login shells during logout. It should be used for
|
||||
displaying messages and for deletion of files.
|
||||
|
||||
## Authors
|
||||
|
||||
_The authors of these files should be contacted via the [issue tracker][5]._
|
||||
|
||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
||||
|
||||
[1]: http://zsh.sourceforge.net/Intro/intro_3.html#SEC3
|
||||
[2]: https://www.kornshell.com
|
||||
[3]: https://en.wikipedia.org/wiki/Fortune_(Unix)
|
||||
[4]: https://www.manpagez.com/man/1/msgs
|
||||
[5]: https://github.com/sorin-ionescu/prezto/issues
|
||||
@@ -0,0 +1,29 @@
|
||||
#
|
||||
# Executes commands at login post-zshrc.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Execute code that does not affect the current session in the background.
|
||||
{
|
||||
# Compile the completion dump to increase startup speed.
|
||||
zcompdump="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump"
|
||||
if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then
|
||||
if command mkdir "${zcompdump}.zwc.lock" 2>/dev/null; then
|
||||
zcompile "$zcompdump"
|
||||
command rmdir "${zcompdump}.zwc.lock" 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
} &!
|
||||
|
||||
# Execute code only if STDERR is bound to a TTY.
|
||||
if [[ -o INTERACTIVE && -t 2 ]]; then
|
||||
|
||||
# Print a random, hopefully interesting, adage.
|
||||
if (( $+commands[fortune] )); then
|
||||
fortune -s
|
||||
print
|
||||
fi
|
||||
|
||||
fi >&2
|
||||
@@ -0,0 +1,19 @@
|
||||
#
|
||||
# Executes commands at logout.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Execute code only if STDERR is bound to a TTY.
|
||||
[[ -o INTERACTIVE && -t 2 ]] && {
|
||||
|
||||
SAYINGS=(
|
||||
"So long and thanks for all the fish.\n -- Douglas Adams"
|
||||
"Good morning! And in case I don't see ya, good afternoon, good evening and goodnight.\n --Truman Burbank"
|
||||
)
|
||||
|
||||
# Print a randomly-chosen message:
|
||||
echo $SAYINGS[$(($RANDOM % $#SAYINGS + 1))]
|
||||
|
||||
} >&2
|
||||
@@ -0,0 +1,256 @@
|
||||
#
|
||||
# Sets Prezto options.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
#
|
||||
# General
|
||||
#
|
||||
|
||||
# Set case-sensitivity for completion, history lookup, etc.
|
||||
# zstyle ':prezto:*:*' case-sensitive 'yes'
|
||||
|
||||
# Color output (auto set to 'no' on dumb terminals).
|
||||
zstyle ':prezto:*:*' color 'yes'
|
||||
|
||||
# Add additional directories to load prezto modules from
|
||||
# zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib
|
||||
|
||||
# Allow module overrides when pmodule-dirs causes module name collisions
|
||||
# zstyle ':prezto:load' pmodule-allow-overrides 'yes'
|
||||
|
||||
# Set the Zsh modules to load (man zshmodules).
|
||||
# zstyle ':prezto:load' zmodule 'attr' 'stat'
|
||||
|
||||
# Set the Zsh functions to load (man zshcontrib).
|
||||
# zstyle ':prezto:load' zfunction 'zargs' 'zmv'
|
||||
|
||||
# Set the Prezto modules to load (browse modules).
|
||||
# The order matters.
|
||||
zstyle ':prezto:load' pmodule \
|
||||
'environment' \
|
||||
'terminal' \
|
||||
'editor' \
|
||||
'history' \
|
||||
'directory' \
|
||||
'spectrum' \
|
||||
'utility' \
|
||||
'completion' \
|
||||
'history-substring-search' \
|
||||
'prompt'
|
||||
|
||||
#
|
||||
# Autosuggestions
|
||||
#
|
||||
|
||||
# Set the query found color.
|
||||
# zstyle ':prezto:module:autosuggestions:color' found ''
|
||||
|
||||
#
|
||||
# Completions
|
||||
#
|
||||
|
||||
# Set the entries to ignore in static '/etc/hosts' for host completion.
|
||||
# zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \
|
||||
# '0.0.0.0' '127.0.0.1'
|
||||
|
||||
#
|
||||
# Editor
|
||||
#
|
||||
|
||||
# Set the characters that are considered to be part of a word.
|
||||
# zstyle ':prezto:module:editor' wordchars '*?_-.[]~&;!#$%^(){}<>'
|
||||
|
||||
# Set the key mapping style to 'emacs' or 'vi'.
|
||||
zstyle ':prezto:module:editor' key-bindings 'emacs'
|
||||
|
||||
# Auto convert .... to ../..
|
||||
# zstyle ':prezto:module:editor' dot-expansion 'yes'
|
||||
|
||||
# Allow the zsh prompt context to be shown.
|
||||
#zstyle ':prezto:module:editor' ps-context 'yes'
|
||||
|
||||
#
|
||||
# Git
|
||||
#
|
||||
|
||||
# Ignore submodules when they are 'dirty', 'untracked', 'all', or 'none'.
|
||||
# zstyle ':prezto:module:git:status:ignore' submodules 'all'
|
||||
|
||||
#
|
||||
# GNU Utility
|
||||
#
|
||||
|
||||
# Set the command prefix on non-GNU systems.
|
||||
# zstyle ':prezto:module:gnu-utility' prefix 'g'
|
||||
|
||||
#
|
||||
# History
|
||||
#
|
||||
|
||||
# Set the file to save the history in when an interactive shell exits.
|
||||
# zstyle ':prezto:module:history' histfile "${ZDOTDIR:-$HOME}/.zsh_history"
|
||||
|
||||
# Set the maximum number of events stored in the internal history list.
|
||||
# zstyle ':prezto:module:history' histsize 10000
|
||||
|
||||
# Set the maximum number of history events to save in the history file.
|
||||
# zstyle ':prezto:module:history' savehist 10000
|
||||
|
||||
#
|
||||
# History Substring Search
|
||||
#
|
||||
|
||||
# Set the query found color.
|
||||
# zstyle ':prezto:module:history-substring-search:color' found ''
|
||||
|
||||
# Set the query not found color.
|
||||
# zstyle ':prezto:module:history-substring-search:color' not-found ''
|
||||
|
||||
# Set the search globbing flags.
|
||||
# zstyle ':prezto:module:history-substring-search' globbing-flags ''
|
||||
|
||||
# Enable search case-sensitivity.
|
||||
# zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
|
||||
|
||||
# Enable search for fuzzy matches.
|
||||
# zstyle ':prezto:module:history-substring-search' fuzzy 'yes'
|
||||
|
||||
# Enable search uniqueness.
|
||||
# zstyle ':prezto:module:history-substring-search' unique 'yes'
|
||||
|
||||
# Enable prefixed search.
|
||||
# zstyle ':prezto:module:history-substring-search' prefixed 'yes'
|
||||
|
||||
#
|
||||
# macOS
|
||||
#
|
||||
|
||||
# Set the keyword used by `mand` to open man pages in Dash.app
|
||||
# zstyle ':prezto:module:osx:man' dash-keyword 'manpages'
|
||||
|
||||
#
|
||||
# Pacman
|
||||
#
|
||||
|
||||
# Set the Pacman frontend.
|
||||
# zstyle ':prezto:module:pacman' frontend 'yaourt'
|
||||
|
||||
#
|
||||
# Prompt
|
||||
#
|
||||
|
||||
# Set the prompt theme to load.
|
||||
# Setting it to 'random' loads a random theme.
|
||||
# Auto set to 'off' on dumb terminals.
|
||||
zstyle ':prezto:module:prompt' theme 'sorin'
|
||||
|
||||
# Set the working directory prompt display length.
|
||||
# By default, it is set to 'short'. Set it to 'long' (without '~' expansion)
|
||||
# for longer or 'full' (with '~' expansion) for even longer prompt display.
|
||||
# zstyle ':prezto:module:prompt' pwd-length 'short'
|
||||
|
||||
# Set the prompt to display the return code along with an indicator for non-zero
|
||||
# return codes. This is not supported by all prompts.
|
||||
# zstyle ':prezto:module:prompt' show-return-val 'yes'
|
||||
|
||||
#
|
||||
# Python
|
||||
#
|
||||
|
||||
# Auto switch the Python virtualenv on directory change.
|
||||
# zstyle ':prezto:module:python:virtualenv' auto-switch 'yes'
|
||||
|
||||
# Automatically initialize virtualenvwrapper if pre-requisites are met.
|
||||
# zstyle ':prezto:module:python:virtualenv' initialize 'yes'
|
||||
|
||||
#
|
||||
# Ruby
|
||||
#
|
||||
|
||||
# Auto switch the Ruby version on directory change.
|
||||
# zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
|
||||
|
||||
#
|
||||
# Screen
|
||||
#
|
||||
|
||||
# Auto start a session when Zsh is launched in a local terminal.
|
||||
# zstyle ':prezto:module:screen:auto-start' local 'yes'
|
||||
|
||||
# Auto start a session when Zsh is launched in a SSH connection.
|
||||
# zstyle ':prezto:module:screen:auto-start' remote 'yes'
|
||||
|
||||
#
|
||||
# SSH
|
||||
#
|
||||
|
||||
# Set the SSH identities to load into the agent.
|
||||
# zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_rsa2' 'id_github'
|
||||
|
||||
#
|
||||
# Syntax Highlighting
|
||||
#
|
||||
|
||||
# Set syntax highlighters.
|
||||
# By default, only the main highlighter is enabled.
|
||||
# zstyle ':prezto:module:syntax-highlighting' highlighters \
|
||||
# 'main' \
|
||||
# 'brackets' \
|
||||
# 'pattern' \
|
||||
# 'line' \
|
||||
# 'cursor' \
|
||||
# 'root'
|
||||
#
|
||||
# Set syntax highlighting styles.
|
||||
# zstyle ':prezto:module:syntax-highlighting' styles \
|
||||
# 'builtin' 'bg=blue' \
|
||||
# 'command' 'bg=blue' \
|
||||
# 'function' 'bg=blue'
|
||||
#
|
||||
# Set syntax pattern styles.
|
||||
# zstyle ':prezto:module:syntax-highlighting' pattern \
|
||||
# 'rm*-rf*' 'fg=white,bold,bg=red'
|
||||
|
||||
#
|
||||
# Terminal
|
||||
#
|
||||
|
||||
# Auto set the tab and window titles.
|
||||
# zstyle ':prezto:module:terminal' auto-title 'yes'
|
||||
|
||||
# Set the window title format.
|
||||
# zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s'
|
||||
|
||||
# Set the tab title format.
|
||||
# zstyle ':prezto:module:terminal:tab-title' format '%m: %s'
|
||||
|
||||
# Set the terminal multiplexer title format.
|
||||
# zstyle ':prezto:module:terminal:multiplexer-title' format '%s'
|
||||
|
||||
#
|
||||
# Tmux
|
||||
#
|
||||
|
||||
# Auto start a session when Zsh is launched in a local terminal.
|
||||
# zstyle ':prezto:module:tmux:auto-start' local 'yes'
|
||||
|
||||
# Auto start a session when Zsh is launched in a SSH connection.
|
||||
# zstyle ':prezto:module:tmux:auto-start' remote 'yes'
|
||||
|
||||
# Integrate with iTerm2.
|
||||
# zstyle ':prezto:module:tmux:iterm' integrate 'yes'
|
||||
|
||||
# Set the default session name:
|
||||
# zstyle ':prezto:module:tmux:session' name 'YOUR DEFAULT SESSION NAME'
|
||||
|
||||
#
|
||||
# Utility
|
||||
#
|
||||
|
||||
# Enabled safe options. This aliases cp, ln, mv and rm so that they prompt
|
||||
# before deleting or overwriting files. Set to 'no' to disable this safer
|
||||
# behavior.
|
||||
# zstyle ':prezto:module:utility' safe-ops 'yes'
|
||||
@@ -0,0 +1,73 @@
|
||||
#
|
||||
# Executes commands at login pre-zshrc.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
#
|
||||
# Browser
|
||||
#
|
||||
|
||||
if [[ -z "$BROWSER" && "$OSTYPE" == darwin* ]]; then
|
||||
export BROWSER='open'
|
||||
fi
|
||||
|
||||
#
|
||||
# Editors
|
||||
#
|
||||
|
||||
if [[ -z "$EDITOR" ]]; then
|
||||
export EDITOR='nano'
|
||||
fi
|
||||
if [[ -z "$VISUAL" ]]; then
|
||||
export VISUAL='nano'
|
||||
fi
|
||||
if [[ -z "$PAGER" ]]; then
|
||||
export PAGER='less'
|
||||
fi
|
||||
|
||||
#
|
||||
# Language
|
||||
#
|
||||
|
||||
if [[ -z "$LANG" ]]; then
|
||||
export LANG='en_US.UTF-8'
|
||||
fi
|
||||
|
||||
#
|
||||
# Paths
|
||||
#
|
||||
|
||||
# Ensure path arrays do not contain duplicates.
|
||||
typeset -gU cdpath fpath mailpath path
|
||||
|
||||
# Set the list of directories that cd searches.
|
||||
# cdpath=(
|
||||
# $cdpath
|
||||
# )
|
||||
|
||||
# Set the list of directories that Zsh searches for programs.
|
||||
path=(
|
||||
$HOME/{,s}bin(N)
|
||||
/opt/{homebrew,local}/{,s}bin(N)
|
||||
/usr/local/{,s}bin(N)
|
||||
$path
|
||||
)
|
||||
|
||||
#
|
||||
# Less
|
||||
#
|
||||
|
||||
# Set the default Less options.
|
||||
# Mouse-wheel scrolling has been disabled by -X (disable screen clearing).
|
||||
# Remove -X to enable it.
|
||||
if [[ -z "$LESS" ]]; then
|
||||
export LESS='-g -i -M -R -S -w -X -z-4'
|
||||
fi
|
||||
|
||||
# Set the Less input preprocessor.
|
||||
# Try both `lesspipe` and `lesspipe.sh` as either might exist on a system.
|
||||
if [[ -z "$LESSOPEN" ]] && (( $#commands[(i)lesspipe(|.sh)] )); then
|
||||
export LESSOPEN="| /usr/bin/env $commands[(i)lesspipe(|.sh)] %s 2>&-"
|
||||
fi
|
||||
@@ -0,0 +1,11 @@
|
||||
#
|
||||
# Defines environment variables.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Ensure that a non-login, non-interactive shell has a defined environment.
|
||||
if [[ ( "$SHLVL" -eq 1 && ! -o LOGIN ) && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then
|
||||
source "${ZDOTDIR:-$HOME}/.zprofile"
|
||||
fi
|
||||
@@ -0,0 +1,13 @@
|
||||
#
|
||||
# Executes commands at the start of an interactive session.
|
||||
#
|
||||
# Authors:
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Source Prezto.
|
||||
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
|
||||
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
|
||||
fi
|
||||
|
||||
# Customize to your needs...
|
||||
Reference in New Issue
Block a user