Last active
January 20, 2019 14:19
-
-
Save krcrawford/2394c7fba1c8c1b85b88c19eee2e028c to your computer and use it in GitHub Desktop.
A rolling copy of my .vimrc file
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" Basic configuration. | |
set nomodeline " for security reasons | |
set nocompatible " be iMproved, required | |
filetype off " required | |
" set the runtime path to include Vundle and initialize | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
" alternatively, pass a path where Vundle should install plugins | |
"call vundle#begin('~/some/path/here') | |
" let Vundle manage Vundle, required | |
Plugin 'gmarik/Vundle.vim' | |
" Plugins | |
" Color schemes | |
Plugin 'altercation/vim-colors-solarized' | |
Plugin 'flazz/vim-colorschemes' | |
Plugin 'rainglow/vim' | |
" PHP PSR-2 fixer | |
Plugin 'stephpy/vim-php-cs-fixer' | |
" VIM syntastic | |
Plugin 'vim-syntastic/syntastic' | |
" NERDTree | |
Plugin 'scrooloose/nerdtree' | |
" git tool | |
Plugin 'tpope/vim-fugitive' | |
" xdebug client | |
Plugin 'joonty/vdebug' | |
Plugin 'lumiliet/vim-twig' | |
" All of your Plugins must be added before the following line | |
call vundle#end() " required | |
filetype plugin indent on " required | |
" To ignore plugin indent changes, instead use: | |
"filetype plugin on | |
" | |
" Brief help | |
" :PluginList - list configured plugins | |
" :PluginInstall(!) - install (update) plugins | |
" :PluginSearch(!) foo - search (or refresh cache first) for foo | |
" :PluginClean(!) - confirm (or auto-approve) removal of unused plugins | |
" | |
" see :h vundle for more details or wiki for FAQ | |
" Put your non-Plugin stuff after this line | |
" Set leader to comma | |
let mapleader="," | |
let maplocalleader="," | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Color | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
let g:solarized_termcolors=256 | |
let g:solarized_termtrans=1 | |
let g:solarized_menu=0 | |
let g:solarized_italic=0 | |
set t_Co=256 | |
syntax enable | |
set background=dark | |
colorscheme molokai | |
" set background=dark | |
" colorscheme Monokai | |
" Force 256 color mode if available | |
" set t_Co=256 | |
"--------------------------------------------------------------- | |
" GUI Settings { | |
if has("gui_running") | |
exe "colorscheme " . g:colors_name | |
set columns=80 | |
" set guifont=DejaVu\ Sans\ Mono\ 8 " set in ~/.vimrc | |
" set guioptions=ce | |
" || | |
" |+-- use simple dialogs rather than pop-ups | |
" + use GUI tabs, not console style tabs | |
set lines=40 | |
set mousehide " hide the mouse cursor when typing | |
endif | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => VIM user interface | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Bind powerline | |
set rtp+=~/Library/Python/2.7/lib/python/site-packages/powerline/bindings/vim/ | |
" NerdTree | |
map <leader>n :NERDTreeToggle<CR> | |
map <C-e> <plug>NERDTreeTabsToggle<CR> | |
map <leader>nf :NERDTreeFind<CR> | |
nmap <leader>nt :NERDTreeFind<CR> | |
let NERDTreeShowBookmarks=1 | |
let NERDTreeIgnore=['\.py[cd]$', '\~$', '\.swo$', '\.swp$', '^\.git$', '^\.hg$', '^\.svn$', '\.bzr$'] | |
let NERDTreeChDirMode=0 | |
let NERDTreeQuitOnOpen=0 | |
let NERDTreeMouseMode=2 | |
let NERDTreeShowHidden=1 | |
let NERDTreeKeepTreeInNewTab=1 | |
let g:nerdtree_tabs_open_on_gui_startup=0 | |
" Show line numbers to left | |
set number | |
" Turn on list | |
" Make tabs and trailing space visible on ,l | |
set listchars=tab:>-,trail:. | |
set list | |
nmap <silent> <leader>l :set invlist list?<cr> | |
" Always show current position | |
set ruler | |
" Height of the command bar | |
set cmdheight=2 | |
" Ignore case when searching | |
set ignorecase | |
" When searching, try to be smart about cases | |
set smartcase | |
" Highlight search results | |
set hlsearch | |
" Makes search act like search in modern browsers | |
set incsearch | |
" Show matching brackets when text indicator is over them | |
set showmatch | |
" How many tenths of a second to blink when mathcing brackets | |
set mat=2 | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Colors and Fonts | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
let g:airline_powerline_fonts=1 | |
" let g:airline#extensions#tabline#enabled=1 | |
" let g:airline#extensions#tabline#left_sep = ' ' | |
" let g:airline#extensions#tabline#left_alt_sep = '|' | |
" Enable syntax highlighting | |
syntax enable | |
" Stop svg from clogging up vim | |
" set synmaxcol=250 | |
" Set utf8 as standard encoding and en_US as the standard language | |
set encoding=utf8 | |
" Use Unix as the standard file type | |
set ffs=unix,dos,mac | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Text, tab and indent related | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Be smart when using tabs ;) | |
set smarttab | |
" Tabs: default is four spaces. | |
set expandtab | |
set tabstop=4 | |
set softtabstop=0 | |
set shiftwidth=4 " for autoindent | |
" set shiftround " indent to a multiple of shiftwidth | |
set autoindent | |
set ai "Auto indent | |
set si "Smart indent | |
set wrap "Wrap lines | |
"""""""""""""""""""""""""""""" | |
" => Status line | |
"""""""""""""""""""""""""""""" | |
" Always show the status line | |
set laststatus=2 | |
"""""""""""""""""""""""""" | |
" Serious Mode | |
"""""""""""""""""""""""""" | |
noremap <Up> <NOP> | |
noremap <Down> <NOP> | |
noremap <Left> <NOP> | |
noremap <Right> <NOP> | |
inoremap <Up> <NOP> | |
inoremap <Down> <NOP> | |
inoremap <Left> <NOP> | |
inoremap <Right> <NOP> | |
set statusline+=%#warningmsg# | |
set statusline+=%{SyntasticStatuslineFlag()} | |
set statusline+=%* | |
let g:syntastic_always_populate_loc_list = 1 | |
let g:syntastic_auto_loc_list = 1 | |
let g:syntastic_check_on_open = 1 | |
let g:syntastic_check_on_wq = 1 | |
let g:syntastic_php_checkers = ['php', 'phplint'] | |
let g:php_cs_fixer_rules = "@Symfony" | |
" phpcscodefixer | |
let g:php_cs_fixer_path = "/usr/local/bin/php-cs-fixer" " define the path to the php-cs-fixer.phar | |
nnoremap <silent><leader>pcd :call PhpCsFixerFixDirectory()<CR> | |
nnoremap <silent><leader>pcf :call PhpCsFixerFixFile()<CR>:o<CR> | |
autocmd filetype crontab setlocal nobackup nowritebackup | |
autocmd BufRead,BufNewFile *.vue set filetype=html | |
" XML formatter | |
function! DoFormatXML() range | |
" Save the file type | |
let l:origft = &ft | |
.. | |
" Clean the file type | |
set ft= | |
.. | |
" Add fake initial tag (so we can process multiple top-level elements) | |
exe ":let l:beforeFirstLine=" . a:firstline . "-1" | |
if l:beforeFirstLine < 0 | |
let l:beforeFirstLine=0 | |
endif | |
exe a:lastline . "put ='</PrettyXML>'" | |
exe l:beforeFirstLine . "put ='<PrettyXML>'" | |
exe ":let l:newLastLine=" . a:lastline . "+2" | |
if l:newLastLine > line('$') | |
let l:newLastLine=line('$') | |
endif | |
" Remove XML header | |
exe ":" . a:firstline . "," . a:lastline . "s/<\?xml\\_.*\?>\\_s*//e" | |
" Recalculate last line of the edited code | |
let l:newLastLine=search('</PrettyXML>') | |
" Execute external formatter | |
exe ":silent " . a:firstline . "," . l:newLastLine . "!xmllint --noblanks --format --recover -" | |
" Recalculate first and last lines of the edited code | |
let l:newFirstLine=search('<PrettyXML>') | |
let l:newLastLine=search('</PrettyXML>') | |
" Get inner range | |
let l:innerFirstLine=l:newFirstLine+1 | |
let l:innerLastLine=l:newLastLine-1 | |
" Remove extra unnecessary indentation | |
exe ":silent " . l:innerFirstLine . "," . l:innerLastLine "s/^ //e" | |
" Remove fake tag | |
exe l:newLastLine . "d" | |
exe l:newFirstLine . "d" | |
" Put the cursor at the first line of the edited code | |
exe ":" . l:newFirstLine | |
" Restore the file type | |
exe "set ft=" . l:origft | |
endfunction | |
command! -range=% FormatXML <line1>,<line2>call DoFormatXML() | |
nmap <silent> <leader>x :%FormatXML<CR> | |
vmap <silent> <leader>x :FormatXML<CR> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment