diff --git a/README.md b/README.md index d6287ac..3e42805 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,3 @@ -
- - - -
-

@@ -14,33 +8,30 @@ GitHub

+
+ + + +
+ What is Zim? ------------ Zim is a Zsh configuration framework with [blazing speed] and modular extensions. -Zim bundles useful [modules], a wide variety of [themes], and plenty of -customizability without compromising on speed. +Zim bundles a plugin manager, useful [modules], and a wide variety of [themes], +without compromising on speed. -What does Zim offer? --------------------- -Below is a brief showcase of Zim's features. +See how it compares to other frameworks and plugin managers: -### Speed -For more details, see [this wiki entry][blazing speed]. - ## Table of Contents -- [Features](#features) - + [Modules](#modules) - + [Themes](#themes) - + [Degit](#degit) - [Installation](#installation) - + [Automatic installation](#automatic-installation) + [Manual installation](#manual-installation) + + [Automatic installation](#automatic-installation) - [Usage](#usage) + [Example Configuration](#example-configuration) - [Settings](#settings) @@ -53,28 +44,86 @@ For more details, see [this wiki entry][blazing speed]. + [How to disabel automatic updates?](#how-to-disabel-automatic-updates) + [When should I call `compinit` in my `zshrc` ?](#when-should-i-call-compinit-in-my-zshrc) -Features --------- - -### Modules - -Zim has many [modules available][modules]. Enable as many or as few as you'd like. - -### Themes - -To preview some of the available themes, check the [themes page][themes]. - -### Degit - -Install modules without requiring `git` using our degit tool. It's faster and -lighter than `git`. See the [zmodule](#zmodule-usage) usage below. - Installation ------------ -Installing Zim is easy. You can choose either of the two methods below: +Installing Zim is easy. You can choose either the manual or automatic method +below: + +### Manual installation + +1. Set Zsh as the default shell, if you haven't done so already: + ```zsh + chsh -s $(which zsh) + ```` + +2. If you don't have `git` installed, first add this line to your `.zshrc` file + (yes, Zim works even without `git`!): + ```zsh + zstyle ':zim:zmodule' use 'degit' + ```` + +3. Add these lines to your `~/.zshrc`: + ```zsh + ZIM_HOME=${ZDOTDIR:-${HOME}}/.zim + # Download zimfw plugin manager if missing. + if [[ ! -e ${ZIM_HOME}/zimfw.zsh ]]; then + curl -fsSL --create-dirs -o ${ZIM_HOME}/zimfw.zsh \ + https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh + fi + # Install missing plugins, and update ${ZIM_HOME}/init.zsh if missing or outdated. + if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZDOTDIR:-${HOME}}/.zimrc ]]; then + source ${ZIM_HOME}/zimfw.zsh init -q + fi + # Initialize plugins. + source ${ZIM_HOME}/init.zsh + ``` + Or if you use `wget` instead of `curl`: + ```zsh + ZIM_HOME=${ZDOTDIR:-${HOME}}/.zim + # Download zimfw plugin manager if missing. + if [[ ! -e ${ZIM_HOME}/zimfw.zsh ]]; then + mkdir -p ${ZIM_HOME} && wget -nv -O ${ZIM_HOME}/zimfw.zsh \ + https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh + fi + # Install missing plugins, and update ${ZIM_HOME}/init.zsh if missing or outdated. + if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZDOTDIR:-${HOME}}/.zimrc ]]; then + source ${ZIM_HOME}/zimfw.zsh init -q + fi + # Initialize plugins. + source ${ZIM_HOME}/init.zsh + ``` + +4. Create a `~/.zimrc` file, and add a `zmodule` call for each plugin you want + to use. The `~/.zimrc` file is not sourced during the Zsh startup, and it's + only used to configure the `zimfw` plugin manager. + + See the `zmodule` usage below. + + For example, you can start with just: + ```zsh + zmodule zsh-users/zsh-syntax-highlighting + zmodule zsh-users/zsh-autosuggestions + ``` + Or if you also want to use completions: + ```zsh + zmodule zsh-users/zsh-completions + zmodule completion + zmodule zsh-users/zsh-syntax-highlighting + zmodule zsh-users/zsh-autosuggestions + ``` + The `zmodule completion` is a Zim module that calls `compinit` for you. So no + need to have `compinit` in your `~/.zshrc` when you use this module. + + Check the available [modules] and [themes] you can add to your `~/.zimrc`. + +5. Restart your terminal to automatically download the `zimfw` plugin manager, + install the plugins defined in `~/.zimrc`, and initialize them. Enjoy your + Zsh IMproved! ### Automatic installation +This will install a predefined set of modules and a theme. + * With curl: curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh @@ -87,24 +136,6 @@ Open a new terminal and you're done. Enjoy your Zsh IMproved! Take some time to tweak your `~/.zshrc` file, and to also check the available [modules] and [themes] you can add to your `~/.zimrc`. -
-Prefer to install manually? - -### Manual installation - -1. Set Zsh as the default shell: - - chsh -s $(which zsh) - -2. Prepend the lines in the following templates to the respective dot files: - - * [~/.zshrc](https://raw.githubusercontent.com/zimfw/install/master/src/templates/zshrc) - * [~/.zimrc](https://raw.githubusercontent.com/zimfw/install/master/src/templates/zimrc) - -3. Restart your terminal to automatically install the `zimfw` command line utility, - install the modules defined in `~/.zimrc`, and build the initialization scripts. -
- Usage ----- @@ -231,7 +262,7 @@ By default, `zimfw` will check if it has a new version available every 30 days. This can be disabled with: zstyle ':zim' disable-version-check yes - + ### 4. When should I call `compinit` in my `zshrc` ? `compinit` is called by _completions_ module as shown in the [Example configuration](https://github.com/zimfw/zimfw#example-configuration). So, if you are using that module then remove any call to `compinit` in your `.zshrc` like: