You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

221 lines
6.3 KiB
VimL

" Use pathogen to use search for plug-ins
" call pathogen#infect()
" Basics
set t_Co=256 " Use 256 colors
set encoding=utf8 " Use utf-8 encoding
set nocompatible " Get out of vi-compatible mode
set background=dark " I am using a dark background
syntax on " Syntax highlighting on
call plug#begin('~/.vim/plugged')
Plug 'SirVer/ultisnips'
Plug 'editorconfig/editorconfig-vim'
Plug 'fatih/vim-go', { 'tag': 'v1.21' }
Plug 'hashivim/vim-hashicorp-tools'
Plug 'prettier/vim-prettier', { 'tag': '0.2.7' }
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'vim-scripts/CSApprox'
Plug 'dense-analysis/ale', { 'tag': 'v2.6.0' }
Plug 'rust-lang/rust.vim'
Plug 'pangloss/vim-javascript'
Plug 'tpope/vim-surround'
Plug 'Quramy/tsuquyomi'
Plug 'sheerun/vim-wombat-scheme'
Plug 'leafgarland/typescript-vim'
Plug 'cespare/vim-toml'
call plug#end()
" General
"colorscheme solarized
colorscheme wombat
" setlocal spell spelllang=en_us
set fileformats=unix,dos,mac " support all three, in this order
set nostartofline " leave my cursor where it was
set history=10000
set autoread " Set to auto read when a file is changed from the outside
set autochdir " Change current directory to be directory of current file
set colorcolumn=81
"set foldmethod=syntax
" Have tab complete work more like bash
set wildmenu
set wildmode=list:longest
set backspace=start,eol,indent
set whichwrap+=<,>,[,]
set magic "Set magic on, for regular expressions
" Turn on omni completion. Must have `filetype plugin on` to use.
" To use, in insert mode press ctrl+x ctrl+o
set ofu=syntaxcomplete#Complete
" Mappings
let mapleader=","
let g:mapleader=","
map <leader>rl :source $MYVIMRC<CR>
map <leader>nt :NERDTreeToggle<CR>
map <leader>ss :setlocal spell!<CR>
map <leader>ct :TlistToggle<CR> " taglist shortcut
map <leader>ts :%s/\s\s*$//g<CR> " trim trailing whitespace
nnoremap <leader>rc :split $MYVIMRC<cr>
" Use space to toggle folding
nnoremap <space> za
if bufwinnr(1)
map <leader>+ <C-W><
map <leader>- <C-W>>
endif
map <F12> ggVGg? " apply rot13 for people snooping over shoulder, good fun
" Nerdtree settings
let NERDTreeDirArrows=1
let NERDTreeIgnore = ['\.pyc$', '\.swp$']
let g:ale_linters = {
\ 'javascript': ['eslint']
\}
"let g:ale_fixers = {
"\ 'javascript': ['prettier'],
"\}
let g:rustfmt_autosave = 1
" Close all open buffers on entering a window if the only
" buffer that's left is the NERDTree buffer
function! s:CloseIfOnlyNerdTreeLeft()
if exists("t:NERDTreeBufName")
if bufwinnr(t:NERDTreeBufName) != -1
if winnr("$") == 1
q
endif
endif
endif
endfunction
"function! FoldText()
" let nl = v:foldend - v:foldstart + 1
" let linetext = getline(v:foldstart)
" let txt = linetext . ' ' . nl . ' lines '
" return txt
"endfunction
"set foldtext=FoldText()
" Vim Tabs
map <leader>tt :tabnew<cr>
map <leader>te :tabedit
map <leader>tc :tabclose<cr>
map <leader>to :tabonly<cr>
map <leader>tn :tabNext<cr>
map <leader>tp :tabprevious<cr>
map <leader>tf :tabfirst<cr>
map <leader>tl :tablast<cr>
map <leader>tm :tabmove
" Tabs
set expandtab " expandtab converts tabs to spaces. For tabs, set noexpandtab
set shiftwidth=4 " unify
set softtabstop=4 " Pressing backspace works like tabs
set tabstop=4 " real tabs should be 4, but they will show with set list on
" Indent
set autoindent "Auto indent
set smartindent "Smart indent
set copyindent " above all -- follow the conventions laid before us
set preserveindent " above all -- follow the conventions laid before us
set shiftround " when at 3 spaces, and I hit '>', go to 4, not 5
filetype plugin on " load filetype plug-ins and indent settings
filetype indent on " load filetype plug-ins and indent settings
" UI
set showcmd " show the command being typed
set ruler " Always show current positions along the bottom
set number relativenumber " Use relative line numbers
set numberwidth=4 " If we have over 9999 lines
set hidden " you can change buffer without saving
"set mouse=a " use mouse everywhere
" No sound on errors
set noerrorbells " don't make noise
set novisualbell " don't blink
set t_vb=
set tm=500
" Visual Cues
set showmatch " show matching brackets
set matchtime=2 " how many tenths of a second to blink matching brackets for
set nohlsearch " do not highlight searched for phrases
set incsearch " BUT do highlight as you type you search phrase
set scrolloff=5 " Keep 5 lines (top/bottom) for scope
set sidescrolloff=5 " Keep 5 lines at the size
set list " we do what to show tabs, to ensure we get them out of my files
set listchars=tab:\ \ ,trail:… " show tabs and trailing whitespace
" ~\file[+] [type] [line,column] [number of lines]
set statusline=%F%m%r%h%w\ [%Y]\ [%03l,%03v]\ [%L]
"set statusline+=%#warningmsg#
"set statusline+=%{SyntasticStatuslineFlag()}
"set statusline+=%*
set laststatus=2 " always show the status line
" Text Formatting/Layout
set nowrap " do not wrap line
set ignorecase " case insensitive by default
set smartcase " if there are caps, go case-sensitive
set completeopt=menu,longest,preview " improve the way autocomplete works
autocmd WinEnter * call s:CloseIfOnlyNerdTreeLeft()
augroup jade
au! BufRead,BufNewFile *.jade set syntax=jade
augroup END
augroup javascript
au! BufRead,BufNewFile *.js.flow set filetype=javascript
augroup END
augroup ruby
au! BufRead,BufNewFile *.cap set syntax=ruby
augroup END
augroup styl
au! BufRead,BufNewFile *.styl set syntax=stylus
augroup END
augroup conkyrc
au! BufRead,BufNewFile *.conkyrc set syntax=conkyrc
augroup END
augroup vcl
au! BufRead,BufNewFile *.vcl set filetype=vcl
augroup END
augroup mustache
au! BufRead,BufNewFile *.mustache set filetype=mustache
au! BufRead,BufNewFile *.mu set filetype=mustache
au! BufRead,BufNewFile *.hjs set filetype=mustache
augroup END
augroup coffee
au! BufRead,BufNewFile *.coffee set filetype=coffee
augroup END
augroup markdown
au! BufRead,BufNewFile *.md set filetype=markdown
augroup END
augroup COMMIT_EDITMSG
au! BufRead,BufNewFile COMMIT_EDITMSG set filetype=gitcommit
augroup END
augroup typescript
au! BufRead,BufNewFile *.ts set filetype=typescript
augroup END