148 lines
3.2 KiB
VimL
148 lines
3.2 KiB
VimL
" drop vi-compatibility
|
||
set nocompatible
|
||
" disable autocmd
|
||
set secure
|
||
" use utf8 only
|
||
set encoding=utf8
|
||
|
||
" file/directory matching
|
||
set wildmode=list:longest,full
|
||
" ignore case when completing
|
||
if exists('+wildignorecase')
|
||
set wildignorecase
|
||
endif
|
||
" ignorelist
|
||
set wildignore=*.o,*.d,*.so,*.class,*.aux,*.log,*.out,*.toc,*.pdf,*.pyc
|
||
|
||
" show completion menu even with only one match
|
||
if exists('+completeopt')
|
||
set completeopt+=menuone
|
||
endif
|
||
|
||
" increase command history
|
||
set history=1000
|
||
" increase count of possible undos
|
||
set undolevels=1000
|
||
|
||
" encrypt buffers when saved to files
|
||
if exists('+cryptmethod')
|
||
set cryptmethod=blowfish
|
||
endif
|
||
|
||
" enable fast terminal for tmux but not for ssh connection
|
||
if &term =~# '^screen' && !exists('SSH_CONNECTION')
|
||
set ttyfast
|
||
endif
|
||
|
||
" enable automatic file detection, plugin and indention support
|
||
if has('autocmd')
|
||
filetype plugin indent on
|
||
endif
|
||
|
||
" use utf8 encoding for all files and recognize latin1
|
||
set fileencodings=utf-8,latin1
|
||
|
||
" use unix line-endings and recognize dos endings
|
||
set fileformats=unix,dos
|
||
|
||
" tabs
|
||
set tabstop=4
|
||
set shiftwidth=4
|
||
set autoindent
|
||
set smartindent
|
||
set smarttab
|
||
|
||
" allow backspacing over autoindent and line breaks
|
||
set backspace=indent,eol,start
|
||
|
||
" already display matches while searching
|
||
set incsearch
|
||
" only check for case if the searched word contains a capital
|
||
set ignorecase
|
||
set smartcase
|
||
" highlight all matches. use <C-L> to remove the highlights
|
||
set hlsearch
|
||
|
||
" treat hyphenated words as a single word
|
||
set iskeyword+=-
|
||
|
||
" syntax folding
|
||
if has('folding')
|
||
set foldmethod=syntax
|
||
" only use folding when there is enough space
|
||
" if &columns > 80
|
||
" set foldcolumn=2
|
||
" endif
|
||
set foldlevel=99
|
||
|
||
" dont open fold for block movements
|
||
set foldopen-=block
|
||
endif
|
||
|
||
" allow buffers with changes to be hidden
|
||
set hidden
|
||
|
||
" correct splitting
|
||
if has('vertsplit')
|
||
set splitright
|
||
set splitbelow
|
||
endif
|
||
|
||
" Visual
|
||
" set text color for dark terminal background
|
||
set background=dark
|
||
|
||
" activate syntax highlighting
|
||
if has('syntax')
|
||
syntax enable
|
||
endif
|
||
|
||
" set colorscheme
|
||
colorscheme ron
|
||
|
||
" display line at which the current is positioned
|
||
if exists('+cursorline')
|
||
set cursorline
|
||
" remove line and make the line bold instead
|
||
highlight CursorLine term=bold cterm=bold
|
||
highlight CursorLineNR term=bold cterm=bold ctermbg=darkgrey
|
||
endif
|
||
|
||
" display box from column 81 to 100
|
||
let &colorcolumn=join(range(81, 100), ",")
|
||
highlight ColorColumn ctermbg=235 guibg=#2d2d2d
|
||
|
||
" display line numbers
|
||
set number
|
||
|
||
" show cursor position all the time
|
||
set ruler
|
||
|
||
" show tabs all the time
|
||
set showtabline=2
|
||
|
||
" show currently typed command
|
||
set showcmd
|
||
|
||
" define characters to display when using 'set list'
|
||
set listchars=tab:→\ ,trail:∙,eol:¬,extends:❯,precedes:❮,nbsp:␣
|
||
|
||
" increase completion performance and reduce time until timeout
|
||
set updatetime=300
|
||
set timeoutlen=500
|
||
|
||
" copy paste between vim and everything else
|
||
" TODO: check whether the 'plus' suffix works with plain vim
|
||
set clipboard=unnamedplus
|
||
|
||
" Misc
|
||
set mouse=n
|
||
|
||
" remove windows ^M when the encoding gets messed up
|
||
noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm
|
||
|
||
" autoreload vimrc when writing init.vim
|
||
au! BufWritePost $MYVIMRC source %
|
||
|
||
" add convenience command for force-saving read-only files
|
||
cmap w!! w !sudo tee %
|