Ninrod's zsh, vim, tmux and git dotfiles
- Simplicity, speed and power while working inside the shell.
Screenshots
gruvbox (default)
Withjellybeans
WithImportant notice
- These are my personal configuration files, which are in a constant state of change as I develop my environment across several systems. I can't guarantee that these configurations will work for you, at all. So if you encounter problems with them, you're pretty much on your own. (this notice was based on aaron bieber's dotfiles)
Install Instructions
-
First off, I strongly recommend using iTerm2 on OSx.
-
Secondly, this is for unix systems:
GNU/Linux
,OSx
, etc... It should work on theory on windows, but I've faced a lot of configuration issues and ended up abandoning windows support. -
configure your terminal to use the gruvbox theme. There's a
conf
folder within this repo that can help you with that. -
now get
vim
7.4+ with +clipboard and +python. -
get tmux 2.2+
-
get zsh 5.1+ and make sure that
/bin/zsh
is valid. (if not:$ cd /bin && sudo ln -s $(command -v zsh) zsh
) -
cat /etc/shells
and verify that zsh appears on the list. If not,sudo vi /etc/shells
and append/bin/zsh
-
get python2, python2-pip and
$ sudo pip2 install neovim
-
get ag (you can
brew install ag
on OSx). -
clone zplug to
~/.zplug
-
clone fzf to
~/.fzf
-
if you're on OSx, brew install these:
brew install coreutils
(mainly becauseBSD
ls
CLICOLOR
sucks).brew install reattach-to-user-namespace
(Mainly because of theopen
utility. more info here).brew install nvim
brew install diff-so-fancy
-
Kind remark: for the moment (until I change the script to back it up for you), I'll overwrite your
~/.gitconfig
file, so if you have something important in it, now would be the perfect moment to back it up. -
now open your shell and write this:
# clone repo
$ git clone https://github.com/ninrod/dotfiles.git ~/.dotfiles
# run install script
# basically the script does this:
# - mounts symlinks on your home folder;
# - creates ~/.options/shell-options.conf file, if not existent
# - overwrites your .gitconfig (so back it up if you have something important)
# - install/updates vim plugins
$ ~/.dotfiles/install.zsh
# change git/github user info
$ vim ~/.options/shell-options.conf
# reload zsh
$ exec zsh
-
note: the alias
v
is mapped tonvim
. (neovim is a fork of vim. It's my main editor.) -
That's it, your're all set.
VIM: Powerful shell text editor. Tweaked with plugins.
Custom binds and plugins
-
To check out what binds and plugins I use in this config, my vimrc file is authoritative.
-
That said, it is worth noting that I've remapped
<space>
to be an alias to the<leader>
key.
TMUX: the terminal multiplexer
You interact with tmux escaping commands through a key combo called prefix
. I've remapped prefix
to <control>+<spacebar>
.
copy-mode | history | scroll mode
bind | action |
---|---|
<prefix> + <space> |
enter copy-mode |
Window binds
bind | action |
---|---|
<prefix> + c |
creates a new window |
<prefix> + 1 |
navigates to window 1 (or 2 to navigate to window 2, etc...) |
<prefix> + n |
navigates to the next window |
<prefix> + p |
cycles through the last two visited windows |
<prefix> + , |
to rename a window |
Panel binds
bind | action |
---|---|
<prefix> + v |
creates a new shell panel vertically splitting the viewport. |
<prefix> + x |
creates a new shell panel horizontally splitting the viewport. |
<prefix> + r |
cycles through different panel layouts. |
<prefix> + <arrowkey> |
navigates to the panel indicated by the arrow key. |
<prefix> + s |
shows a prompt where you can type the name of the window you want to send the panel to. |
exiting panels and windows
bind | action |
---|---|
exit |
closes a panel. When the last panel of the window is closed, the window is also closed. |