diff --git a/.gitmodules b/.gitmodules index 1f48dcae..68ee7e46 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,18 +10,6 @@ [submodule "sources_plugins/vim-snippets"] path = sources_plugins/vim-snippets url = git://github.com/acustodioo/vim-snippets.git -[submodule "sources_colors/vim-irblack"] - path = sources_colors/vim-irblack - url = git://github.com/wgibbs/vim-irblack.git -[submodule "sources_colors/mayansmoke"] - path = sources_colors/mayansmoke - url = git://github.com/vim-scripts/mayansmoke.git -[submodule "sources_colors/peaksea"] - path = sources_colors/peaksea - url = git://github.com/vim-scripts/peaksea.git -[submodule "sources_colors/vim-pyte"] - path = sources_colors/vim-pyte - url = git://github.com/therubymug/vim-pyte.git [submodule "sources_plugins/bufexplorer.zip"] path = sources_plugins/bufexplorer.zip url = git://github.com/vim-scripts/bufexplorer.zip.git @@ -34,27 +22,43 @@ [submodule "sources_plugins/YankRing"] path = sources_plugins/YankRing url = git://github.com/vim-scripts/YankRing.vim.git -[submodule "sources_misc/vim-coffee-script"] - path = sources_misc/vim-coffee-script - url = git://github.com/kchmck/vim-coffee-script.git -[submodule "sources_misc/vim-less"] - path = sources_misc/vim-less - url = git://github.com/groenewege/vim-less.git [submodule "sources_plugins/ack.vim"] path = sources_plugins/ack.vim url = git://github.com/mileszs/ack.vim.git [submodule "sources_plugins/open_file_under_cursor.vim"] path = sources_plugins/open_file_under_cursor.vim url = git://github.com/amix/open_file_under_cursor.vim.git -[submodule "sources_plugins/ctrlp.vim"] - path = sources_plugins/ctrlp.vim - url = git://github.com/kien/ctrlp.vim.git -[submodule "sources_misc/vim-bundle-mako"] - path = sources_misc/vim-bundle-mako - url = git://github.com/sophacles/vim-bundle-mako.git [submodule "sources_plugins/vim-powerline"] path = sources_plugins/vim-powerline url = git://github.com/Lokaltog/vim-powerline.git +[submodule "sources_plugins/ctrlp.vim"] + path = sources_plugins/ctrlp.vim + url = git://github.com/kien/ctrlp.vim.git +[submodule "sources_misc/vim-coffee-script"] + path = sources_misc/vim-coffee-script + url = git://github.com/kchmck/vim-coffee-script.git +[submodule "sources_misc/vim-less"] + path = sources_misc/vim-less + url = git://github.com/groenewege/vim-less.git +[submodule "sources_misc/vim-bundle-mako"] + path = sources_misc/vim-bundle-mako + url = git://github.com/sophacles/vim-bundle-mako.git + [submodule "sources_colors/vim-colors-solarized"] path = sources_colors/vim-colors-solarized url = git://github.com/altercation/vim-colors-solarized.git +[submodule "sources_colors/vim-irblack"] + path = sources_colors/vim-irblack + url = git://github.com/wgibbs/vim-irblack.git +[submodule "sources_colors/mayansmoke"] + path = sources_colors/mayansmoke + url = git://github.com/vim-scripts/mayansmoke.git +[submodule "sources_colors/peaksea"] + path = sources_colors/peaksea + url = git://github.com/vim-scripts/peaksea.git +[submodule "sources_colors/vim-pyte"] + path = sources_colors/vim-pyte + url = git://github.com/therubymug/vim-pyte.git +[submodule "sources_misc/vim-markdown"] + path = sources_misc/vim-markdown + url = https://github.com/tpope/vim-markdown.git diff --git a/README.md b/README.md index 7972dfa8..9ec84c45 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,267 @@ -vimrc -===== +# The Ultimate vimrc -The ultimate Vim configuration: vimrc \ No newline at end of file +Over the last 8 years I have used and tweaked Vim. This is my Ultimate vimrc. + +There are two versions: + +* **Basic**: which is located at [basic.vim](https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim). If you want something small just copy this into your ~/.vimrc and you will have a great basic setup +* **Awesome**: this includes a ton of useful plugins, color schemes and configurations etc. + +I would of course recommend using the awesome version. + + +## How to install the Basic version +The basic version is basically just one file and no plugins. You can check out [basic.vim](https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim). + +This is useful to install on remote servers where you don't need many plugins and you don't do many edits. + + git clone git://github.com/amix/vimrc.git ~/.vim_runtime + sh ~/.vim_runtime/install_basic_vimrc.sh + + +## 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: + + git clone git://github.com/amix/vimrc.git ~/.vim_runtime + sh ~/.vim_runtime/install_awesome_vimrc.sh + + +## What plugins are included? + +I recommend reading the docs of each of these plugins to understand them better. Each of them provide a much better Vim experience! + +* [pathogen.vim](https://github.com/tpope/vim-pathogen): Manages the runtime path of the plugins (this and git submodules) +* [YankRing](https://github.com/vim-scripts/YankRing.vim): Maintains a history of previous yanks, changes and deletes +* [snipMate.vim](https://github.com/garbas/vim-snipmate): snipMate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim +* [bufexplorer.zip](https://github.com/vim-scripts/bufexplorer.zip): Buffer Explorer / Browser. This plugin can be opened with **leader+o** +* [NERD Tree](https://github.com/scrooloose/nerdtree): A tree explorer plugin for vim +* [ack.vim](github.com/mileszs/ack.vim): Vim plugin for the Perl module / CLI script 'ack' +* [vim-powerline](https://github.com/Lokaltog/vim-powerline): The ultimate vim statusline utility +* [ctrlp.vim](https://github.com/kien/ctrlp.vim): Fuzzy file, buffer, mru and tag finder. In my config it's mapped to ****, because **** is used by YankRing +* [mru.vim](https://github.com/vim-scripts/mru.vim): Plugin to manage Most Recently Used (MRU) files. Includes my own fork which adds syntax highlighting to MRU. This plugin can be opened with **leader+f** +* [open_file_under_cursor.vim](https://github.com/amix/open_file_under_cursor.vim): Open file under cursor when pressing **gf** + + +## What color schemes are included? + +* [peaksea](https://github.com/vim-scripts/peaksea): My favorite! +* [vim-colors-solarized](https://github.com/altercation/vim-colors-solarized) +* [vim-irblack](https://github.com/wgibbs/vim-irblack) +* [mayansmoke](https://github.com/vim-scripts/mayansmoke) +* [vim-pyte](https://github.com/therubymug/vim-pyte) + + +## What modes are included? + +* [vim-coffee-script](https://github.com/kchmck/vim-coffee-script) +* [vim-less](https://github.com/groenewege/vim-less) +* [vim-bundle-mako](https://github.com/sophacles/vim-bundle-mako) + + +## 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 for. 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 own plugins, for instance, via pathogen: + + cd ~/.vim_runtime + git clone git://github.com/tpope/vim-rails.git sources_plugins/vim-rails + +Now you have vim-rails installed ;-) + +### Plugin related mappings + +Open bufexplorer and see and manage the current buffers: + + map o :BufExplorer + +Open MRU.vim and see the recently open files: + + map f :MRU + +Open ctrlp.vim plugin: + + let g:ctrlp_map = '' + +Open peepopen plugin: + + map j :PeepOpen + +NERDTree: + + map nn :NERDTreeToggle + map nb :NERDTreeFromBookmark + map nf :NERDTreeFind + +### Normal mode mappings +Fast saving of a buffer: + + nmap w :w! + +Treat long lines as break lines (useful when moving around in them): + + map j gj + map k gk + +Map to / (search) and Ctrl- to ? (backwards search): + + map / + map ? + map :noh + +Disable highlight when `` is pressed: + + map :noh + +Smart way to move between windows: + + map j + map k + map h + map l + +Closing of current buffer(s): + + " 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 to the directory of the open buffer: + + map cd :cd %:p:h:pwd + +Open vimgrep and put the cursor in the right position: + + map g :vimgrep // **/*. + +Vimgreps in the current file: + + map :vimgrep // % + +Remove the Windows ^M - when the encodings gets messed up: + + noremap m mmHmt:%s///ge'tzt'm + +Quickly open a buffer for scripbble: + + map q :e ~/buffer + +Toggle paste mode on and off: + + map pp :setlocal paste! + + +### 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") + + +### 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 vimgrep 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"` + + +### 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 + + +### Spell checking +Pressing `ss` will toggle and untoggle spell checking + + map ss :setlocal spell! + +Shortcuts using instead of special chars + + map sn ]s + map sp [s + map sa zg + map s? z= + +### Cope +Do :help cope if you are unsure what cope is. It's super useful! + +When you search with vimgrep, 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` + + map cc :botright cope + map co ggVGy:tabnew:set syntax=qfpgg + map n :cn + map p :cp + + +## Useful blog tips regarding my Vim setup + +* [Vim: Annotate strings with gettext (the macro way)](http://amix.dk/blog/post/19678#Vim-Annotate-strings-with-gettext-the-macro-way) +* [vimgrep: Searching through multiple file extensions](http://amix.dk/blog/post/19672#vimgrep-Searching-through-multiple-file-extensions) +* [Filtering through vimgrep results using regular expressions](http://amix.dk/blog/post/19666#Filtering-through-vimgrep-results-using-regular-expressions) +* [PeepOpen - File auto completion for Mac editors](http://amix.dk/blog/post/19601#PeepOpen-File-auto-completion-for-Mac-editors) +* [Vim 7.3: Persistent undo and encryption!](http://amix.dk/blog/post/19548#Vim-7-3-Persistent-undo-and-encryption) +* [Vim tips: Visual Search](http://amix.dk/blog/post/19334#Vim-tips-Visual-Search) +* [Folding in Vim](http://amix.dk/blog/post/19132#Folding-in-Vim) diff --git a/sources_misc/vim-markdown b/sources_misc/vim-markdown new file mode 160000 index 00000000..3a991574 --- /dev/null +++ b/sources_misc/vim-markdown @@ -0,0 +1 @@ +Subproject commit 3a99157473cb6508d1bc6f5980f928f27f52d65b diff --git a/vimrcs/basic.vim b/vimrcs/basic.vim index 4ead5484..ea460665 100644 --- a/vimrcs/basic.vim +++ b/vimrcs/basic.vim @@ -188,6 +188,8 @@ map k gk " Map to / (search) and Ctrl- to ? (backwards search) map / map ? + +" Disable highlight when is pressed map :noh " Smart way to move between windows @@ -276,10 +278,10 @@ autocmd BufWrite *.coffee :call DeleteTrailingWS() " When you press gv you vimgrep after the selected text vnoremap gv :call VisualSelection('gv') -" Some useful keys for vimgrep +" Open vimgrep and put the cursor in the right position map g :vimgrep // **/*. -" Leader space vimgreps in the current file +" Vimgreps in the current file map :vimgrep // % " When you press r you can search and replace the selected text diff --git a/vimrcs/extended.vim b/vimrcs/extended.vim index 5c325807..4c9ea10e 100644 --- a/vimrcs/extended.vim +++ b/vimrcs/extended.vim @@ -85,7 +85,7 @@ cnoremap """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Parenthesis/bracket expanding +" => Parenthesis/bracket """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" vnoremap $1 `>a)` vnoremap $2 `>a]` diff --git a/vimrcs/plugins_config.vim b/vimrcs/plugins_config.vim index 1905479f..59a5c993 100644 --- a/vimrcs/plugins_config.vim +++ b/vimrcs/plugins_config.vim @@ -12,7 +12,7 @@ call pathogen#infect('~/.vim_runtime/sources_plugins') call pathogen#infect('~/.vim_runtime/sources_forked') call pathogen#infect('~/.vim_runtime/sources_colors') call pathogen#infect('~/.vim_runtime/sources_misc') - +call pathogen#helptags() """""""""""""""""""""""""""""" " => bufExplorer plugin