Академический Документы
Профессиональный Документы
Культура Документы
" vim: set sw=4 ts=4 sts=4 et tw=78 foldmarker={,} foldlevel=0 foldmethod=marker
spell:
"
"
__ _ _____
_
"
___ _ __ / _/ |___ /
__ __(_)_ __ ___
"
/ __| '_ \| |_| | |_ \ _____\ \ / /| | '_ ` _ \
"
\__ \ |_) | _| |___) |_____|\ V / | | | | | | |
"
|___/ .__/|_| |_|____/
\_/ |_|_| |_| |_|
"
|_|
"
" 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
"
" Copyright 2014 Steve Francia
"
" Licensed under the Apache License, Version 2.0 (the "License");
" you may not use this file except in compliance with the License.
" You may obtain a copy of the License at
"
"
http://www.apache.org/licenses/LICENSE-2.0
"
" Unless required by applicable law or agreed to in writing, software
" distributed under the License is distributed on an "AS IS" BASIS,
" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
" See the License for the specific language governing permissions and
" limitations under the License.
" }
" Environment {
" Identify platform {
silent function! OSX()
return has('macunix')
endfunction
silent function! LINUX()
return has('unix') && !has('macunix') && !has('win32unix')
endfunction
silent function! WINDOWS()
return (has('win16') || has('win32') || has('win64'))
endfunction
" }
" Basics {
set nocompatible
if !WINDOWS()
set shell=/bin/sh
endif
" }
endif
" }
" }
" Use before config if available {
if filereadable(expand("~/.vimrc.before"))
source ~/.vimrc.before
endif
" }
" Use bundles config {
if filereadable(expand("~/.vimrc.bundles"))
source ~/.vimrc.bundles
endif
" }
" General {
set background=dark
" if !has('gui')
"set term=$TERM
" endif
filetype plugin indent on
syntax on
set mouse=a
set mousehide
scriptencoding utf-8
if has('clipboard')
if has('unnamedplus') " When possible use + register for copy-paste
set clipboard=unnamed,unnamedplus
else
" On mac and Windows, use * register for copy-paste
set clipboard=unnamed
endif
endif
" Most prefer to automatically switch to the current file directory when
" a new buffer is opened; to prevent this behavior, add the following to
" your .vimrc.before.local file:
" let g:spf13_no_autochdir = 1
if !exists('g:spf13_no_autochdir')
autocmd BufEnter * if bufname("") !~ "^\[A-Za-z0-9\]*://" | lcd %:p:h |
endif
" Always switch to the current file directory
endif
"set autowrite
" Automatically write a file when leavi
ng a modified buffer
set shortmess+=filmnrxoOtT
" Abbrev. of messages (avoids 'hit enter
')
set viewoptions=folds,options,cursor,unix,slash " Better Unix / Windows comp
atibility
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
set hidden
" Allow buffer switching without saving
set iskeyword-=.
" '.' is an end of word designator
set iskeyword-=#
" '#' is an end of word designator
set iskeyword-=" '-' is an end of word designator
" Instead of reverting the cursor to the last position in the buffer, we
" set it to the first line when editing a git commit message
au FileType gitcommit au! BufEnter COMMIT_EDITMSG call setpos('.', [0, 1, 1,
0])
" http://vim.wikia.com/wiki/Restore_cursor_to_file_position_in_previous_edit
ing_session
" Restore cursor to file position in previous editing session
" To disable this, add the following to your .vimrc.before.local file:
" let g:spf13_no_restore_cursor = 1
if !exists('g:spf13_no_restore_cursor')
function! ResCur()
if line("'\"") <= line("$")
normal! g`"
return 1
endif
endfunction
augroup resCur
autocmd!
autocmd BufWinEnter * call ResCur()
augroup END
endif
" Setting up the directories {
set backup
" Backups are nice ...
if has('persistent_undo')
set undofile
" So is persistent undo ...
set undolevels=1000
" Maximum number of changes that can be
undone
set undoreload=10000
" Maximum number lines to save for undo
on a buffer reload
endif
" To disable views add the following to your .vimrc.before.local file:
" let g:spf13_no_views = 1
if !exists('g:spf13_no_views')
" Add exclusions to mkview and loadview
" eg: *.*, svn-commit.tmp
let g:skipview_files = [
\ '\[example pattern\]'
\ ]
endif
" }
" }
" Vim UI {
if filereadable(expand("~/.vim/bundle/vim-colors-solarized/colors/solarized.
vim"))
let g:solarized_termcolors=256
let g:solarized_termtrans=1
let g:solarized_contrast="normal"
let g:solarized_visibility="normal"
color solarized
" Load a colorscheme
endif
set tabpagemax=15
set showmode
set cursorline
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=%<%f\
" Filename
set statusline+=%w%h%m%r
" Options
set statusline+=%{fugitive#statusline()} " Git Hotness
set statusline+=\ [%{&ff}/%Y]
" Filetype
set statusline+=\ [%{getcwd()}]
" Current dir
set statusline+=%=%-14.(%l,%c%V%)\ %p%% " Right aligned file nav info
endif
set backspace=indent,eol,start
set linespace=0
set nu
set showmatch
set incsearch
set hlsearch
set winminheight=0
set ignorecase
set smartcase
set wildmenu
set wildmode=list:longest,full
en longest common part, then all.
set whichwrap=b,s,h,l,<,>,[,]
set scrolljump=5
set scrolloff=3
or
set foldenable
set list
set listchars=tab: \ ,trail:
"
"
"
"
"
"
"
"
"
"
"
" }
" Formatting {
set nowrap
set autoindent
set
set
set
set
"
"
"
"
ine
shiftwidth=4
expandtab
tabstop=4
softtabstop=4
set nojoinspaces
" Prevents inserting two spaces after punctu
ation on a join (J)
set splitright
" Puts new vsplit windows to the right of th
e current
set splitbelow
" Puts new split windows to the bottom of th
e current
"set matchpairs+=<:>
" Match, to be used with %
set pastetoggle=<F12>
" pastetoggle (sane indentation on pastes)
"set comments=sl:/*,mb:*,elx:*/ " auto format comment blocks
" Remove trailing whitespaces and ^M chars
" To disable the stripping of whitespace, add the following to your
" .vimrc.before.local file:
" let g:spf13_keep_trailing_whitespace = 1
autocmd FileType c,cpp,java,go,php,javascript,puppet,python,rust,twig,xml,ym
l,perl autocmd BufWritePre <buffer> if !exists('g:spf13_keep_trailing_whitespace
') | call StripTrailingWhitespace() | endif
"autocmd FileType go autocmd BufWritePre <buffer> Fmt
autocmd BufNewFile,BufRead *.html.twig set filetype=html.twig
autocmd FileType haskell,puppet,ruby,yml setlocal expandtab shiftwidth=2 sof
ttabstop=2
" preceding line best in a plugin but here for now.
autocmd BufNewFile,BufRead *.coffee set filetype=coffee
" Workaround vim-commentary for Haskell
autocmd FileType haskell setlocal commentstring=--\ %s
" Workaround broken colour highlighting in Haskell
autocmd FileType haskell,rust setlocal nospell
" }
" Key (re)Mappings {
" The default leader is '\', but many people prefer ',' as it's in a standar
d
" location. To override this behavior and set it back to '\' (or any other
" character) add the following to your .vimrc.before.local file:
" let g:spf13_leader='\'
if !exists('g:spf13_leader')
let mapleader = ','
else
let mapleader=g:spf13_leader
endif
if !exists('g:spf13_localleader')
let maplocalleader = '_'
else
let maplocalleader=g:spf13_localleader
endif
" Easier moving in tabs and windows
" The lines conflict with the default digraph mapping of <C-K>
" If you prefer that functionality, add the following to your
" .vimrc.before.local file:
" let g:spf13_no_easyWindows = 1
if !exists('g:spf13_no_easyWindows')
map <C-J> <C-W>j<C-W>_
map <C-K> <C-W>k<C-W>_
map <C-L> <C-W>l<C-W>_
map <C-H> <C-W>h<C-W>_
endif
" Wrapped lines goes down/up to next row, rather than next line in file.
noremap j gj
noremap k gk
" End/Start of line motion keys act relative to row/wrap width in the
" presence of `:set wrap`, and relative to line for `:set nowrap`.
" Default vim behaviour is to act relative to text line in both cases
" If you prefer the default behaviour, add the following to your
" .vimrc.before.local file:
" let g:spf13_no_wrapRelMotion = 1
if !exists('g:spf13_no_wrapRelMotion')
" Same for 0, home, end, etc
function! WrapRelativeMotion(key, ...)
let vis_sel=""
if a:0
let vis_sel="gv"
endif
if &wrap
execute "normal!" vis_sel . "g" . a:key
else
execute "normal!" vis_sel . a:key
endif
endfunction
" Map g* keys in Normal, Operator-pending, and Visual+select
noremap $ :call WrapRelativeMotion("$")<CR>
noremap <End> :call WrapRelativeMotion("$")<CR>
noremap 0 :call WrapRelativeMotion("0")<CR>
noremap <Home> :call WrapRelativeMotion("0")<CR>
noremap ^ :call WrapRelativeMotion("^")<CR>
" Overwrite the operator pending $/<End> mappings from above
" to force inclusive motion with :execute normal!
onoremap $ v:call WrapRelativeMotion("$")<CR>
onoremap <End> v:call WrapRelativeMotion("$")<CR>
" Overwrite the Visual+select mode mappings from above
" to ensure the correct vis_sel flag is passed to function
vnoremap $ :<C-U>call WrapRelativeMotion("$", 1)<CR>
vnoremap <End> :<C-U>call WrapRelativeMotion("$", 1)<CR>
vnoremap 0 :<C-U>call WrapRelativeMotion("0", 1)<CR>
vnoremap <Home> :<C-U>call WrapRelativeMotion("0", 1)<CR>
vnoremap ^ :<C-U>call WrapRelativeMotion("^", 1)<CR>
endif
" The following two lines conflict with moving to top and
" bottom of the screen
" If you prefer that functionality, add the following to your
" .vimrc.before.local file:
" let g:spf13_no_fastTabs = 1
if !exists('g:spf13_no_fastTabs')
map <S-H> gT
map <S-L> gt
endif
" Stupid shift key fixes
if !exists('g:spf13_no_keyfixes')
if has("user_commands")
command! -bang -nargs=* -complete=file E e<bang> <args>
command! -bang -nargs=* -complete=file W w<bang> <args>
command! -bang -nargs=* -complete=file Wq wq<bang> <args>
command!
command!
command!
command!
command!
command!
endif
-bang
-bang
-bang
-bang
-bang
-bang
map
map
map
map
<leader>ew
<leader>es
<leader>ev
<leader>et
:e %%
:sp %%
:vsp %%
:tabe %%
let g:NERDShutUp=1
endif
if isdirectory(expand("~/.vim/bundle/matchit.zip"))
let b:match_ignorecase = 1
endif
" }
" OmniComplete {
" To disable omni complete, add the following to your .vimrc.before.loca
l file:
" let g:spf13_no_omni_complete = 1
if !exists('g:spf13_no_omni_complete')
if has("autocmd") && exists("+omnifunc")
autocmd Filetype *
\if &omnifunc == "" |
\setlocal omnifunc=syntaxcomplete#Complete |
\endif
endif
hi Pmenu guifg=#000000 guibg=#F8F8F8 ctermfg=black ctermbg=Lightgra
y
hi PmenuSbar guifg=#8A95A7 guibg=#F8F8F8 gui=NONE ctermfg=darkcyan
ctermbg=lightgray cterm=NONE
hi PmenuThumb guifg=#F8F8F8 guibg=#8A95A7 gui=NONE ctermfg=lightgra
y ctermbg=darkcyan cterm=NONE
" Some convenient mappings
inoremap <expr> <Esc>
pumvisible() ?
if exists('g:spf13_map_cr_omni_complete')
inoremap <expr> <CR>
pumvisible()
endif
inoremap <expr> <Down>
pumvisible() ?
inoremap <expr> <Up>
pumvisible() ?
inoremap <expr> <C-d>
pumvisible() ?
"\<C-e>" : "\<Esc>"
? "\<C-y>" : "\<CR>"
"\<C-n>" : "\<Down>"
"\<C-p>" : "\<Up>"
"\<PageDown>\<C-p>\<C-n>"
: "\<C-d>"
inoremap <expr> <C-u>
pumvisible() ? "\<PageUp>\<C-p>\<C-n>" :
"\<C-u>"
" Automatically open and close the popup menu / preview window
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|en
dif
set completeopt=menu,preview,longest
endif
" }
" Ctags {
set tags=./tags;/,~/.vimtags
" Make tags placed in .git/tags file available in all levels of a reposi
tory
let gitroot = substitute(system('git rev-parse --show-toplevel'), '[\n\r
]', '', 'g')
if gitroot != ''
let &tags = &tags . ',' . gitroot . '/.git/tags'
endif
" }
" AutoCloseTag {
" Make it so AutoCloseTag works for xml and xhtml files as well
au FileType xhtml,xml ru ftplugin/html/autoclosetag.vim
let g:vim_json_syntax_conceal = 0
" }
" PyMode {
" Disable if python support not present
if !has('python')
let g:pymode = 0
endif
if isdirectory(expand("~/.vim/bundle/python-mode"))
let g:pymode_lint_checkers = ['pyflakes']
let g:pymode_trim_whitespaces = 0
let g:pymode_options = 0
let g:pymode_rope = 0
endif
" }
" ctrlp {
if isdirectory(expand("~/.vim/bundle/ctrlp.vim/"))
let g:ctrlp_working_path_mode = 'ra'
nnoremap <silent> <D-t> :CtrlP<CR>
nnoremap <silent> <D-r> :CtrlPMRU<CR>
let g:ctrlp_custom_ignore = {
\ 'dir': '\.git$\|\.hg$\|\.svn$',
\ 'file': '\.exe$\|\.so$\|\.dll$\|\.pyc$' }
" On Windows use "dir" as fallback command.
if WINDOWS()
let s:ctrlp_fallback = 'dir %s /-n /b /s /a-d'
elseif executable('ag')
let s:ctrlp_fallback = 'ag %s --nocolor -l -g ""'
elseif executable('ack-grep')
let s:ctrlp_fallback = 'ack-grep %s --nocolor -f'
elseif executable('ack')
let s:ctrlp_fallback = 'ack %s --nocolor -f'
else
let s:ctrlp_fallback = 'find %s -type f'
endif
let g:ctrlp_user_command = {
\ 'types': {
\ 1: ['.git', 'cd %s && git ls-files . --cached --exclude-st
andard --others'],
\ 2: ['.hg', 'hg --cwd %s locate -I .'],
\ },
\ 'fallback': s:ctrlp_fallback
\ }
if isdirectory(expand("~/.vim/bundle/ctrlp-funky/"))
" CtrlP extensions
let g:ctrlp_extensions = ['funky']
"funky
nnoremap <Leader>fu :CtrlPFunky<Cr>
endif
endif
"}
" TagBar {
if isdirectory(expand("~/.vim/bundle/tagbar/"))
nnoremap <silent> <leader>tt :TagbarToggle<CR>
" If using go please install the gotags program using the following
" go install github.com/jstemmer/gotags
" And make sure gotags is in your path
let g:tagbar_type_go = {
\ 'ctagstype' : 'go',
\ 'kinds'
: [ 'p:package', 'i:imports:1', 'c:constants', 'v
:variables',
\ 't:types', 'n:interfaces', 'w:fields', 'e:embedded', 'm:m
ethods',
\
\
\
\
\
\
\ 'r:constructor', 'f:functions' ],
'sro' : '.',
'kind2scope' : { 't' : 'ctype', 'n' : 'ntype' },
'scope2kind' : { 'ctype' : 't', 'ntype' : 'n' },
'ctagsbin' : 'gotags',
'ctagsargs' : '-sort -silent'
}
endif
"}
" Fugitive {
if isdirectory(expand("~/.vim/bundle/vim-fugitive/"))
nnoremap <silent> <leader>gs :Gstatus<CR>
nnoremap <silent> <leader>gd :Gdiff<CR>
nnoremap <silent> <leader>gc :Gcommit<CR>
nnoremap <silent> <leader>gb :Gblame<CR>
nnoremap <silent> <leader>gl :Glog<CR>
nnoremap <silent> <leader>gp :Git push<CR>
nnoremap <silent> <leader>gr :Gread<CR>
nnoremap <silent> <leader>gw :Gwrite<CR>
nnoremap <silent> <leader>ge :Gedit<CR>
" Mnemonic _i_nteractive
nnoremap <silent> <leader>gi :Git add -p %<CR>
nnoremap <silent> <leader>gg :SignifyToggle<CR>
endif
"}
" YouCompleteMe {
if count(g:spf13_bundle_groups, 'youcompleteme')
let g:acp_enableAtStartup = 0
" enable completion from tags
let g:ycm_collect_identifiers_from_tags_files = 1
" remap Ultisnips for compatibility for YCM
let g:UltiSnipsExpandTrigger = '<C-j>'
let g:UltiSnipsJumpForwardTrigger = '<C-j>'
let g:UltiSnipsJumpBackwardTrigger = '<C-k>'
" Enable omni completion.
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#Comple
teTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#Com
pleteJS
autocmd
autocmd
autocmd
autocmd
FileType
FileType
FileType
FileType
<S-Tab>
"\<C-n>" : "\<Down>"
"\<C-p>" : "\<Up>"
"\<PageDown>\<C-p>\<C
-n>" : "\<C-d>"
inoremap <expr> <C-u>
pumvisible() ? "\<PageUp>\<C-p>\<C-n
>" : "\<C-u>"
else
" <C-k> Complete Snippet
" <C-k> Jump to next snippet point
imap <silent><expr><C-k> neosnippet#expandable() ?
\ "\<Plug>(neosnippet_expand_or_jump)" : (pumvis
ible() ?
\ "\<C-e>" : "\<Plug>(neosnippet_expand_or_jump)
")
smap <TAB> <Right><Plug>(neosnippet_jump_or_expand)
inoremap <expr><C-g> neocomplete#undo_completion()
inoremap <expr><C-l> neocomplete#complete_common_string()
"inoremap <expr><CR> neocomplete#complete_common_string()
" <CR>: close popup
" <s-CR>: close popup and save indent.
inoremap <expr><s-CR> pumvisible() ? neocomplete#smart_close
_popup()"\<CR>" : "\<CR>"
function! CleverCr()
if pumvisible()
if neosnippet#expandable()
let exp = "\<Plug>(neosnippet_expand)"
return exp . neocomplete#smart_close_popup()
else
return neocomplete#smart_close_popup()
endif
else
return "\<CR>"
endif
endfunction
" <CR> close popup and save indent or expand snippet
imap <expr> <CR> CleverCr()
" <C-h>, <BS>: close popup and delete backword char.
inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>"
inoremap <expr><C-y> neocomplete#smart_close_popup()
endif
" <TAB>: completion.
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<TAB>"
" Courtesy of Matteo Cavalleri
function! CleverTab()
if pumvisible()
return "\<C-n>"
endif
let substr = strpart(getline('.'), 0, col('.') - 1)
let substr = matchstr(substr, '[^ \t]*$')
if strlen(substr) == 0
" nothing to match on empty string
return "\<Tab>"
else
" existing text matching
if neosnippet#expandable_or_jumpable()
return "\<Plug>(neosnippet_expand_or_jump)"
else
return neocomplete#start_manual_complete()
endif
endif
endfunction
imap <expr> <Tab> CleverTab()
" }
" Enable heavy omni completion.
if !exists('g:neocomplete#sources#omni#input_patterns')
let g:neocomplete#sources#omni#input_patterns = {}
endif
let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\
|\h\w*::'
let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|
\h\w*::'
let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]
\%(\.\|->\)'
let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\
t]\%(\.\|->\)\|\h\w*::'
let g:neocomplete#sources#omni#input_patterns.ruby = '[^. *\t]\.\h\w
*\|\h\w*::'
" }
" neocomplcache {
elseif count(g:spf13_bundle_groups, 'neocomplcache')
let g:acp_enableAtStartup = 0
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_enable_camel_case_completion = 1
let g:neocomplcache_enable_smart_case = 1
let g:neocomplcache_enable_underbar_completion = 1
let g:neocomplcache_enable_auto_delimiter = 1
let g:neocomplcache_max_list = 15
let g:neocomplcache_force_overwrite_completefunc = 1
" Define dictionary.
let g:neocomplcache_dictionary_filetype_lists = {
\ 'default' : '',
\ 'vimshell' : $HOME.'/.vimshell_hist',
\ 'scheme' : $HOME.'/.gosh_completions'
\ }
" Define keyword.
if !exists('g:neocomplcache_keyword_patterns')
let g:neocomplcache_keyword_patterns = {}
endif
let g:neocomplcache_keyword_patterns._ = '\h\w*'
" Plugin key-mappings {
" These two lines conflict with the default digraph mapping of <
C-K>
imap <C-k> <Plug>(neosnippet_expand_or_jump)
smap <C-k> <Plug>(neosnippet_expand_or_jump)
if exists('g:spf13_noninvasive_completion')
inoremap <CR> <CR>
<S-Tab>
"\<C-n>" : "\<Down>"
"\<C-p>" : "\<Up>"
"\<PageDown>\<C-p>\<C
-n>" : "\<C-d>"
inoremap <expr> <C-u>
pumvisible() ? "\<PageUp>\<C-p>\<C-n
>" : "\<C-u>"
else
imap <silent><expr><C-k> neosnippet#expandable() ?
\ "\<Plug>(neosnippet_expand_or_jump)" : (pumvis
ible() ?
\ "\<C-e>" : "\<Plug>(neosnippet_expand_or_jump)
")
smap <TAB> <Right><Plug>(neosnippet_jump_or_expand)
inoremap <expr><C-g> neocomplcache#undo_completion()
inoremap <expr><C-l> neocomplcache#complete_common_string()
"inoremap <expr><CR> neocomplcache#complete_common_string()
function! CleverCr()
if pumvisible()
if neosnippet#expandable()
let exp = "\<Plug>(neosnippet_expand)"
return exp . neocomplcache#close_popup()
else
return neocomplcache#close_popup()
endif
else
return "\<CR>"
endif
endfunction
" <CR> close popup and save indent or expand snippet
imap <expr> <CR> CleverCr()
" <CR>: close popup
" <s-CR>: close popup and save indent.
inoremap <expr><s-CR> pumvisible() ? neocomplcache#close_pop
up()"\<CR>" : "\<CR>"
"inoremap <expr><CR> pumvisible() ? neocomplcache#close_popu
p() : "\<CR>"
" <C-h>, <BS>: close popup and delete backword char.
inoremap <expr><BS> neocomplcache#smart_close_popup()."\<C-h
>"
inoremap <expr><C-y> neocomplcache#close_popup()
endif
" <TAB>: completion.
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<TAB>"
" }
" Enable omni completion.
FileType
FileType
FileType
FileType
let g:spf13_no_omni_complete = 1
elseif !exists('g:spf13_no_omni_complete')
" Enable omni-completion.
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#Comple
teTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#Com
pleteJS
autocmd
autocmd
autocmd
autocmd
FileType
FileType
FileType
FileType
endif
" }
" Snippets {
if count(g:spf13_bundle_groups, 'neocomplcache') ||
\ count(g:spf13_bundle_groups, 'neocomplete')
" Use honza's snippets.
let g:neosnippet#snippets_directory='~/.vim/bundle/vim-snippets/snip
pets'
" Enable neosnippet snipmate compatibility mode
let g:neosnippet#enable_snipmate_compatibility = 1
" For snippet_complete marker.
if !exists("g:spf13_no_conceal")
if has('conceal')
set conceallevel=2 concealcursor=i
endif
endif
" Enable neosnippets when using go
endif
" }
" }
" 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
if !exists("g:spf13_no_big_font")
if LINUX() && has("gui_running")
set guifont=Andale\ Mono\ Regular\ 12,Menlo\ Regular\ 11,Consola
s\ Regular\ 12,Courier\ New\ Regular\ 14
elseif OSX() && has("gui_running")
set guifont=Andale\ Mono\ Regular:h12,Menlo\ Regular:h11,Consola
s\ Regular:h12,Courier\ New\ Regular:h14
elseif WINDOWS() && has("gui_running")
set guifont=Andale_Mono:h10,Menlo:h10,Consolas:h10,Courier_New:h
10
endif
endif
else
if &term == 'xterm' || &term == 'screen'
set t_Co=256
" Enable 256 colors to stop the CSApprox war
ning and make xterm vim shine
endif
"set term=builtin_ansi
" Make arrow and other keys work
endif
" }
" Functions {
" Initialize directories {
function! InitializeDirectories()
let parent = $HOME
let prefix = 'vim'
let dir_list = {
\ 'backup': 'backupdir',
\ 'views': 'viewdir',
\ 'swap': 'directory' }
if has('persistent_undo')
let dir_list['undo'] = 'undodir'
endif
" To specify a different directory in which to place the vimbackup,
" vimviews, vimundo, and vimswap files/directories, add the following to
" your .vimrc.before.local file:
" let g:spf13_consolidated_directory = <full path to desired directory
>
" eg: let g:spf13_consolidated_directory = $HOME . '/.vim/'
if exists('g:spf13_consolidated_directory')
let common_dir = g:spf13_consolidated_directory . prefix
else
let common_dir = parent . '/.' . prefix
endif
buftype=nofile
bufhidden=delete
nobuflisted
noswapfile
nowrap
filetype=shell
syntax=shell