Skip to content

Instantly share code, notes, and snippets.

@ngollan
Last active May 7, 2019 11:17
Show Gist options
  • Select an option

  • Save ngollan/1438084 to your computer and use it in GitHub Desktop.

Select an option

Save ngollan/1438084 to your computer and use it in GitHub Desktop.
vimrc
unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim
silent! call pathogen#infect()
" what's the worst that could happen in 2019…
set encoding=utf-8
set fileencoding=utf-8
set termencoding=utf-8
map ,kk m':%s/[<space><tab><c-v><c-m>]\+$//e<NL>''
" per default, use syntax highlighting
syntax on
set sw=4
set ts=4
set noexpandtab
set modeline
" language specific rules if possible
if has("autocmd")
" autoindent
filetype indent on
au BufRead,BufNewFile *.god set filetype=ruby
au BufRead,BufNewFile *.proto set filetype=proto | set ai | set cin | set ts=4 | set sw=4 | set noexpandtab
au BufNewFile,BufRead *.rtex let b:eruby_subtype="tex" | set filetype=eruby
au BufRead,BufNewFile * if &ft == 'python' | set ts=4 | set sw=4 | endif
au BufRead,BufNewFile * if &ft == 'ruby' | set ts=2 | set sw=2 | set expandtab | endif
au BufRead,BufNewFile * if &ft == 'treetop' | set ts=2 | set sw=2 | set expandtab | endif
au BufRead,BufNewFile * if &ft == 'yaml' | set ts=2 | set sw=2 | set expandtab | endif
au BufRead,BufNewFile * if &ft == 'racc' | set ts=2 | set sw=2 | set expandtab | endif
au BufRead,BufNewFile * if &ft == 'eruby' | set ts=2 | set sw=2 | set expandtab | endif
au BufRead,BufNewFile * if &ft == 'javascript' | set ts=2 | set sw=2 | set expandtab | endif
au BufRead,BufNewFile * if &ft == 'scss' | set ts=2 | set sw=2 | set expandtab | endif
" au FileType ruby let g:Tlist_Ctags_Cmd = 'ripper-tags' | let g:rails_ctags_arguments = ['--recursive']
endif
" set up line numbers to be shown white in a grey gutter if the terminal
" is wide enough. ctrl+n toggles line numbers.
nmap <C-N><C-N> :set invnumber <CR>
set pastetoggle=<C-P>
if &columns >= 90
set number
endif
set cursorline!
" toggle line wrap
nmap <C-L>w :set wrap!<CR>
" navigate displayed lines instead of file lines
nnoremap j gj
nnoremap k gk
vnoremap j gj
vnoremap k gk
nnoremap <Down> gj
nnoremap <Up> gk
vnoremap <Down> gj
vnoremap <Up> gk
inoremap <Down> <C-o>gj
inoremap <Up> <C-o>gk
" always show status line
set laststatus=2
set statusline=%*
set statusline +=%1*\ (%n\ %y)%* "buffer number and file type
"set statusline +=%1*%{&ff}%* "file format
set statusline +=%4*\ %{fugitive#statusline()}%*
set statusline +=%<%f "filename (relative)
set statusline +=%3*%m%* "modified flag
set statusline +=%=%5l "current line
set statusline +=/%L "total lines
set statusline +=%4c\ "column number
set statusline +=%2*u%04B\%* "character under cursor
" bash-like tab completion
set wildmode=longest:full
set wildmenu
" and now disable mouse support
set mouse=
if (&term == "xterm" || &term =~ "256color" || &term == "screen") && &bg == "light"
set t_Co=256
hi Normal ctermbg=230
hi LineNr guifg=white guibg=darkgrey
hi LineNr ctermfg=white ctermbg=grey
hi CursorLine cterm=NONE ctermbg=white
" make errors visible in the cursor line
hi Error guifg=black ctermfg=black cterm=underline
" diff: override change BG
hi DiffText term=reverse cterm=bold ctermbg=225 gui=bold guibg=LightMagenta
hi User1 ctermfg=gray ctermbg=black guifg=gray guibg=black
hi User2 ctermfg=yellow ctermbg=black guifg=yellow guibg=black
hi User3 ctermfg=red ctermbg=black guifg=red guibg=black
hi User4 ctermfg=cyan ctermbg=black guifg=cyan guibg=black
elseif &term == "linux"
set cursorline!
hi PreProc ctermfg=white
else
set cursorline!
set bg=light
hi Normal guibg=lightyellow ctermfg=black ctermbg=white
endif
" display visual tabs and trailing whitespace
if &termencoding == "utf-8"
set list listchars=tab:⇥\ ,trail:␣
highlight SpecialKey guifg=grey ctermfg=grey
else
set list listchars=tab:>\ ,trail:.
highlight SpecialKey guifg=grey ctermfg=grey cterm=underline
endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment