107 lines
2.5 KiB
VimL
107 lines
2.5 KiB
VimL
" Turn off vi compatibility, makes vim a lot better
|
|
set nocompatible
|
|
|
|
" Detect file types
|
|
filetype indent plugin on
|
|
|
|
" Enable syntax highlighting
|
|
syntax on
|
|
|
|
" Colorscheme
|
|
colorscheme blackboard
|
|
|
|
" Font
|
|
set guifont=Input\ 18
|
|
|
|
" Other good font options:
|
|
" set guifont=Inconsolata\ LGC\ 18
|
|
" set guifont=Fira\ Code\ 18
|
|
|
|
" Remove toolbar
|
|
set guioptions-=T
|
|
|
|
" Don't force file saving on buffer changes
|
|
set hidden
|
|
|
|
" Better command-line completion
|
|
set wildmenu
|
|
|
|
" Show partial commands in the last line of the screen
|
|
set showcmd
|
|
|
|
" Highlight searches
|
|
set hlsearch
|
|
|
|
" Use case insensitive search, except when using capital letters
|
|
set ignorecase
|
|
set smartcase
|
|
|
|
" Allow backspacing over autoindent, line breaks and start of insert action
|
|
set backspace=indent,eol,start
|
|
|
|
" When opening a new line and no filetype-specific indenting is enabled, keep
|
|
" the same indent as the line you're currently on. Useful for READMEs, etc.
|
|
set autoindent
|
|
|
|
" Stop certain movements from always going to the first character of a line.
|
|
set nostartofline
|
|
|
|
" Display the cursor position on the last line of the screen or in the status
|
|
" line of a window
|
|
set ruler
|
|
|
|
" Always display the status line, even if only one window is displayed
|
|
set laststatus=2
|
|
|
|
" Instead of failing a command because of unsaved changes, instead raise a
|
|
" dialogue asking if you wish to save changed files.
|
|
set confirm
|
|
|
|
" Use visual bell instead of beeping when doing something wrong
|
|
set visualbell
|
|
|
|
" And reset the terminal code for the visual bell. If visualbell is set, and
|
|
" this line is also included, vim will neither flash nor beep. If visualbell
|
|
" is unset, this does nothing.
|
|
set t_vb=
|
|
|
|
" Enable use of the mouse for all modes
|
|
set mouse=a
|
|
|
|
" Set the command window height to 2 lines, to avoid many cases of having to
|
|
" "press <Enter> to continue"
|
|
" set cmdheight=2
|
|
|
|
" Display line numbers on the left
|
|
set number
|
|
|
|
" Quickly time out on keycodes, but never time out on mappings
|
|
set notimeout ttimeout ttimeoutlen=200
|
|
|
|
" Use <F11> to toggle between 'paste' and 'nopaste'
|
|
set pastetoggle=<F11>
|
|
|
|
" Indentation options
|
|
set shiftwidth=8
|
|
set tabstop=8
|
|
|
|
" 80 column rule
|
|
highlight OverLength ctermbg=darkred ctermfg=white guibg=#592929
|
|
match OverLength /\%81v.\+/
|
|
|
|
" Paste normally
|
|
set clipboard=unnamedplus
|
|
vmap <C-c> "+yi
|
|
vmap <C-x> "+c
|
|
vmap <C-v> c<ESC>"+p
|
|
imap <C-v> <C-r><C-o>+
|
|
|
|
function! SourceIfExists(file)
|
|
if filereadable(expand(a:file))
|
|
exe 'source' a:file
|
|
endif
|
|
endfunction
|
|
|
|
" Plugins
|
|
call SourceIfExists("~/.vim/plugins.vim")
|