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.
What does Zim offer?
--------------------
Below is a brief showcase of Zim's features.
### Speed
For more details, see [this wiki entry][blazing speed].
### 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].
Installation
------------
Installing Zim is easy:
* With curl:
curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh
* With wget:
wget -nv -O - https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh
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:
* [~/.zshenv](https://raw.githubusercontent.com/zimfw/install/master/src/templates/zshenv)
* [~/.zshrc](https://raw.githubusercontent.com/zimfw/install/master/src/templates/zshrc)
* [~/.zlogin](https://raw.githubusercontent.com/zimfw/install/master/src/templates/zlogin)
* [~/.zimrc](https://raw.githubusercontent.com/zimfw/install/master/src/templates/zimrc)
3. Copy https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh to
`~/.zim/zimfw.zsh`.
4. Install the modules defined in `~/.zimrc` and build the initialization scripts:
zsh ~/.zim/zimfw.zsh install
Usage
-----
### zmodule
Usage: zmodule <url> [-n|--name <module_name>] [options]
Add zmodule calls to your ~/.zimrc file to define the modules to be initialized. The modules are
initialized in the same order they are defined.
<url> Module absolute path or repository URL. The following URL formats
are equivalent: name, zimfw/name, https://github.com/zimfw/name.git.
-n|--name <module_name> Set a custom module name. Default: the last component in the <url>.
Repository options:
-b|--branch <branch_name> Use specified branch when installing and updating the module.
Overrides the tag option. Default: the repository's default branch.
-t|--tag <tag_name> Use specified tag when installing and updating the module.
Overrides the branch option.
-z|--frozen Don't install or update the module.
Initialization options:
-f|--fpath <path> Add specified path to fpath. The path is relative to the module
root directory. Default: functions, if the subdirectory exists.
-a|--autoload <func_name> Autoload specified function. Default: all valid names inside the
module's specified fpath paths.
-s|--source <file_path> Source specified file. The file path is relative to the module root
directory. Default: init.zsh, if the functions subdirectory also
exists, or the file with largest size matching
{init.zsh,module_name.{zsh,plugin.zsh,zsh-theme,sh}}, if any exist.
-c|--cmd <command> Execute specified command. Occurrences of the {} placeholder in the
command are substituted by the module root directory path.
-s 'script.zsh' and -c 'source {}/script.zsh' are equivalent.
-d|--disabled Don't initialize or uninstall the module.
### zimfw
Added new modules to `~/.zimrc`? Run `zimfw install`.
Removed modules from `~/.zimrc`? Run `zimfw uninstall`.
Want to update your modules to their latest revisions? Run `zimfw update`.
Want to upgrade `zimfw` to its latest version? Run `zimfw upgrade`.
For more information about the `zimfw` tool, run `zimfw help`.
Settings
--------
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
Uninstalling
------------
The best way to remove Zim is to manually delete `~/.zim`, `~/.zimrc`, and
remove the initialization lines from your `~/.zshenv`, `~/.zshrc` and `~/.zlogin`.
[blazing speed]: https://github.com/zimfw/zimfw/wiki/Speed
[modules]: https://zimfw.sh/docs/modules/
[themes]: https://zimfw.sh/docs/themes/