Created
March 9, 2016 13:53
-
-
Save andersevenrud/25bcc7720ffecd26efaa to your computer and use it in GitHub Desktop.
vimrc
This file contains hidden or 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
" Enable filetype plugin | |
filetype plugin on | |
filetype indent on | |
" Filetypes and encoding | |
set fileformats=unix,dos,mac | |
set encoding=utf-8 | |
set wildignore=.svn,CVS,*.o,*.a,*.class,*.mo,*.la,*.so,*.obj,*.swp,*.jpg,*.png,*.xpm,*.gif | |
" General behaviour | |
set autochdir " CWD is always same as current file | |
set ai " Autoident | |
"set si " Smartident | |
set nowrap " Do not wrap lines | |
set nocompatible " ViM settings instead of Vi | |
set smartcase " Smart casing when searching | |
set ignorecase " ... or ignore casing | |
set hlsearch " Highlight matches | |
set incsearch " Modern (wrapping) search | |
set history=500 " Long undo history | |
set tw=1000 | |
" make backspace a more flexible | |
set backspace=indent,eol,start | |
" Disable sounds | |
set vb t_vb=" | |
set noerrorbells | |
set visualbell | |
" Tabbing, Default to 2 spaces as tabs | |
set cino=:0g0(0,W2 | |
set expandtab | |
set tabstop=2 | |
set softtabstop=2 | |
set shiftwidth=2 | |
" Filetype sesific | |
"au FileType python setlocal tabstop=4 softtabstop=4 shiftwidth=4 | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" User interface setings | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
syntax on | |
colorscheme desert | |
set showmatch " Show matching braces when over one | |
set ruler " Always show current position | |
set number " Always show line-numbers | |
set numberwidth=5 " Line-number margin width | |
set mousehide " Do not show mouse while typing | |
set antialias " Pretty fonts | |
set t_Co=256 " 256-color palletes | |
set background=dark " Dark background variation of theme | |
set guifont=Monaco\ 7.5 " Monospaced small font | |
set guioptions-=T " TODO | |
set guioptions+=c " TODO Console messages | |
set linespace=0 " Don't insert any extra pixel lines | |
set lazyredraw " Don't redraw while running macros | |
set wildmenu " Wild menu | |
set wildmode=longest,list,full " Wild menu options | |
" Display special characters and helpers | |
set list | |
" Show < or > when characters are not displayed on the left or right. | |
" Also show tabs and trailing spaces. | |
set list listchars=nbsp:¬,tab:>-,trail:.,precedes:<,extends:> | |
" Autocompletion | |
set ofu=syntaxcomplete#Complete | |
set completeopt+=longest,menuone | |
highlight Pmenu guibg=brown gui=bold | |
let g:SuperTabDefaultCompletionType = "<C-x><C-o>" | |
" Statusline | |
set statusline=%F%m%r%h%w[%L][%{&ff}]%y[%p%%][%04l,%04v] | |
" | | | | | | | | | | | | |
" | | | | | | | | | | + current | |
" | | | | | | | | | | column | |
" | | | | | | | | | +-- current line | |
" | | | | | | | | +-- current % into file | |
" | | | | | | | +-- current syntax in | |
" | | | | | | | square brackets | |
" | | | | | | +-- current fileformat | |
" | | | | | +-- number of lines | |
" | | | | +-- preview flag in square brackets | |
" | | | +-- help flag in square brackets | |
" | | +-- readonly flag in square brackets | |
" | +-- rodified flag in square brackets | |
" +-- full path to file in the buffer | |
" Highlight trailing whitespaces (+ keybindings below) | |
highlight ExtraWhitespace ctermbg=red guibg=red | |
highlight ExtraWhitespace ctermbg=darkgreen guibg=darkgreen | |
au InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/ | |
au InsertLeave * match ExtraWhitespace /\s\+$/ | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Key mappings | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
inoremap <expr> <Esc> pumvisible() ? "\<C-e>" : "\<Esc>" | |
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" | |
inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>" | |
inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>" | |
inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>" | |
inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>" | |
" RESIZE with numlock +-/* | |
if bufwinnr(1) | |
map + <C-W>+ | |
map - <C-W>- | |
endif | |
"<home> toggles between start of line and start of text | |
imap <khome> <home> | |
nmap <khome> <home> | |
inoremap <silent> <home> <C-O>:call HHome()<CR> | |
nnoremap <silent> <home> :call HHome()<CR> | |
function! HHome() | |
let curcol = wincol() | |
normal ^ | |
let newcol = wincol() | |
if newcol == curcol | |
normal 0 | |
endif | |
endfunction | |
"<end> goes to end of screen before end of line | |
imap <kend> <end> | |
nmap <kend> <end> | |
inoremap <silent> <end> <C-O>:call HEnd()<CR> | |
nnoremap <silent> <end> :call HEnd()<CR> | |
function! HEnd() | |
let curcol = wincol() | |
normal g$ | |
let newcol = wincol() | |
if newcol == curcol | |
normal $ | |
endif | |
"http://www.pixelbeat.org/patches/vim-7.0023-eol.diff | |
if virtcol(".") == virtcol("$") - 1 | |
normal $ | |
endif | |
endfunction | |
"Ctrl-{up,down} to scroll. (gvim) | |
if has("gui_running") | |
nmap <C-up> <C-y> | |
imap <C-up> <C-o><C-y> | |
nmap <C-down> <C-e> | |
imap <C-down> <C-o><C-e> | |
endif | |
if bufwinnr(1) | |
map <kPlus> <C-W>+ | |
map <kMinus> <C-W>- | |
map <kDivide> <c-w>< | |
map <kMultiply> <c-w>> | |
endif | |
" For highlighting trailing whitespaces | |
nnoremap <Leader>wn :match ExtraWhitespace /^\s* \s*\<Bar>\s\+$/<CR> | |
nnoremap <Leader>wf :match<CR> | |
" space / shift-space scroll in normal mode | |
noremap <S-space> <C-b> | |
noremap <space> <C-f> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment