134 lines
3.1 KiB
Text
134 lines
3.1 KiB
Text
" Don't try to be vi compatible
|
|
set nocompatible
|
|
|
|
" Helps force plugins to load correctly when it is turned back on below
|
|
filetype off
|
|
|
|
" For plugins to load correctly
|
|
filetype plugin indent on
|
|
|
|
" TODO: Pick a leader key
|
|
let mapleader = ","
|
|
|
|
" Security
|
|
set modelines=0
|
|
|
|
" Show line numbers
|
|
set number
|
|
autocmd InsertEnter * :set norelativenumber
|
|
autocmd InsertLeave * :set relativenumber
|
|
|
|
" Show file stats
|
|
set ruler
|
|
|
|
" Blink cursor on error instead of beeping (grr)
|
|
set visualbell
|
|
|
|
" Encoding
|
|
set encoding=utf-8
|
|
|
|
" Whitespace
|
|
set wrap
|
|
set textwidth=88
|
|
set formatoptions=tcqrn1
|
|
set tabstop=2
|
|
set shiftwidth=2
|
|
set softtabstop=2
|
|
set expandtab
|
|
set noshiftround
|
|
|
|
" Cursor motion
|
|
set scrolloff=3
|
|
set backspace=indent,eol,start
|
|
set matchpairs+=<:> " use % to jump between pairs
|
|
runtime! macros/matchit.vim
|
|
|
|
" Move up/down editor lines
|
|
nnoremap j gj
|
|
nnoremap k gk
|
|
|
|
" Allow hidden buffers
|
|
set hidden
|
|
|
|
" Rendering
|
|
set ttyfast
|
|
|
|
" Status bar
|
|
set laststatus=2
|
|
|
|
" Last line
|
|
set showmode
|
|
set showcmd
|
|
|
|
" Searching
|
|
nnoremap / /\v
|
|
vnoremap / /\v
|
|
set hlsearch
|
|
set incsearch
|
|
set ignorecase
|
|
set smartcase
|
|
set showmatch
|
|
map <leader><space> :let @/=''<cr> " clear search
|
|
|
|
" Remap help key.
|
|
inoremap <F1> <ESC>:set invfullscreen<CR>a
|
|
nnoremap <F1> :set invfullscreen<CR>
|
|
vnoremap <F1> :set invfullscreen<CR>
|
|
|
|
" Textmate holdouts
|
|
|
|
" Formatting
|
|
map <leader>q gqip
|
|
|
|
" Visualize tabs and newlines
|
|
set listchars=tab:▸\ ,eol:¬
|
|
" Uncomment this to enable by default:
|
|
" set list " To enable by default
|
|
" Or use your leader key + l to toggle on/off
|
|
map <leader>l :set list!<CR> " Toggle tabs and EOL
|
|
|
|
" Color scheme (terminal)
|
|
"set t_Co=256
|
|
"let g:solarized_termcolors=256
|
|
"let g:solarized_termtrans=1
|
|
" put https://raw.github.com/altercation/vim-colors-solarized/master/colors/solarized.vim
|
|
" in ~/.vim/colors/ and uncomment:
|
|
"syntax enable
|
|
set background=dark "light " replace dark with light for light mode
|
|
colorscheme solarized
|
|
|
|
|
|
set noeb vb t_vb=
|
|
au GUIEnter * set vb t_vb=
|
|
|
|
function! InsertStatuslineColor(mode)
|
|
if a:mode == 'i'
|
|
hi statusline guibg=Cyan ctermfg=6 guifg=Black ctermbg=0
|
|
elseif a:mode == 'r'
|
|
hi statusline guibg=Purple ctermfg=5 guifg=Black ctermbg=0
|
|
else
|
|
hi statusline guibg=DarkRed ctermfg=1 guifg=Black ctermbg=0
|
|
endif
|
|
endfunction
|
|
|
|
au InsertEnter * call InsertStatuslineColor(v:insertmode)
|
|
au InsertLeave * hi statusline guibg=DarkGrey ctermfg=8 guifg=White ctermbg=15
|
|
|
|
" default the statusline to green when entering Vim
|
|
hi statusline guibg=DarkGrey ctermfg=8 guifg=White ctermbg=15
|
|
|
|
" Formats the statusline
|
|
set statusline=%f " file name
|
|
set statusline+=[%{strlen(&fenc)?&fenc:'none'}, "file encoding
|
|
set statusline+=%{&ff}] "file format
|
|
set statusline+=%y "filetype
|
|
set statusline+=%h "help file flag
|
|
set statusline+=%m "modified flag
|
|
set statusline+=%r "read only flag
|
|
|
|
|
|
set statusline+=\ %= " align left
|
|
set statusline+=Line:%l/%L[%p%%] " line X of Y [percent of file]
|
|
set statusline+=\ Col:%c " current column
|
|
set statusline+=\ Buf:%n " Buffer number
|
|
set statusline+=\ [%b][0x%B]\ " ASCII and byte code under cursor
|