/dotfiles

Dotfiles for zsh, tmux, fzf, git, etc.

Primary LanguageVimL

Ninrod's zsh, vim, tmux and git dotfiles

  • Simplicity, speed and power while working inside the shell.

Screenshots

With gruvbox (default)

gruvbox-config

With jellybeans

jellybeans-config

Important 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 because BSD ls CLICOLOR sucks).
    • brew install reattach-to-user-namespace (Mainly because of the open 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 to nvim. (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.

LICENSE

GNU General Public License v3

LINKS

first commit