<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>spf13</title><link>https://spf13.com/tags/.vimrc/</link><description>Recent content on spf13</description><generator>Hugo</generator><language>en-us</language><copyright>Copyright (c) 2008 - 2022, Steve Francia; all rights reserved.</copyright><atom:link href="https://spf13.com/tags/.vimrc/index.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Fri, 17 Jan 2014 00:00:00 UTC</lastBuildDate><item><title>Why I use spf13-vim</title><link>https://spf13.com/p/why-i-use-spf13-vim/</link><pubDate>Fri, 17 Jan 2014 00:00:00 UTC</pubDate><guid>https://spf13.com/p/why-i-use-spf13-vim/</guid><media:content url="https://spf13.com/p/why-i-use-spf13-vim/spf13-vim-screenshot.png" medium="image"/><media:thumbnail url="https://spf13.com/p/why-i-use-spf13-vim/spf13-vim-screenshot.png"/><description>&lt;p>&lt;a href="http://vim.spf13.com">spf13-vim&lt;/a>, a completely cross platform
distribution of &lt;a href="https://spf13.com/post/the-15-best-vim-plugins/">vim plugins&lt;/a> and resources for Vim, GVim and MacVim stays
true to it&amp;rsquo;s vim roots while adding modern features including a plugin
management system, a curated plugin set with customized configuration,
advanced autocomplete, tags, support for dozens of languages and much
more.&lt;/p>
&lt;p>I recently read a thread where the author asked for feedback on whether
or not to use spf13-vim. Responses varied greatly with some people
loving it to others claiming it was bloated and overkill. Some suggested
everyone should create their own configuration from scratch. Not
surprisingly many of these criticisms were accompanied by links to
people&amp;rsquo;s own vim configurations. With so many options out there, why
would anyone use spf13-vim. While I can&amp;rsquo;t speak for anyone else, here
are four reasons why I use spf13-vim.&lt;/p></description><content:encoded>&lt;![CDATA[<p><img src="https://spf13.com/p/why-i-use-spf13-vim/spf13-vim-screenshot.png" alt="Why I use spf13-vim"/><p><a href="http://vim.spf13.com">spf13-vim</a>, a completely cross platform
distribution of<a href="/post/the-15-best-vim-plugins/">vim plugins</a> and resources for Vim, GVim and MacVim stays
true to it&rsquo;s vim roots while adding modern features including a plugin
management system, a curated plugin set with customized configuration,
advanced autocomplete, tags, support for dozens of languages and much
more.</p><p>I recently read a thread where the author asked for feedback on whether
or not to use spf13-vim. Responses varied greatly with some people
loving it to others claiming it was bloated and overkill. Some suggested
everyone should create their own configuration from scratch. Not
surprisingly many of these criticisms were accompanied by links to
people&rsquo;s own vim configurations. With so many options out there, why
would anyone use spf13-vim. While I can&rsquo;t speak for anyone else, here
are four reasons why I use spf13-vim.</p><p>First, a bit of history&hellip; spf13-vim started as my personal vim
configuration. As long as I can remember I&rsquo;ve obsessed with user
experience and spent an embarrassingly large amount of time customizing
each and every single action. As many others have, I put my
configuration on github, not with the intent to share it with others,
but to have a safe place to keep it for when I setup new computers.</p><h2 id="1-vanilla-vim-like">1. Vanilla Vim like</h2><p>In designing spf13-vim I took extreme caution with every decision I made
and made certain to not override any essential Vim functionality . I had
invested years in becoming proficient in vanilla Vim and didn&rsquo;t want to
throw any of those muscle memories away. I also wanted to remain
completely comfortable in vanilla Vim. At the same time I wanted to
smooth over some of the rougher parts and provide additive features.
Virtually every one of the vanilla keystrokes and actions remain untouched.</p><p>A handful of default keystrokes have been remapped. A few of what I
consider some of the less useful behaviors have been adjusted to be more
consistent with the overall vim experience. For example, the first thing
people learn in Vim is how uses &lsquo;hjkl&rsquo; for cursor movement, spf13-vim
adds ctrl+hjkl to move around windows and &lsquo;HL&rsquo; (shift+hl) to move
between tabs. Since these are common actions, it felt decidedly
unvim-like to hide them behind commands or multiple keystrokes. These
tab movements override Vim&rsquo;s default behavior of moving to the top &lsquo;H&rsquo;
and bottom &lsquo;L&rsquo; of the window. Something I don&rsquo;t ever use.</p><h2 id="2-customizability">2. Customizability</h2><p>Continuing with the history, over time people found it and began to use
it for themselves. Recognizing this I adding more flexibility to
spf13-vim which provided the ability for people to use spf13-vim as a
foundation, but add their own customizations to configure it precisely
to fit their own needs.</p><p>Perhaps you work differently than I do and use the default &lsquo;H&rsquo; &amp;
&lsquo;L&rsquo; functionality. spf13-vim wraps each one of the overrides
with an conditional statement enabling users to easily customize it
exactly to their needs. Most users find spf13-vim default requires
little customization but are happy to discover how easy it is to craft
their personalized vim experience.</p><h2 id="3-power-of-the-masses">3. Power of the masses</h2><p>The strength and heart of open source comes from people recognizing
together we can make something better than any of us could alone. As
more and more people began to use spf13-vim, many of them desired to
contribute back. While spf13-vim started as my personal project, it has
grown from mine to ours. I use vim to write in a few languages, and
invested time discovering and customizing the best plugins for those
languages, collectively the users of spf13-vim support far more
languages than any one person would be able to. I love when I edit a
file in a language I haven&rsquo;t used before and someone else has already
crafted a customized experience in spf13-vim.</p><p>spf13-vim benefits greatly from contributions from it&rsquo;s completely
diverse user base. This ensures regardless of your development stack or
purpose, spf13-vim likely meets your needs. With support for many
different languages, plugins and uses, vim could become weighted down.
spf13-vim makes it trivial to include only the features you would use by
defining a simple list.</p><p>One of the primary reasons I hear for people abandoning Vim is properly
configuring vim is too difficult and plugins tend to be incompatible
with each other. With many active and engaged users working together
issues and incompatibilities are discovered and fixed by the users
together quickly.</p><p>The vim plugin community is always evolving. New plugins come out daily.
With many different users exploring and experimenting with new plugins
this results in vim configuration using the latest and greatest. Without
investing countless hours exploring, each user benefits greatly from the
combined efforts of everyone. spf13-vim receives many pull requests each
week keeping our collective vim experience fresh.</p><h2 id="4-the-community">4. The community</h2><p>The primary reason I love using spf13-vim is the great community. This
goes beyond the power of the masses, the spf13-vim users are some of the
most patient and kind people I&rsquo;ve ever encountered. The<a href="https://groups.google.com/forum/#!forum/spf13-vim-discuss">spf13-vim
mailing list</a>
is full of people, sometimes naive, asking for help. I am consistently
impressed with the willingness of spf13-vim users to help.</p><p>I remember back to when I first learned Vim. It was overwhelming at
times and frustrating. After 8 years using Vim full time I still feel
this way from time to time. Anyone who has tried to use Vim can likely
relate. How wonderful it is to have a group of helpful users available
and willing to assist.</p><p>When I<a href="/presentation">speak</a> at conferences I&rsquo;m most
often recognized for vim configurations. People come up and tell me how
happy they are to &ldquo;use me&rdquo;. How lucky I am to be part of this great
project that bears my name. A big thanks to the talented users (and
contributors) of the greatest vim experience.</p><p>That&rsquo;s why I use<a href="http://vim.spf13.com">spf13-vim</a>. Why do you?</p>
]]></content:encoded></item><item><title>spf13-vim 3.0 release and new website</title><link>https://spf13.com/post/spf13-vim-3-0-release-and-new-website/</link><pubDate>Fri, 06 Apr 2012 00:00:00 UTC</pubDate><guid>https://spf13.com/post/spf13-vim-3-0-release-and-new-website/</guid><media:content url="https://spf13.com/post/spf13-vim-3-0-release-and-new-website/spf13-vim-site.png" medium="image"/><media:thumbnail url="https://spf13.com/post/spf13-vim-3-0-release-and-new-website/spf13-vim-site.png"/><description>&lt;p>This post is a bit behind the actual releases, but should be announced
here nevertheless. Announcing the 3rd major release of &lt;a href="https://spf13.com/p/why-i-use-spf13-vim/">spf13-vim&lt;/a>.
&lt;a href="https://spf13.com/p/why-i-use-spf13-vim/">spf13-vim&lt;/a> is a distribution of &lt;a href="https://spf13.com/post/the-15-best-vim-plugins/">vim plugins&lt;/a> and resources for Vim, GVim
and MacVim. It is a completely cross platform distribution that stays
true to the feel of vim while providing modern features like a plugin
management system, autocomplete, tags and tons more. It grew out of my
vim configuration which I put on GitHub. As more an more people began to
use it contributions came back and flurished. It now ranks as one of the
top .5% of projects on github.Additionally I created a new site for this
project. &lt;a href="http://vim.spf13.com">http://vim.spf13.com&lt;/a> is entirely
powered by GitHub pages. If you would like to contribute, simply fork
spf13-vim, checkout the gh-pages branch and make a pull request.&lt;/p></description><content:encoded>&lt;![CDATA[<p><img src="https://spf13.com/post/spf13-vim-3-0-release-and-new-website/spf13-vim-site.png" alt="spf13-vim 3.0 release and new website"/><p>This post is a bit behind the actual releases, but should be announced
here nevertheless. Announcing the 3rd major release of<a href="/p/why-i-use-spf13-vim/">spf13-vim</a>.<a href="/p/why-i-use-spf13-vim/">spf13-vim</a> is a distribution of<a href="/post/the-15-best-vim-plugins/">vim plugins</a> and resources for Vim, GVim
and MacVim. It is a completely cross platform distribution that stays
true to the feel of vim while providing modern features like a plugin
management system, autocomplete, tags and tons more. It grew out of my
vim configuration which I put on GitHub. As more an more people began to
use it contributions came back and flurished. It now ranks as one of the
top .5% of projects on github.Additionally I created a new site for this
project.<a href="http://vim.spf13.com">http://vim.spf13.com</a> is entirely
powered by GitHub pages. If you would like to contribute, simply fork
spf13-vim, checkout the gh-pages branch and make a pull request.</p><p>The new site provides instructions on installing spf13-vim on any
platform and contains an overview of all the included modules along with
a getting started guide.</p><figure><a href="http://vim.spf13.com"><picture><source data-srcset="/post/spf13-vim-3-0-release-and-new-website/spf13-vim-site_hu_b69ebb021b351cce.webp" type="image/webp"><img data-src="/post/spf13-vim-3-0-release-and-new-website/spf13-vim-site.png" class="lazy" width="1000" height="801"/></picture></a><figcaption><h4>spf13-vim website</h4></figcaption></figure>
]]></content:encoded></item><item><title>The perfect .vimrc vim config file</title><link>https://spf13.com/post/perfect-vimrc-vim-config-file/</link><pubDate>Thu, 27 Jan 2011 00:00:00 UTC</pubDate><guid>https://spf13.com/post/perfect-vimrc-vim-config-file/</guid><media:content url="https://spf13.com/post/perfect-vimrc-vim-config-file/ilya-pavlov-OqtafYT5kTw-unsplash.jpg" medium="image"/><media:thumbnail url="https://spf13.com/post/perfect-vimrc-vim-config-file/ilya-pavlov-OqtafYT5kTw-unsplash.jpg"/><description>&lt;p>I have spent the last few years tweaking and refining my VIM
configuration. This is the ultimate VIM configuration .vimrc file. It is
well organized and documented. It is on
&lt;a href="http://github.com/spf13/spf13-vim">GitHub&lt;/a> so you can always grab the
latest. It works well alone, but is intended to be paired with the
plugins and configuration found in my complete .vim configuration also
hosted on &lt;a href="http://github.com/spf13/spf13-vim">GitHub&lt;/a>.&lt;/p>
&lt;h2 id="the-perfect-vimrc-file">The Perfect .vimrc file&lt;/h2>
&lt;p>&lt;em>Last updated May 26th 2011&lt;/em>&lt;/p></description><content:encoded>&lt;![CDATA[<p><img src="https://spf13.com/post/perfect-vimrc-vim-config-file/ilya-pavlov-OqtafYT5kTw-unsplash.jpg" alt="The perfect .vimrc vim config file"/><p>I have spent the last few years tweaking and refining my VIM
configuration. This is the ultimate VIM configuration .vimrc file. It is
well organized and documented. It is on<a href="http://github.com/spf13/spf13-vim">GitHub</a> so you can always grab the
latest. It works well alone, but is intended to be paired with the
plugins and configuration found in my complete .vim configuration also
hosted on<a href="http://github.com/spf13/spf13-vim">GitHub</a>.</p><h2 id="the-perfect-vimrc-file">The Perfect .vimrc file</h2><p><em>Last updated May 26th 2011</em></p><pre><code>" Modeline and Notes {
" vim: set foldmarker={,} foldlevel=0 foldmethod=marker spell:
"
"   This is the personal .vimrc file of Steve Francia.
"   While much of it is beneficial for general use, I would
"   recommend picking out the parts you want and understand.
"
"   You can find me at http://spf13.com
" }
" Environment {
    " Basics {
        set nocompatible        " must be first line
        set background=dark     " Assume a dark background
    " }
    " Windows Compatible {
        " On Windows, also use '.vim' instead of 'vimfiles'; this makes
synchronization
        " across (heterogeneous) systems easier.
        if has('win32') || has('win64')
          set
runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/.vim/after
        endif
    " }
    "
    " Setup Bundle Support {
    " The next two lines ensure that the \~/.vim/bundle/ system works
        runtime! autoload/pathogen.vim
        silent! call pathogen\#helptags()
        silent! call pathogen\#runtime_append_all_bundles()
    " }
" }
" General {
    set background=dark         " Assume a dark background
    if !has('win32') &amp;&amp; !has('win64')
        set term=$TERM       " Make arrow and other keys work
    endif
    filetype plugin indent on   " Automatically detect file types.
    syntax on                   " syntax highlighting
    set mouse=a                 " automatically enable mouse usage
    "set autochdir              " always switch to the current file
directory.. Messes with some plugins, best left commented out
    " not every vim is compiled with this, use the following line
instead
    " If you use command-t plugin, it conflicts with this, comment it
out.
     "autocmd BufEnter \* if bufname("") !\~ "\^\\[A-Za-z0-9\\]\*://" |
lcd %:p:h | endif
    scriptencoding utf-8
    " set autowrite                  " automatically write a file when
leaving a modified buffer
    set shortmess+=filmnrxoOtT      " abbrev. of messages (avoids 'hit
enter')
    set viewoptions=folds,options,cursor,unix,slash " better unix /
windows compatibility
    set virtualedit=onemore         " allow for cursor beyond last
character
    set history=1000                " Store a ton of history (default
is 20)
    set spell                       " spell checking on
   
    " Setting up the directories {
        set backup                      " backups are nice ...
        " Moved to function at bottom of the file
        "set backupdir=$HOME/.vimbackup//  " but not when they clog .
        "set directory=$HOME/.vimswap//     " Same for swap files
        "set viewdir=$HOME/.vimviews//  " same for view files
       
        "" Creating directories if they don't exist
        "silent execute '!mkdir -p $HVOME/.vimbackup'
        "silent execute '!mkdir -p $HOME/.vimswap'
        "silent execute '!mkdir -p $HOME/.vimviews'
        au BufWinLeave \* silent! mkview  "make vim save view (state)
(folds, cursor, etc)
        au BufWinEnter \* silent! loadview "make vim load view (state)
(folds, cursor, etc)
    " }
" }
" Vim UI {
    color solarized                 " load a colorscheme
    set tabpagemax=15               " only show 15 tabs
    set showmode                    " display the current mode
    set cursorline                  " highlight current line
    hi cursorline guibg=\#333333     " highlight bg color of current
line
    hi CursorColumn guibg=\#333333   " highlight cursor
    if has('cmdline_info')
        set ruler                   " show the ruler
        set rulerformat=%30(%=\\:b%n%y%m%r%w\\ %l,%c%V\\ %P%) " a ruler
on steroids
        set showcmd                 " show partial commands in status
line and
                                    " selected characters/lines in
visual mode
    endif
    if has('statusline')
        set laststatus=2
        " Broken down into easily includeable segments
        set statusline=%&lt;%f\\   " Filename
        set statusline+=%w%h%m%r " Options
        set statusline+=%{fugitive\#statusline()} "  Git Hotness
        set statusline+=\\ [%{&amp;ff}/%Y]            " filetype
        set statusline+=\\ [%{getcwd()}]          " current dir
        "set statusline+=\\ [A=\\%03.3b/H=\\%02.2B] " ASCII /
Hexadecimal value of char
        set statusline+=%=%-14.(%l,%c%V%)\\ %p%%  " Right aligned file
nav info
    endif
    set backspace=indent,eol,start  " backspace for dummys
    set linespace=0                 " No extra spaces between rows
    set nu                          " Line numbers on
    set showmatch                   " show matching
brackets/parenthesis
    set incsearch                   " find as you type search
    set hlsearch                    " highlight search terms
    set winminheight=0              " windows can be 0 line high
    set ignorecase                  " case insensitive search
    set smartcase                   " case sensitive when uc present
    set wildmenu                    " show list instead of just
completing
    set wildmode=list:longest,full  " command &lt;Tab> completion, list
matches, then longest common part, then all.
    set whichwrap=b,s,h,l,&lt;,>,[,]   " backspace and cursor keys wrap
to
    set scrolljump=5                " lines to scroll when cursor
leaves screen
    set scrolloff=3                 " minimum lines to keep above and
below cursor
    set foldenable                  " auto fold code
    set gdefault                    " the /g flag on :s substitutions
by default
    set list
    set listchars=tab:>.,trail:.,extends:\#,nbsp:. " Highlight
problematic whitespace
" }
" Formatting {
    set nowrap                      " wrap long lines
    set autoindent                  " indent at the same level of the
previous line
    set shiftwidth=4                " use indents of 4 spaces
    set expandtab                   " tabs are spaces, not tabs
    set tabstop=4                   " an indentation every four
columns
    set softtabstop=4               " let backspace delete indent
    "set matchpairs+=&lt;:>                " match, to be used with %
    set pastetoggle=&lt;F12>           " pastetoggle (sane indentation
on pastes)
    "set comments=sl:/\*,mb:\*,elx:\*/  " auto format comment blocks
    " Remove trailing whitespaces and \^M chars
    autocmd FileType c,cpp,java,php,js,python,twig,xml,yml autocmd
BufWritePre &lt;buffer> :call
setline(1,map(getline(1,"$"),'substitute(v:val,"\\\\s\\\\+$","","")'))
" }
" Key (re)Mappings {
    "The default leader is '\\', but many people prefer ',' as it's in
a standard
    "location
    let mapleader = ','
    " Making it so ; works like : for commands. Saves typing and
eliminates :W style typos due to lazy holding shift.
    nnoremap ; :
    " Easier moving in tabs and windows
    map &lt;C-J> &lt;C-W>j&lt;C-W>_
    map &lt;C-K> &lt;C-W>k&lt;C-W>_
    map &lt;C-L> &lt;C-W>l&lt;C-W>_
    map &lt;C-H> &lt;C-W>h&lt;C-W>_
    map &lt;C-K> &lt;C-W>k&lt;C-W>_
   
    " Wrapped lines goes down/up to next row, rather than next line in
file.
    nnoremap j gj
    nnoremap k gk
    " The following two lines conflict with moving to top and bottom of
the
    " screen
    " If you prefer that functionality, comment them out.
    map &lt;S-H> gT          
    map &lt;S-L> gt
    " Stupid shift key fixes
    cmap W w                       
    cmap WQ wq
    cmap wQ wq
    cmap Q q
    cmap Tabe tabe
    " Yank from the cursor to the end of the line, to be consistent
with C and D.
    nnoremap Y y$
       
    """ Code folding options
    nmap &lt;leader>f0 :set foldlevel=0&lt;CR>
    nmap &lt;leader>f1 :set foldlevel=1&lt;CR>
    nmap &lt;leader>f2 :set foldlevel=2&lt;CR>
    nmap &lt;leader>f3 :set foldlevel=3&lt;CR>
    nmap &lt;leader>f4 :set foldlevel=4&lt;CR>
    nmap &lt;leader>f5 :set foldlevel=5&lt;CR>
    nmap &lt;leader>f6 :set foldlevel=6&lt;CR>
    nmap &lt;leader>f7 :set foldlevel=7&lt;CR>
    nmap &lt;leader>f8 :set foldlevel=8&lt;CR>
    nmap &lt;leader>f9 :set foldlevel=9&lt;CR>
    "clearing highlighted search
    nmap &lt;silent> &lt;leader>/ :nohlsearch&lt;CR>
    " Shortcuts
    " Change Working Directory to that of the current file
    cmap cwd lcd %:p:h
    cmap cd. lcd %:p:h
    " visual shifting (does not exit Visual mode)
    vnoremap &lt; &lt;gv
    vnoremap > >gv
    " Fix home and end keybindings for screen, particularly on mac
    " - for some reason this fixes the arrow keys too. huh.
        " This section has hidden characters, please checkout from
github.
    " For when you forget to sudo.. Really Write the file.
    cmap w!! w !sudo tee % >/dev/null
" }
" Plugins {
    " VCSCommand {
"       let b:VCSCommandMapPrefix=',v'
"       let b:VCSCommandVCSType='git'
    " }
   
    " PIV {
        let g:DisableAutoPHPFolding = 0
        "let cfu=phpcomplete\#CompletePHP
    " }
   
    " Supertab {
        let g:SuperTabDefaultCompletionType = "context"
        let g:SuperTabContextDefaultCompletionType = "&lt;c-x>&lt;c-o>"
    " }
    " Misc {
        :map &lt;C-F10> &lt;Esc>:vsp&lt;CR>:VTree&lt;CR>
        " map Control + F10 to Vtree
        noremap &lt;leader>&lt;F5> :CheckSyntax&lt;cr>
        let g:checksyntax_auto = 1
        "comment out line(s) in visual mode -RB: If you do this, you
can't
        "switch sides of the comment block in visual mode.
        "vmap  o  :call NERDComment(1, 'toggle')&lt;CR>
        let g:NERDShutUp=1
        let b:match_ignorecase = 1
    " }
   
    " ShowMarks {
        let showmarks_include =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
        " Don't leave on by default, use :ShowMarksOn to enable
        let g:showmarks_enable = 0
        " For marks a-z
        highlight ShowMarksHLl gui=bold guibg=LightBlue guifg=Blue
        " For marks A-Z
        highlight ShowMarksHLu gui=bold guibg=LightRed guifg=DarkRed
        " For all other marks
        highlight ShowMarksHLo gui=bold guibg=LightYellow
guifg=DarkYellow
        " For multiple marks on the same line.
        highlight ShowMarksHLm gui=bold guibg=LightGreen
guifg=DarkGreen
    " }
   
    " Command-t {
        let g:CommandTSearchPath = $HOME . '/Code'
    " }
    " OmniComplete {
        "if has("autocmd") &amp;&amp; exists("+omnifunc")
            "autocmd Filetype \*
                "\\if &amp;omnifunc == "" |
                "\\setlocal omnifunc=syntaxcomplete\#Complete |
                "\\endif
        "endif
        " Popup menu hightLight Group
        "highlight Pmenu    ctermbg=13  guibg=DarkBlue
        "highlight PmenuSel ctermbg=7   guibg=DarkBlue     
guifg=LightBlue
        "highlight PmenuSbar ctermbg=7  guibg=DarkGray
        "highlight PmenuThumb           guibg=Black
        hi Pmenu  guifg=\#000000 guibg=\#F8F8F8 ctermfg=black
ctermbg=Lightgray
        hi PmenuSbar  guifg=\#8A95A7 guibg=\#F8F8F8 gui=NONE
ctermfg=darkcyan ctermbg=lightgray cterm=NONE
        hi PmenuThumb  guifg=\#F8F8F8 guibg=\#8A95A7 gui=NONE
ctermfg=lightgray ctermbg=darkcyan cterm=NONE
        " some convenient mappings
        inoremap &lt;expr> &lt;Esc>      pumvisible() ? "\\&lt;C-e>" :
"\\&lt;Esc>"
        inoremap &lt;expr> &lt;CR>       pumvisible() ? "\\&lt;C-y>" :
"\\&lt;CR>"
        inoremap &lt;expr> &lt;Down>     pumvisible() ? "\\&lt;C-n>" :
"\\&lt;Down>"
        inoremap &lt;expr> &lt;Up>       pumvisible() ? "\\&lt;C-p>" :
"\\&lt;Up>"
        inoremap &lt;expr> &lt;C-d>      pumvisible() ?
"\\&lt;PageDown>\\&lt;C-p>\\&lt;C-n>" : "\\&lt;C-d>"
        inoremap &lt;expr> &lt;C-u>      pumvisible() ?
"\\&lt;PageUp>\\&lt;C-p>\\&lt;C-n>" : "\\&lt;C-u>"
        " and make sure that it doesn't break supertab
        let g:SuperTabCrMapping = 0
       
        " automatically open and close the popup menu / preview window
        au CursorMovedI,InsertLeave \* if pumvisible() == 0|silent!
pclose|endif
        set completeopt=menu,preview,longest
    " }
   
    " Ctags {
    " This will look in the current directory for 'tags', and work up
the tree towards root until one is found.
        set tags=./tags;/,$HOME/vimtags
        map &lt;C-\\> :tab split&lt;CR>:exec("tag
".expand("&lt;cword>"))&lt;CR> " C-\\ - Open the definition in a new tab
        map &lt;A-]> :vsp &lt;CR>:exec("tag ".expand("&lt;cword>"))&lt;CR>
     " A-] - Open the definition in a vertical split
    " }
    " EasyTags {
       " Disabling for now. It doesn't work well on large tag files
        let g:loaded_easytags = 1  " Disable until it's working
better
        let g:easytags_cmd = 'ctags'
        let g:easytags_dynamic_files = 1
        if !has('win32') &amp;&amp; !has('win64')
            let g:easytags_resolve_links = 1
        endif
    " }
    " Delimitmate {
        au FileType \* let b:delimitMate_autoclose = 1
        " If using html auto complete (complete closing tag)
        au FileType xml,html,xhtml let b:delimitMate_matchpairs =
"(:),[:],{:}"
    " }
   
    " AutoCloseTag {
        " Make it so AutoCloseTag works for xml and xhtml files as
well
        au FileType xhtml,xml ru ftplugin/html/autoclosetag.vim
    " }
    " SnipMate {
        " Setting the author var
        " If forking, please overwrite in your .vimrc.local file
        let g:snips_author = 'Steve Francia
&lt;[[email protected]](http://www.cloudflare.com/email-protection)
>'
        " Shortcut for reloading snippets, useful when developing
        nnoremap ,smr &lt;esc>:exec ReloadAllSnippets()&lt;cr>
    " }
    " NerdTree {
        map &lt;C-e> :NERDTreeToggle&lt;CR>:NERDTreeMirror&lt;CR>
        map &lt;leader>e :NERDTreeFind&lt;CR>
        nmap &lt;leader>nt :NERDTreeFind&lt;CR>
        let NERDTreeShowBookmarks=1
        let NERDTreeIgnore=['\\.pyc', '\\\~$', '\\.swo$', '\\.swp$',
'\\.git', '\\.hg', '\\.svn', '\\.bzr']
        let NERDTreeChDirMode=0
        let NERDTreeQuitOnOpen=1
        let NERDTreeShowHidden=1
        let NERDTreeKeepTreeInNewTab=1
    " }
   
    " Tabularize {
        if exists(":Tabularize")
          nmap &lt;Leader>a= :Tabularize /=&lt;CR>
          vmap &lt;Leader>a= :Tabularize /=&lt;CR>
          nmap &lt;Leader>a: :Tabularize /:&lt;CR>
          vmap &lt;Leader>a: :Tabularize /:&lt;CR>
          nmap &lt;Leader>a:: :Tabularize /:\\zs&lt;CR>
          vmap &lt;Leader>a:: :Tabularize /:\\zs&lt;CR>
          nmap &lt;Leader>a, :Tabularize /,&lt;CR>
          vmap &lt;Leader>a, :Tabularize /,&lt;CR>
          nmap &lt;Leader>a| :Tabularize /|&lt;CR>
          vmap &lt;Leader>a| :Tabularize /|&lt;CR>
        endif
     " }
    " Richard's plugins {
        " Fuzzy Finder {
            """ Fuzzy Find file, tree, buffer, line
            nmap &lt;leader>ff :FufFile \*\*/&lt;CR>
            nmap &lt;leader>ft :FufFile&lt;CR>
            nmap &lt;leader>fb :FufBuffer&lt;CR>
            nmap &lt;leader>fl :FufLine&lt;CR>
            nmap &lt;leader>fr :FufRenewCache&lt;CR>
        " }
        " Session List {
            set
sessionoptions=blank,buffers,curdir,folds,tabpages,winsize
            nmap &lt;leader>sl :SessionList&lt;CR>
            nmap &lt;leader>ss :SessionSave&lt;CR>
        " }
       
        " Buffer explorer {
            nmap &lt;leader>b :BufExplorer&lt;CR>
        " }
       
        " VCS commands {
            nmap &lt;leader>vs :VCSStatus&lt;CR>
            nmap &lt;leader>vc :VCSCommit&lt;CR>
            nmap &lt;leader>vb :VCSBlame&lt;CR>
            nmap &lt;leader>va :VCSAdd&lt;CR>
            nmap &lt;leader>vd :VCSVimDiff&lt;CR>
            nmap &lt;leader>vl :VCSLog&lt;CR>
            nmap &lt;leader>vu :VCSUpdate&lt;CR>
        " }
        " php-doc commands {
            nmap &lt;leader>pd :call PhpDocSingle()&lt;CR>
            vmap &lt;leader>pd :call PhpDocRange()&lt;CR>
        " }
       
        " Debugging with VimDebugger {
            map &lt;F11> :DbgStepInto&lt;CR>
            map &lt;F10> :DbgStepOver&lt;CR>
            map &lt;S-F11> :DbgStepOut&lt;CR>
            map &lt;F5> :DbgRun&lt;CR>
            map &lt;F6> :DbgDetach&lt;CR>
            map &lt;F8> :DbgToggleBreakpoint&lt;CR>
            map &lt;S-F8> :DbgFlushBreakpoints&lt;CR>
            map &lt;F9> :DbgRefreshWatch&lt;CR>
            map &lt;S-F9> :DbgAddWatch&lt;CR>
        " }
        " Taglist Variables {
            let Tlist_Auto_Highlight_Tag = 1
            let Tlist_Auto_Update = 1
            let Tlist_Exit_OnlyWindow = 1
            let Tlist_File_Fold_Auto_Close = 1
            let Tlist_Highlight_Tag_On_BufEnter = 1
            let Tlist_Use_Right_Window = 1
            let Tlist_Use_SingleClick = 1
            let g:ctags_statusline=1
            " Override how taglist does javascript
            let g:tlist_javascript_settings =
'javascript;f:function;c:class;m:method;p:property;v:global'
         " }
        " JSON {
            nmap &lt;leader>jt &lt;Esc>:%!python -m
json.tool&lt;CR>&lt;Esc>:set filetype=json&lt;CR>
         " }
    " }
" }
" GUI Settings {
    " GVIM- (here instead of .gvimrc)
    if has('gui_running')
        set guioptions-=T           " remove the toolbar
        set lines=40                " 40 lines of text instead of 24,
        set transparency=5          " Make the window slightly
transparent
    else
        set term=builtin_ansi       " Make arrow and other keys work
    endif
" }
function! InitializeDirectories()
  let separator = "."
  let parent = $HOME
  let prefix = '.vim'
  let dir_list = {
              \\ 'backup': 'backupdir',
              \\ 'views': 'viewdir',
              \\ 'swap': 'directory' }
  for [dirname, settingname] in items(dir_list)
      let directory = parent . '/' . prefix . dirname . "/"
      if exists("\*mkdir")
          if !isdirectory(directory)
              call mkdir(directory)
          endif
      endif
      if !isdirectory(directory)
          echo "Warning: Unable to create backup directory: " .
directory
          echo "Try: mkdir -p " . directory
      else  
          let directory = substitute(directory, " ", "\\\\\\\\ ", "")
          exec "set " . settingname . "=" . directory
      endif
  endfor
endfunction
call InitializeDirectories()
function! NERDTreeInitAsNeeded()
    redir => bufoutput
    buffers!
    redir END
    let idx = stridx(bufoutput, "NERD_tree")
    if idx > -1
        NERDTreeMirror
        NERDTreeFind
        wincmd l
    endif
endfunction
" Use local vimrc if available {
    if filereadable(expand("\~/.vimrc.local"))
        source \~/.vimrc.local
    endif
" }</code></pre><p><a href="https://github.com/spf13/spf13-vim/blob/master/.vimrc">View the Latest on
Github</a></p><h2 id="related-posts">Related Posts</h2><ul><li><a href="/post/the-15-best-vim-plugins/">The 15 Best Vim
Plugins</a></li><li><a href="/post/vim-plugins-nerd-commenter/">Vim Plugins: NERD
Commenter</a></li><li><a href="/post/vim-plugins-snipmate/">Vim Plugins: snipMate</a></li><li><a href="/post/ultimate-vim-config/">Ultimate Vim Config</a></li><li><a href="/post/vim-crash-course/">VIM Crash Course</a></li><li><a href="/post/spf13-vim-3-0-release-and-new-website/">spf13-vim 3.0 release and new
website</a></li></ul>
]]></content:encoded></item></channel></rss>