https://github.com/krisleech/vimfiles
Ruby/Rails centric vimfiles with support for Git, RVM and more.
https://github.com/krisleech/vimfiles
Last synced: about 1 year ago
JSON representation
Ruby/Rails centric vimfiles with support for Git, RVM and more.
- Host: GitHub
- URL: https://github.com/krisleech/vimfiles
- Owner: krisleech
- Created: 2011-09-21T16:31:49.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2013-11-29T20:42:43.000Z (over 12 years ago)
- Last Synced: 2025-04-13T03:06:53.653Z (about 1 year ago)
- Language: VimL
- Homepage:
- Size: 829 KB
- Stars: 182
- Watchers: 9
- Forks: 32
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ruby/Rails centric vimfiles and installer
With a great colour scheme and support for auto-complete, git, rvm and sparkup.
## Requirements
Vim 7.3 or better
Tested on MacOS and Linux
Introduction to Vim: http://blog.interlinked.org/tutorials/vim_tutorial.html
## Quick Install
curl https://raw.github.com/krisleech/vimfiles/master/bootstrap.sh -o - | sh
## Basic Mappings
The leader is mapped to `,`
### In Normal mode (`Esc` or `jj`)
`,p` - File browser (NerdTree)
`,f` - Find in Files (Command-t)
`Space` - Search in buffer
`,a` - Search in files (Ack)
`,b` - Search open buffers (Fuzzy Finder)
`,d` - close buffer
`,D` - close all buffers
`,Space` - Remove search highlighting
`,t` - Show tags
`//` - Toggle comments (T-Comment)
`F5` - Undo history (GUndo)
`F6` - Auto format
`Tab` - Next buffer
`Shift + Tab` - Previous buffer
`,,` - Toggle between last two buffers
`,m` - Jump to model
`,v` - Jump to view
`,gm` - Find in app/models
`,gc` - Find in app/controller
`,gv` - Find in app/views
`,gr` - Open routes in split
`,gg` - Open Gemfile in split
`,vir` - Visual select inner Ruby block
`,var` - Visual select around Ruby block
### In Insert mode (`i`)
`jj` - Back to normal mode
`` - auto complete or expand snippet
See `.vimrc` for more.
## Plugins
### rails
*Lots* of stuff - get to know this plugin!
`:Rmodel` - jump to model
`:Rview` - jump to view
`:help rails`
### coffee-script
CoffeeScript support
`:CoffeeCompile watch` show compiled js in split
https://github.com/kchmck/vim-coffee-script
### ruby-block
Provides text-objects for Ruby blocks
`var` (visual around Ruby)
`vir` (visual inner Ruby)
`ar` / `ir` (expand/contract selection)
`cir` (change inner Ruby)
`dar` (delete around Ruby)
http://vimcasts.org/blog/2010/12/a-text-object-for-ruby-blocks/
### sparkup (`ctrl+e`)
Expand CSS selectors `div.event` in to markup `
`
http://net.tutsplus.com/articles/general/quick-tip-even-quicker-markup-with-sparkup/
### fugitive
Git integration
*Lots* of stuff
`:Gstatus` and press `-` to stage file
http://vimcasts.org/episodes/fugitive-vim---a-complement-to-command-line-git/
`:help fugitive`
### rvm
Add RVM integration
### command-t (`,f`)
Find files in your project with minimal keypresses
For example `conadus` would find `controllers/admin/users`
`,f path_or_filename`
`,gf path_or_filename` - restrict to files in current directory
`Ctrl + n` - next result
`Ctrl + p` - previous result
`Ctrl + c` - cancel
### snipmate (`TAB`)
Snippets, press `TAB` to expand
Examples (in a Ruby file):
`def`
`.each`
`.eado`
`ife`
### gist (`:Gist`)
Gist current file/selection
Requires setting GITHUB_TOKEN and GITHUB_USER Env's
### gundo (`F5`)
Navigate changes history tree
http://vimcasts.org/episodes/undo-branching-and-gundo-vim/
### tabular
Align stuff
http://vimcasts.org/episodes/aligning-text-with-tabular-vim/
### conque
Terminal/Interactive programs
`:Conque zsh`
`:Conque ls`
Note you can also drop back to the terminal using Ctrl+Z, to get
back to Vim with `%1`. This is not a feature of Conque.
### tcomment (`//`)
Comment/Uncomment stuff out
### yankring
Shows history of yanked (copied) text
Pressing `ctrl + p` will also cycle through paste history
### ack (`,a`)
Search project for text (aka find in files)
`,a word`
`,a "some words"`
### nerdtree (`,p`)
Project file browser
`,p` opens file browser
`o` / `x` open and close files/folders
`m` menu to move/delete/copy files/folders
`?` Help
I use nerdtree for creating or moving files, but find command-t quicker for
opening files.
### surround (`ys`/`cs`/`ds`)
Allows adding/removing/changing of surroundings
I would highly recommend getting to know this plugin, it is very useful.
Especially when you grok text objects.
*Characters*
`ysiw)` - surround inner word with `()`
`ysiw(` - surround inner word with `( )`
In the above example `iw` can be replaced with any text object or motion.
If you find yourself manually adding surroundings, stop and work out the
correct text object or motion.
`cs"'` - change surrounding from `"` to `'`
`ds` - delete surrounding
*Tags*
`yss
` - surround line in `
` tags
`cst
` - change surround tag to ``
### solarized
A colour scheme, both light and dark version
`:set background=dark`
`:set background=light`
### fuzzyfinder (`,b`)
Find open buffer by path/filename
### taglist (`,l`)
Lists method names, provide auto complete
`,rt` Generates Ruby tags, this will include tags for your code and gems if
using RVM.
If you are not using RVM you can run `ctags -R` in project root to generate tags.
Or to run directly from within vim `:!ctags -R`.
`Ctrl+]` - skips to the tag under the cursor
### preview (`,P`)
Preview markup files such as Markdown and RDoc
Each format requires the relevant gem to be installed such as `bluecloth`
for Markdown and `github-markup` for RDoc.
### syntastic
Syntax checking
When a file is saved the syntax is automatically checked and any errors
reported.
### vundle
Plugin manager and part of the reason why my vimfiles as so compact
## INSTALLATION
Note: If you are using RVM make sure you use system ruby before installation.
rvm use system
Note: If you already have Vim installed ensure it has support for Ruby:
vim --version | grep ruby
You should see `+ruby,` if you see `-ruby` you need to reinstall Vim with Ruby support
### Install Vim (if not already installed)
#### MacOS: MacVim / Vim
brew install macvim --override-system-vim --enable-clipboard
Add `/usr/local/bin` before `/usr/bin` in your `$PATH` so you use the version of
vim installed by Homebrew, not the one that comes with MacOS.
By installing Vim in this way MacVim and regular Vim are exactly the same.
#### Ubuntu: gVim / Vim
*Server*
apt-get install vim-nox
*Desktop*
apt-get install vim-gnome
#### GNU/Linux from source
If you have an old GNU/Linux distro which does not have Vim 7.3 or better in its repos then install from source.
The configure options below leave out any GUI related features as I have only compiled Vim on a server.
Vim source is in a hg (Mercurial) repository so you need to install the hg
client first, e.g. `sudo apt-get install mercurial`.
hg clone https://vim.googlecode.com/hg/ vim
cd vim/vim73
./configure
./configure --with-features=huge --enable-cscope --enable-pythoninterp --enable-rubyinterp --enable-perlinterp --enable-multibyte
make
sudo make install
This installs Vim to `/usr/local/bin,` check this is in your `$PATH` before `/usr/bin` which may contain an older system version of Vim.
If you get an error `no terminal library found` install `libncurses5-dev`.
### Install these vimfiles
Note: You will already have a `~/.vim` folder, either delete or move it.
mv ~/.vim ~/.vim.old
git clone https://github.com/krisleech/vimfiles ~/.vim
cd ~/.vim
rake install
or run:
curl https://raw.github.com/krisleech/vimfiles/master/bootstrap.sh -o - | sh
#### To update to the latest vimfiles
cd ~/.vim
rake update
#### Install Dependacies
*MacOS*
brew install ack
brew install ctags
Note: MacOS comes with the BSD version of ctags which is not compatible.
*Ubuntu*
sudo apt-get install exuberant-ctags
sudo apt-get install ack-grep
sudo ln -s /usr/bin/ack-grep /usr/local/bin/ack
## Helpful Stuff
- http://github.com/krisleech/vimfiles/wiki
- http://walking-without-crutches.heroku.com/image/images/vi-vim-cheat-sheet.png
- http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convince-me-to-use-vim-was-wrong/
- http://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118
- http://stevelosh.com/blog/2010/09/coming-home-to-vim/#important-vimrc-lines
- `:help key-notation`
- http://vimcasts.org/
## Acknowledgments
- Tim Pope (of course) http://tpo.pe/
- https://github.com/carlhuda/janus
- https://github.com/rson/vimfiles/blob/master/plugins.vim
- https://github.com/codegram/vimfiles
- https://www.destroyallsoftware.com/file-navigation-in-vim.html
- https://github.com/alexreisner/dotfiles/blob/master/.vimrc
- http://items.sjbach.com/319/configuring-vim-right
- https://github.com/sickill/dotfiles/blob/master/.vimrc
- #vim on freenode
- woldrich
- spiiph