Vimrc cleanup - in clean easy to read sections

Moved appearance settings to plugin/settings/skwp-appearance.vim
This commit is contained in:
yan
2011-12-17 14:11:05 -08:00
committed by Yan Pritzker
parent b125a96fb8
commit 9674873091
5 changed files with 120 additions and 122 deletions

View File

@@ -5,7 +5,7 @@
_____| / ___ ( (_| | | _____| / ___ ( (_| | |
(_______\_____|\____|_| (_______\_____|\____|_|
# Yet Another Dotfile Repo v0.7alpha # Yet Another Dotfile Repo v0.8
# Alpha Release Please Report Bugs # Alpha Release Please Report Bugs
git clone https://github.com/skwp/dotfiles ~/.dotfiles git clone https://github.com/skwp/dotfiles ~/.dotfiles
@@ -34,6 +34,8 @@ The strongly held opinions expressed here:
* Easy to use plugin architecture, no config files to edit. * Easy to use plugin architecture, no config files to edit.
* Pick one tool and use it everywhere: vim-ize everything * Pick one tool and use it everywhere: vim-ize everything
* Colors are _important_ - solarized (http://ethanschoonover.com/solarized) is a great looking scheme that is scientifically designed to be awesome. * Colors are _important_ - solarized (http://ethanschoonover.com/solarized) is a great looking scheme that is scientifically designed to be awesome.
* **NEW Beautiful, easy to read and small vimrc**
* **NEW No key overrides or custom hackery in vimrc, everything in well factored snippets in .vim/plugin/settings**
Differences from janus: Differences from janus:
--- ---
@@ -78,22 +80,22 @@ Migrating from bash to zsh is essentially pain free. The zshrc provided here
restores the only feature that I felt was 'broken' which is the Ctrl-R reverse history search. restores the only feature that I felt was 'broken' which is the Ctrl-R reverse history search.
While I am not going to support bash out of the box here, YADR _should_ work with bash if While I am not going to support bash out of the box here, YADR _should_ work with bash if
you just source the _aliases_ file. However, I recommend taking 5 mins and upgrading to zsh you just source the _aliases_ file. However, you soul will sing if you install zsh. I promise.
with this completely automated command courtesy of oh-my-zsh:
**Install zsh pain free, automatically, with no pain:**
wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
Place this as the last line in your ~/.zshrc created by oh-my-zsh: **Place this as the last line in your ~/.zshrc created by oh-my-zsh:**
source ~/.dotfiles/zsh/zshrc source ~/.dotfiles/zsh/zshrc
Lots of things I do every day are done with two or three character **Everyday shell commands should be two character mnemonic aliases**
mnemonic aliases. Please feel free to edit them:
ae # alias edit ae # alias edit
ar # alias reload ar # alias reload
Here are some of the customizations provided in ~/.dotfiles/zshrc: **Customized zsh provided by ~/.dotfiles/zshrc:**
* Vim mode * Vim mode
* Bash style ctrl-R for reverse history finder * Bash style ctrl-R for reverse history finder
@@ -109,12 +111,12 @@ with colors, tab completion, and lots of other tricks. You should:
ln -s ~/.dotfiles/irb/pryrc ~/.pryrc ln -s ~/.dotfiles/irb/pryrc ~/.pryrc
ln -s ~/.dotfiles/irb/aprc ~/.aprc ln -s ~/.dotfiles/irb/aprc ~/.aprc
Use pry **Use pry**
* as irb: 'pry' * as irb: 'pry'
* as rails console: script/console --irb=pry * as rails console: script/console --irb=pry
Pry customizations: **Pry customizations:**
* 'clear' command to clear screen * 'clear' command to clear screen
* 'sql' command to execute something (within a rails console) * 'sql' command to execute something (within a rails console)
@@ -140,7 +142,7 @@ The files in vim/plugin/settings are customizations stored on a per-plugin
basis. The main keymap is available in skwp-keymap.vim, but some of the vim basis. The main keymap is available in skwp-keymap.vim, but some of the vim
files contain key mappings as well (TODO: probably will move them out to skwp-keymap.vim) files contain key mappings as well (TODO: probably will move them out to skwp-keymap.vim)
Navigation **Navigation**
* ,z - jump back and forth between last two buffers * ,z - jump back and forth between last two buffers
* Ctrl-\ - Show current file in nerd tree * Ctrl-\ - Show current file in nerd tree
@@ -149,7 +151,7 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke
* Ctrl-I - opposite of Ctrl-O (again, this is standard) * Ctrl-I - opposite of Ctrl-O (again, this is standard)
* \mm - set the next available mark (set a mark with mX where X is a letter, navigate to mark using 'X). Uppercase marks to mark files, lowercase marks to use within a file. * \mm - set the next available mark (set a mark with mX where X is a letter, navigate to mark using 'X). Uppercase marks to mark files, lowercase marks to use within a file.
LustyJuggler **LustyJuggler**
* ,b - show buffers (LustyJuggler buffer search), just type to fuzzy match a buffer name * ,b - show buffers (LustyJuggler buffer search), just type to fuzzy match a buffer name
* ,s - Show buffers in LustyJuggler (use asdfjkl home row keys to then select buffer) * ,s - Show buffers in LustyJuggler (use asdfjkl home row keys to then select buffer)
@@ -157,18 +159,18 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke
* ,lr - lusty file finder from current folder * ,lr - lusty file finder from current folder
* ,lm ,lc ,ls - rails specific lusty juggler file finders (models, controllers, specs, etc) - just use the letter for what you want after ,l * ,lm ,lc ,ls - rails specific lusty juggler file finders (models, controllers, specs, etc) - just use the letter for what you want after ,l
Rails **Rails**
* ,ru - Rails Unittest - synonym for :AV from rails.vim, opens up the corresponding test/spec to the file you're looking for, in a vertical split * ,ru - Rails Unittest - synonym for :AV from rails.vim, opens up the corresponding test/spec to the file you're looking for, in a vertical split
* \ss to run specs, \ll to run a given spec on a line - using my vim-ruby-conque plugin (https://github.com/skwp/vim-ruby-conque) * \ss to run specs, \ll to run a given spec on a line - using my vim-ruby-conque plugin (https://github.com/skwp/vim-ruby-conque)
Surround.vim customizations **Surround.vim customizations**
* in plugin/settings/surround.vim (this folder contains all my customizations) * in plugin/settings/surround.vim (this folder contains all my customizations)
* the # key now surrounds with #{}, so - ysaw# surround around word #{foo} * the # key now surrounds with #{}, so - ysaw# surround around word #{foo}
* = surrounds with <%= erb tag %> and - for <% this %>, so yss= or yss- to wrap code * = surrounds with <%= erb tag %> and - for <% this %>, so yss= or yss- to wrap code
Search/Code Navigation **Search/Code Navigation**
* ,f - instantly Find definition of class (must have exuberant ctags installed) * ,f - instantly Find definition of class (must have exuberant ctags installed)
* K - GitGrep the current word under the cursor and show results in quickfix window * K - GitGrep the current word under the cursor and show results in quickfix window
@@ -179,24 +181,24 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke
* // - clear the search * // - clear the search
* ,T - Tag list (list of methods in a class) * ,T - Tag list (list of methods in a class)
RSI-reduction **RSI-reduction**
* Cmd-k and Cmd-d to type underscores and dashes (use ), since they are so common in code but so far away from home row * Cmd-k and Cmd-d to type underscores and dashes (use ), since they are so common in code but so far away from home row
* ; instead of : - avoid Shift for common tasks, just hit semicolon to get to ex mode * ; instead of : - avoid Shift for common tasks, just hit semicolon to get to ex mode
* ,. to go to last edit location instead of '. because the apostrophe is hard on the pinky * ,. to go to last edit location instead of '. because the apostrophe is hard on the pinky
Tab Navigation **Tab Navigation**
* Cmd-H and Cmd-L - left an right on tabs * Cmd-H and Cmd-L - left an right on tabs
* Use Cmd-1..Cmd-0 to switch to a specific tab number (like iTerm) - and tabs have been set up to show numbers * Use Cmd-1..Cmd-0 to switch to a specific tab number (like iTerm) - and tabs have been set up to show numbers
Window Navigation **Window Navigation**
* H L I M - to move left, right, up, down between windows * H L I M - to move left, right, up, down between windows
* Q - Quit a window, keep buffer alive (Ctrl-w,c) * Q - Quit a window, keep buffer alive (Ctrl-w,c)
* \Q - Quit window, kill buffer (:bw) * \Q - Quit window, kill buffer (:bw)
**Splits*** **Splits**
* vv - vertical split (Ctrl-w,v) * vv - vertical split (Ctrl-w,v)
* ss - horizontal split (Ctrl-w,s) * ss - horizontal split (Ctrl-w,s)
@@ -204,7 +206,7 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke
* ,q to close the quickfix and ,oq to open the quickfix (great for lookin at Ack or GitGrep results) * ,q to close the quickfix and ,oq to open the quickfix (great for lookin at Ack or GitGrep results)
* ,m - NERDTree toggle * ,m - NERDTree toggle
Utility **Utility**
* ,cf - Copy Filename of current file into system (not vi) paste buffer * ,cf - Copy Filename of current file into system (not vi) paste buffer
* ,cc - (Current command) copies the command under your cursor and executes it in vim. Great for testing single line changes to vimrc. * ,cc - (Current command) copies the command under your cursor and executes it in vim. Great for testing single line changes to vimrc.
@@ -214,7 +216,7 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke
* gcp (comment a paragraph) added * gcp (comment a paragraph) added
* ,t - Command-T fuzzy file selector (alternative to PeepOpen / LustyJuggler) * ,t - Command-T fuzzy file selector (alternative to PeepOpen / LustyJuggler)
Local Anonymous Bookmarking **Local Anonymous Bookmarking**
* ,bb - toggle local anonymous bookmark at current location * ,bb - toggle local anonymous bookmark at current location
* ,bn ,bp - next and previous anonymous bookmark * ,bn ,bp - next and previous anonymous bookmark
@@ -223,7 +225,7 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke
Included vim plugins Included vim plugins
--- ---
Navigation **Navigation**
* NERDTree - everyone's favorite tree browser * NERDTree - everyone's favorite tree browser
* NERDTree-tabs - makes NERDTree play nice with MacVim tabs so that it's on every tab * NERDTree-tabs - makes NERDTree play nice with MacVim tabs so that it's on every tab
@@ -234,18 +236,18 @@ Included vim plugins
* CommandT - although I personally use PeepOpen, this is available as it's pretty standard * CommandT - although I personally use PeepOpen, this is available as it's pretty standard
* VimBookmarks - toggle an anonymous bookmark ,bb and go thru them ,bn ,bp and clear them ,bc * VimBookmarks - toggle an anonymous bookmark ,bb and go thru them ,bn ,bp and clear them ,bc
Git **Git**
* fugitive - "a git wrapper so awesome, it should be illegal..". Try Gstatus and hit '-' to toggle files. Git 'd' to see a diff. Learn more: http://vimcasts.org/blog/2011/05/the-fugitive-series/ * fugitive - "a git wrapper so awesome, it should be illegal..". Try Gstatus and hit '-' to toggle files. Git 'd' to see a diff. Learn more: http://vimcasts.org/blog/2011/05/the-fugitive-series/
* GitGrep - much better than the grep provided with fugitive; use :GitGrep or hit K to grep current word * GitGrep - much better than the grep provided with fugitive; use :GitGrep or hit K to grep current word
Colors **Colors**
* AnsiEsc - inteprets ansi color codes inside log files. great for looking at Rails logs * AnsiEsc - inteprets ansi color codes inside log files. great for looking at Rails logs
* solarized - a color scheme scientifically calibrated for awesomeness (including skwp mods for ShowMarks) * solarized - a color scheme scientifically calibrated for awesomeness (including skwp mods for ShowMarks)
* csapprox - helps colors to be represented correctly on terminals (even though we expect to use MacVim) * csapprox - helps colors to be represented correctly on terminals (even though we expect to use MacVim)
Coding **Coding**
* tComment - gcc to comment a line, gcp to comment blocks, nuff said * tComment - gcc to comment a line, gcp to comment blocks, nuff said
* sparkup - div.foo#bar - hit ctrl-e, expands into <code><div class='foo' id#bar/></code>, and that's just the beginning * sparkup - div.foo#bar - hit ctrl-e, expands into <code><div class='foo' id#bar/></code>, and that's just the beginning
@@ -256,7 +258,7 @@ Included vim plugins
* textobj-rubyblock - provides visual block selection specific to ruby. try var/vir to select a ruby block * textobj-rubyblock - provides visual block selection specific to ruby. try var/vir to select a ruby block
* vim-indentobject - manipulation of blocks by their indentation (great for yaml) use vai/vii to select around an indent block * vim-indentobject - manipulation of blocks by their indentation (great for yaml) use vai/vii to select around an indent block
Utils **Utils**
* yankring - effortless sanity for pasting. every time you yank something it goes into a buffer. after hitting p to paste, use ctrl-p or ctrl-n to cycle through the paste options. great for when you accidentally overwrite your yank with a delete * yankring - effortless sanity for pasting. every time you yank something it goes into a buffer. after hitting p to paste, use ctrl-p or ctrl-n to cycle through the paste options. great for when you accidentally overwrite your yank with a delete
* surround - super easy quote and tag manipulation - ysiw" - sourround inner word with quotes. ci"' - change inner double quotes to single quotes, etc * surround - super easy quote and tag manipulation - ysiw" - sourround inner word with quotes. ci"' - change inner double quotes to single quotes, etc
@@ -271,7 +273,7 @@ Included vim plugins
* space-vim - hit space to repeat many navigation commands like finds, etc. very intuitive * space-vim - hit space to repeat many navigation commands like finds, etc. very intuitive
* slime - use ctrl-c,ctrl-c to send text to a running irb/pry/console. To start the console, you must use screen with a named session: "screen -S [name] [cmd]", ex: "screen -S pry pry" * slime - use ctrl-c,ctrl-c to send text to a running irb/pry/console. To start the console, you must use screen with a named session: "screen -S [name] [cmd]", ex: "screen -S pry pry"
General enhancements that don't add new commands **General enhancements that don't add new commands**
* IndexedSearch - when you do searches will show you "Match 2 of 4" in the status line * IndexedSearch - when you do searches will show you "Match 2 of 4" in the status line
* delimitMate - automatically closes quotes * delimitMate - automatically closes quotes
@@ -302,19 +304,20 @@ You can then commit the change. It's good to have your own fork of this project
Setup for Git Setup for Git
--- ---
To use the gitconfig (some of the git bash aliases rely on my git aliases) **To use the gitconfig (some of the git bash aliases rely on my git aliases)**
ln -s ~/.dotfiles/gitconfig ~/.gitconfig ln -s ~/.dotfiles/gitconfig ~/.gitconfig
Since the gitconfig doesn't contain the user info, I recommend using env variables. Since the gitconfig doesn't contain the user info, I recommend using env variables.
Put the following in your ~/.secrets file which is automatically referenced by the provided zshrc:
**Put the following in your ~/.secrets file which is automatically referenced by the provided zshrc:**
export GIT_AUTHOR_NAME=yourname export GIT_AUTHOR_NAME=yourname
export GIT_AUTHOR_EMAIL=you@domain.com export GIT_AUTHOR_EMAIL=you@domain.com
export GIT_COMITTER_NAME=yourname export GIT_COMITTER_NAME=yourname
export GIT_COMITTER_EMAIL=you@domain.com export GIT_COMITTER_EMAIL=you@domain.com
Some of the customizations provided include: **Some of the customizations provided include:**
* git l - a much more usable git log * git l - a much more usable git log
* git b - a list of branches with summary of last commit * git b - a list of branches with summary of last commit

View File

@@ -0,0 +1,7 @@
" persistent undos - undo after you re-open the file
" but this gives warnings under command line vim
" use only in macvim
if has('gui_running')
set undodir=~/.vim/backups
set undofile
endif

View File

@@ -0,0 +1,23 @@
" Make it beautiful - colors and fonts
if has("gui_running")
"tell the term has 256 colors
set t_Co=256
" http://ethanschoonover.com/solarized/vim-colors-solarized
colorscheme solarized
set background=dark
" Show tab number (useful for Cmd-1, Cmd-2.. mapping)
" For some reason this doesn't work as a regular set command,
" (the numbers don't show up) so I made it a VimEnter event
autocmd VimEnter * set guitablabel=%N:\ %t\ %M
set lines=60
set columns=190
set guifont=Inconsolata:h20,Monaco:h17
else
"dont load csapprox if we no gui support - silences an annoying warning
let g:CSApprox_loaded = 1
endif

View File

@@ -1,3 +1,8 @@
" Default to rspec 1. If you want " Default to rspec 1. If you want
" rspec 2, set this to 'rspec' " rspec 2, set this to 'rspec'
let g:ruby_conque_rspec_command='spec' let g:ruby_conque_rspec_command='spec'
" prevent auto insert mode, which is helpful when using conque
" term for running tests
"
autocmd WinEnter * stopinsert

142
vimrc
View File

@@ -1,128 +1,88 @@
"Use Vim settings, rather then Vi settings (much better!). " Use Vim settings, rather then Vi settings (much better!).
"This must be first, because it changes other options as a side effect. " This must be first, because it changes other options as a side effect.
set nocompatible set nocompatible
" =============== Pathogen Initialization ===============
" This loads all the plugins in ~/.vim/bundle
" Use tpope's pathogen plugin to manage all other plugins " Use tpope's pathogen plugin to manage all other plugins
runtime bundle/tpope-vim-pathogen/autoload/pathogen.vim
call pathogen#infect()
call pathogen#helptags()
set number " Line numbers are good runtime bundle/tpope-vim-pathogen/autoload/pathogen.vim
call pathogen#infect()
call pathogen#helptags()
"allow backspacing over everything in insert mode " ================ General Config ====================
set backspace=indent,eol,start
"store lots of :cmdline history set number "Line numbers are good
set history=1000 set backspace=indent,eol,start "Allow backspace in insert mode
set history=1000 "Store lots of :cmdline history
set showcmd "Show incomplete cmds down the bottom
set showmode "Show current mode down the bottom
set gcr=a:blinkon0 "Disable cursor blink
set showcmd "show incomplete cmds down the bottom set autoread "Reload files changed outside vim
set showmode "show current mode down the bottom
set incsearch "find the next match as we type the search " This makes vim act like all other editors, buffers can
set hlsearch "hilight searches by default " exist in the background without being in a window.
" http://items.sjbach.com/319/configuring-vim-right
set hidden
set nowrap "dont wrap lines "turn on syntax highlighting
set linebreak "wrap lines at convenient points syntax on
" ================ Search Settings =================
set incsearch "Find the next match as we type the search
set hlsearch "Hilight searches by default
set viminfo='100,f1 "Save up to 100 marks, enable capital marks
" ================ Turn Off Swap Files ==============
" swapfiles are lame. we have git
set noswapfile set noswapfile
set nobackup set nobackup
set nowb set nowb
" Disable cursor blink " ================ Persistent Undo ==================
set gcr=a:blinkon0 " Keep undo history across sessions, by storing in file.
" Only works in MacVim (gui) mode.
" persistent undos - undo after you re-open the file
" but this gives warnings under command line vim
" use only in macvim
if has('gui_running') if has('gui_running')
set undodir=~/.vim/backups set undodir=~/.vim/backups
set undofile set undofile
endif endif
" indent " ================ Indentation ======================
set ai " autoindent
set si " smart indent
set smarttab
"indent settings set autoindent
set smartindent
set smarttab
set shiftwidth=2 set shiftwidth=2
set softtabstop=2 set softtabstop=2
set tabstop=2 set tabstop=2
set expandtab set expandtab
set autoindent
" Prevent 'Press ENTER..' on error messages filetype plugin on
set shortmess=atI filetype indent on
" Display tabs and trailing spaces visually
set list listchars=tab:\ \ ,trail
set nowrap "Don't wrap lines
set linebreak "Wrap lines at convenient points
" ================ Folds ============================
"folding settings
set foldmethod=indent "fold based on indent set foldmethod=indent "fold based on indent
set foldnestmax=3 "deepest fold is 3 levels set foldnestmax=3 "deepest fold is 3 levels
set nofoldenable "dont fold by default set nofoldenable "dont fold by default
"make cmdline tab completion similar to bash " ================ Completion =======================
set wildmode=list:longest set wildmode=list:longest
set wildmenu "enable ctrl-n and ctrl-p to scroll thru matches set wildmenu "enable ctrl-n and ctrl-p to scroll thru matches
set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing
"display tabs and trailing spaces " ================ Scrolling ========================
set list listchars=tab:\ \ ,trail
set formatoptions-=o "dont continue comments when pushing o/O set scrolloff=8 "Start scrolling when we're 8 lines away from margins
set sidescrolloff=15
"vertical/horizontal scroll off settings
set scrolloff=8
set sidescrolloff=7
set sidescroll=1 set sidescroll=1
"load ftplugins and indent files
filetype plugin on
filetype indent on
"turn on syntax highlighting
syntax on
"some stuff to get the mouse going in term
set mouse=a
set ttymouse=xterm2
" The current buffer can be put to the background without writing to disk;
" When a background buffer becomes current again, marks and undo-history are remembered.
" Turn this on.
" http://items.sjbach.com/319/configuring-vim-right
set hidden
" Make it beautiful - colors and fonts
if has("gui_running")
"tell the term has 256 colors
set t_Co=256
" http://ethanschoonover.com/solarized/vim-colors-solarized
colorscheme solarized
set background=dark
" Show tab number (useful for Cmd-1, Cmd-2.. mapping)
" For some reason this doesn't work as a regular set command,
" (the numbers don't show up) so I made it a VimEnter event
autocmd VimEnter * set guitablabel=%N:\ %t\ %M
set lines=60
set columns=190
set guifont=Inconsolata:h20,Monaco:h17
else
"dont load csapprox if we no gui support - silences an annoying warning
let g:CSApprox_loaded = 1
endif
" automaticaly reload files changed outside of vim
set autoread
" save up to 100 marks and f1 means global marks (capital letters) are enabled
set viminfo='100,f1
" prevent auto insert mode, which is helpful when using conque
" term for running tests
"
autocmd WinEnter * stopinsert