Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hrai/vim-files


https://github.com/hrai/vim-files

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

Forked from https://github.com/amix/vimrc

If you have a pre-existing .vim_runtime folder, just run ~/.vim_runtime/refresh_and_install_vimrcs.sh to remove the whole folder and get everything from github.

## How to install the Awesome version?
The awesome version includes a lot of great plugins, configurations and color schemes that make Vim a lot better. To install it simply do following from your terminal:

For HTTPS:

rm -rf ~/.vim_runtime
git clone https://github.com/hrai/vim-files.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh

For SSH:

rm -rf ~/.vim_runtime
git clone [email protected]:hrai/vim-files.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh

I also recommend using [the Hack font](http://sourcefoundry.org/hack/) (it's a free and awesome font designed for source code). The Awesome vimrc is already setup to try to use it.

## How to install the Basic version?
The basic version is just one file and no plugins. Just copy [basic.vim](https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim) and paste it into your vimrc.

The basic version is useful to install on remote servers where you don't need many plugins, and you don't do many edits.

git clone https://github.com/hrai/vim-files.git ~/.vim_runtime
sh ~/.vim_runtime/install_basic_vimrc.sh

## How to install on Windows?

Use [msysgit](http://msysgit.github.com/) to checkout the repository and run the installation instructions above. No special instructions needed ;-)

## How to install on Linux

If you have vim aliased as `vi` instead of `vim`, make sure to either alias it: `alias vi=vim`. Otherwise, `apt-get install vim`

## How to update to latest version?

Just do a git rebase!

cd ~/.vim_runtime
git pull --rebase

## Some screenshots

Colors when editing a Python file:

![Screenshot 1](https://dnp4pehkvoo6n.cloudfront.net/07583008e4da885801657e8781777844/as/Python%20editing.png)

Opening recently opened files with the [mru.vim](https://github.com/vim-scripts/mru.vim) plugin:

![Screenshot 2](https://dnp4pehkvoo6n.cloudfront.net/1d49a88f9bd5d013c025bb1e1272a7d8/as/MRU%20plugin.png)

[NERD Tree](https://github.com/scrooloose/nerdtree) plugin in a terminal window:
![Screenshot 3](https://dnp4pehkvoo6n.cloudfront.net/ae719203166585d64728f28398f4b1b7/as/Terminal%20usage.png)

Distraction free mode using [goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2):
![Screenshot 4](https://dnp4pehkvoo6n.cloudfront.net/f0dcc4c9739148c56cbf8285a910ac41/as/Zen%20mode.png)

## Included Plugins

I recommend reading the docs of these plugins to understand them better. Each plugin provides a much better Vim experience!

* [ack.vim](https://github.com/mileszs/ack.vim): Vim plugin for `the_silver_searcher` (ag) or ack -- a wicked fast grep
* [bufexplorer.zip](https://github.com/vim-scripts/bufexplorer.zip): Quickly and easily switch between buffers. This plugin can be opened with ``
* [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim): Fuzzy file, buffer, mru and tag finder. It's mapped to ``
* [goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2):
* [lightline.vim](https://github.com/itchyny/lightline.vim): A light and configurable statusline/tabline for Vim
* [NERD Tree](https://github.com/scrooloose/nerdtree): A tree explorer plugin for vim
* [mru.vim](https://github.com/vim-scripts/mru.vim): Plugin to manage Most Recently Used (MRU) files. This plugin can be opened with ``
* [open_file_under_cursor.vim](https://github.com/amix/open_file_under_cursor.vim): Open file under cursor when pressing `gf`
* [vim-commentary](https://github.com/tpope/vim-commentary): Comment stuff out. Use `gcc` to comment out a line (takes a count), `gc` to comment out the target of a motion. `gcu` uncomments a set of adjacent commented lines.
* [vim-expand-region](https://github.com/terryma/vim-expand-region): Allows you to visually select increasingly larger regions of text using the same key combination
* [vim-fugitive](https://github.com/tpope/vim-fugitive): A Git wrapper so awesome, it should be illegal
* [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object): Defines a new text object representing lines of code at the same indent level. Useful for python/vim scripts
* [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors): Sublime Text style multiple selections for Vim, CTRL+N is remapped to CTRL+S (due to YankRing)
* [vim-yankstack](https://github.com/maxbrunsfeld/vim-yankstack): Maintains a history of previous yanks, changes and deletes
Remove all clutter and focus only on the essential. Similar to iA Writer or Write Room [Read more here](http://amix.dk/blog/post/19744)

## Included color schemes

* [vim-colors-solarized](https://github.com/altercation/vim-colors-solarized)

## Included modes

* [vim-less](https://github.com/groenewege/vim-less)
* [vim-bundle-mako](https://github.com/sophacles/vim-bundle-mako)
* [vim-markdown](https://github.com/tpope/vim-markdown)
* [nginx.vim](https://github.com/vim-scripts/nginx.vim): Highlights configuration files for nginx
* [vim-go](https://github.com/fatih/vim-go)

## How to include your own stuff?

After you have installed the setup, you can create **~/.vim_runtime/my_configs.vim** to fill in any configurations that are important for you. For instance, my **my_configs.vim** looks like this:

~/.vim_runtime (master)> cat my_configs.vim
map ct :cd ~/Desktop/Todoist/todoist
map cw :cd ~/Desktop/Wedoist/wedoist

You can also install your plugins, for instance, via Vundle

## Key Mappings

The [leader](http://learnvimscriptthehardway.stevelosh.com/chapters/06.html#leader) is `,`, so whenever you see `` it means `,`.

### Plugin related mappings

Open [bufexplorer](https://github.com/vim-scripts/bufexplorer.zip) to see and manage the current buffers (`o`):

map o :BufExplorer

Open [MRU.vim](https://github.com/vim-scripts/mru.vim) to see the recently open files (`f`):

map f :MRU

Open [ctrlp.vim](https://github.com/kien/ctrlp.vim) plugin to quickly find a file or a buffer (`j` or `f`):

let g:ctrlp_map = ''

[NERD Tree](https://github.com/scrooloose/nerdtree) mappings:

map nn :NERDTreeToggle
map nb :NERDTreeFromBookmark
map nf :NERDTreeFind

[goyo.vim](https://github.com/junegunn/goyo.vim) and [vim-zenroom2](https://github.com/amix/vim-zenroom2) lets you only focus on one thing at a time. It removes all the distractions and centers the content. It has a special look when editing Markdown, reStructuredText and textfiles. It only has one mapping. (`z`)

map z :Goyo

### Normal mode mappings

Fast saving of a buffer (`w`):

nmap w :w!

Map `` to `/` (search) and `+` to `?` (backwards search):

map /
map ?
map :noh

Disable highlights when you press ``:

map :noh

Smart way to move between windows (`j` etc.):

map j
map k
map h
map l

Closing of the current buffer(s) (`bd` and (`ba`)):

" Close current buffer
map bd :Bclose

" Close all buffers
map ba :1,1000 bd!

Useful mappings for managing tabs:

map tn :tabnew
map to :tabonly
map tc :tabclose
map tm :tabmove

" Opens a new tab with the current buffer's path
" Super useful when editing files in the same directory
map te :tabedit =expand("%:p:h")/

Switch [CWD](http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file) to the directory of the open buffer:

map cd :cd %:p:h:pwd

Open `ack.vim` for fast search:

map g :Ack

Quickly open a buffer for scripbble:

map q :e ~/buffer

Toggle paste mode on and off:

map pp :setlocal paste!

### Visual mode mappings

Visual mode pressing `*` or `#` searches for the current selection:

vnoremap * :call VisualSelection('f')
vnoremap # :call VisualSelection('b')

When you press gv you `Ack.vim` after the selected text:

vnoremap gv :call VisualSelection('gv', '')

When you press `r` you can search and replace the selected text:

vnoremap r :call VisualSelection('replace')

Surround the visual selection in parenthesis/brackets/etc.:

vnoremap $1 `>a)`
vnoremap $2 `>a]`
vnoremap $3 `>a}`
vnoremap $$ `>a"`
vnoremap $q `>a'`
vnoremap $e `>a"`

### Insert mode mappings

Quickly insert parenthesis/brackets/etc.:

inoremap $1 ()i
inoremap $2 []i
inoremap $3 {}i
inoremap $4 {o}O
inoremap $q ''i
inoremap $e ""i
inoremap $t <>i

Insert the current date and time (useful for timestamps):

iab xdate =strftime("%d/%m/%y %H:%M:%S")

### Command line mappings

$q is super useful when browsing on the command line. It deletes everything until the last slash:

cno $q eDeleteTillSlash()

Bash like keys for the command line:

cnoremap
cnoremap
cnoremap

cnoremap
cnoremap

Write the file as sudo (works only on Unix). Super useful when you open a file and you don't have permissions to save your changes. [Vim tip](http://vim.wikia.com/wiki/Su-write):

:W

### Spell checking
Pressing `ss` will toggle spell checking:

map ss :setlocal spell!

Shortcuts using `` instead of special characters:

map sn ]s
map sp [s
map sa zg
map s? z=

### Cope
Query `:help cope` if you are unsure what cope is. It's super useful!

When you search with `Ack.vim`, display your results in cope by doing:
`cc`

To go to the next search result do:
`n`

To go to the previous search results do:
`p`

Cope mappings:

map cc :botright cope
map co ggVGy:tabnew:set syntax=qfpgg
map n :cn
map p :cp

## How to uninstall
Just do following:
* Remove `~/.vim_runtime`
* Remove any lines that reference `.vim_runtime` in your `~/.vimrc`