diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..9c99d53 --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# Totally not done the night before ZSH presentatioj + +## Overwhelming list of plugin stuff + +https://github.com/unixorn/awesome-zsh-plugins + +There is so much to read but I would mostly just skim `plugins` for things you +need. + +https://github.com/unixorn/awesome-zsh-plugins#plugins + +Fun example I found while browsing plugins + +https://github.com/mattberther/zsh-pyenv + +## Managing symlinks with gnustow + +Source: http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html?round=two + +Stow mocks the directory stucture of the .dotfiles to understand where files +should go. So instead of doing say: + +``` +ln -s /path/to/my/source/file.txt /path/to/symlink.txt +``` + +You create the directory structure with actual folders and stow can use that +structure to determine where to place the files given a root directory. It will +complain if files already exist so you won't overwrite them. To install the +dotfiles you can simply: + +``` +cd stow +./install +``` + +## Functions and Aliases + +I only split up my main config and another file that contains my functions and +aliases. I've included a filtered version of my aliases to give ideas, but +there is a lot cruft in there. + +Essential Tools: +- fzf (https://github.com/junegunn/fzf) +- gh (github cli https://cli.github.com/) +- exa (pretty ls https://github.com/ogham/exa) + +## Zplug + +zplug is a zsh plugin manager. Add the repos you want in your ~/.zshrc and then +when you start a new shell you'll be prompted to install the new plugins. +Supports oh-my-zsh plugins. + +## Autocompletes + +zsh uses a variable called `fpath` to determine where to find autocomplete +files. Autocomplete files are prefixed with an underscore and then the command +name. For example, to find the autocompletes for `docker`, zsh would search the +fpath variable for a file called `_docker`. You can write your own +autocompletes for things. Defining an alias in your zsh will let the alias pick +up the autocompletes for the original commands but if you write a function it +will not: + +``` +# gss will pick up the tab completion for git stash +alias gs="git stash" +# this will not +gs() { + git stash +} +``` + +You can use the `compdef` function to assign the autocompletes of one command +to another. Example in zshrc + +You can also write your own completions if you know a simple bash command to +get the list of options you'd like to be presented with. |