anonymouzz / dotfiles

Personal dotfile collection mainly for vim, zsh and tmux

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

YAY! Dotfiles.

Repository of my personally used dotfiles mostly based around the triumvirate of vim, zsh and tmux. Should work on OSX and Linux (tested on Debian).

Currently aims to be a development environment for Python, JavaScript, C, C++ and Go.

Screenshot

Result

Installation

Requirements

  • git
  • tmux
  • vim (with ruby bindings)
  • zsh >= 4.3
  • Exuberant Ctags (not the ctags that ships with OSX)
  • The terminal emulator has to use a patched font. Otherwise the vim-powerline and the tmux status line will not work properly. Get one from here.
  • Solarized color scheme for the terminal emulator.
  • For Python syntax checking: flake8 (pip install flake8)
  • For JavaScript support in vim: jsctags and JSHint

Actual installation

It has to be installed to ~/.dotfiles as otherwise it is just a pain to deal with relative path in all the different ways. This makes it possible to use absolute paths and thus avoids all these pitfalls.

git clone https://github.com/krischer/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
# The install script will init and update all submodules and symlink all
# necessary files.
sh install_dotfiles.sh
# Optional: Change the default shell to zsh
chsh -s `which zsh`

Vim configuration

General shortcuts

,sv<space>| (Source Vim) source (aka reload) the vimrc
vap       | (Visual Around Paragraph) visually select this paragraph.
ci"       | (Change Inside ") change inside the double quotes
ci'       | (Change Inside ') change inside the single quotes
cib       | (Change Inside Bracket) change inside brackets
diw       | (Delete Inside Word) delete the current word
gg=G      | Autoindent (=) the whole file

How to use folding in vim

zf#j      | Creates a fold from the cursor down # lines.
zf/string | Creates a fold from the cursor to string .
zj        | Moves the cursor to the next fold.
zk        | Moves the cursor to the previous fold.
zo        | Opens a fold at the cursor.
zO        | Opens all folds at the cursor.
zm        | Increases the foldlevel by one.
zM        | Closes all open folds.
zr        | Decreases the foldlevel by one.
zR        | Decreases the foldlevel to zero -- all folds will be open.
zd        | Deletes the fold at the cursor.
zE        | Deletes all folds.
[z        | Move to start of open fold.
]z        | Move to end of open fold.

(from here)

Regex in vim

.  any character except new line
\s whitespace character                      \S non-whitespace character
\d digit                                     \D non-digit
\x hex digit                                 \X non-hex digit
\o octal digit                               \O non-octal digit
\h head of word character (a-z,A-Z, and _)   \H non-head of word character
\p printable character                       \P like \p, but excluding digits
\w word character                            \W non-word character
\a alphabetic character                      \A non-alphabetic character
\l lowercase character                       \L non-lowercase character
\u uppercase character                       \U non-uppercase character

*      matches 0 or more of the preceding characters
.*     matches everything including an empty line
\+     matches 1 or more of the preceding characters
\=     matches 0 or 1 more of the preceding characters
\{n,m} matches from n to m of the precedingding characters
\{n}   matches exactly n times of the preceding characterscters
\{,m}  matches at most m (from 0 to m) of the preceding characters
\{n,}  matches at least n of of the preceding characters
where n and m are positive integers (>0)

(from http://vimregex.com - also has much much more info on vim regex)

EasyMotion plugin

Incredibly useful! Hard to describe how it works. Just try it and you will see.

;;w       | Beginning of word forward
;;W       | Beginning of WORD forward
;;f{char} | Find {char} to the right
;;F{char} | Find {char} to the left
;;t{char} | Till before the {char} to the right
;;T{char} | Till after the {char} to the left
;;w       | Beginning of word forward
;;W       | Beginning of WORD forward
;;b       | Beginning of word backward
;;B       | Beginning of WORD backward
;;e       | End of word forward
;;E       | End of WORD forward
;;ge      | End of word backward
;;gE      | End of WORD backward
;;j       | Line downward
;;k       | Line upward
;;n       | Jump to latest "/" or "?" forward
;;N       | Jump to latest "/" or "?" backward

vim-surround

Selecting something in visual mode and then pressing S and a char wraps the selection with the char.

cs"'      | (Changes Surrounding " to ')
ds'       | (Delete Surrounding ')
ysiwb     | (Yank Surround Inside Word Bracket) Surround the current word with brackets.
ysiw[     | (Yank Surround Inside Word [) Wrap word with square brackets and one space.
ysiw]     | (Yank Surround Inside Word [) Wrap word with square brackets without spaces.
ysiw<em>  | Surround word with <em>word</em>. Correctly closes the ending tag.

Special ss always wraps the whole line ignoring leading whitespaces.

yssb      | (Yank Surround Brackets) Surround the current line with brackets.

NERDCommenter

,c<space> | Toggle commenting of line/visual selection
,cA       | Add comment at the end of the current line

Syntastic

,s<space> | Toggle Syntastic. Useful as it is slow for very large files.
,er       | Toggle the Syntax error window. Off by default.

CtrlP

MRU = Most Recently Used files

Ctrl-p    | Invoke CtrlP

If CtrlP is open:
Ctrl-f    | Cycle modes (files, mru, buffers)
Ctrl-d    | Filename search only, not full path
Ctrl-r    | Switch to regex mode
Ctrl-z    | Mark multiple files and then open them with Ctrl-o

argtextobj

Provides an argument (a function argument in code) text-object, 'a'. Its quite smart about different programming language.

daa       | (Delete an argument)
dia       | (Delete inner argument) - does not delete the following colon.
cia       | (Change inner argument)

vim-indent-guides

,ig       | Toggle indent guides. Off by default.

ack.vim

Usage:
   :Ack [options] {pattern} [{directory}] (use --python, --c to search only in specific files)

In the quickfix window
o         | to open (same as enter)
go        | to preview file (open but maintain focus on ack.vim results)
v         | to open in vertical split
q         | to close the quickfix window

Latex specific things

,fs       | (format sentence) Takes the current sentence, and indents all lines beloning to it.

Go specific things

:Fmt      | Run gofmt on the currently open buffer (Autoruns upon buffer saving anyways)

Profiling vim's startup process

vim --startuptime vim.log

About

Personal dotfile collection mainly for vim, zsh and tmux

License:GNU General Public License v3.0


Languages

Language:Vim Script 61.5%Language:Shell 38.5%