darkcloud-nvimconfig/vim/config/settings.vim

185 lines
7.6 KiB
VimL
Raw Normal View History

"============================================================"
" "
" Darkcloud Vim Config: main settings "
" "
" By: Kevin MacMartin (prurigro@gmail.com) "
" Website: https://github.com/prurigro/darkcloud-vimconfig "
" "
" License: MIT "
" "
"============================================================"
"GVIM SETTINGS: {{{
set guicursor+=a:blinkon0 "disable the blinking cursor
set guioptions=e "use the gui to render the list of open tabs
set guioptions+=g "make inactive menu items grey
set guioptions+=i "have the gui use the vim icon
set guioptions+=p "enable pointer callbacks for X11 (required by some WMs)
set guioptions+=h "prevent the cursor jumping to the longest line while scrolling
2014-08-06 00:19:46 -04:00
set winaltkeys=no "don't select the menu when pressing the alt-keys
"}}}
"COMPATIBILITY SETTINGS: {{{
set nocompatible "disable vi-compatibility settings
set backspace=indent,eol,start "enables/configures standard backspace behaviour
"use the '*' register as well as the the '+' register if it's available too
set clipboard=unnamed
if has('unnamedplus')
if has('nvim')
set clipboard=unnamedplus
else
set clipboard+=unnamedplus
endif
endif
if has('nvim')
"extend selection instead of showing the right click menu in neovim
set mousemodel=extend
else
"fancy mouse in vim reporting with xterm2 fallback
if has("mouse_sgr")
set ttymouse=sgr
else
set ttymouse=xterm2
endif
endif
set mouse=a "enables mouse functionality with extended capabilities
"8 colours in $TERM=linux, 256 elsewhere
if $TERM =~ '^linux$'|set t_Co=8|elseif !has("gui_running")|set t_Co=256|endif
set ttyfast "assume a fast connection to the terminal for better rendering
"configure to primarily use utf8
if has("multi_byte")
if &termencoding == ""
let &termencoding = &encoding
endif
set encoding=utf-8
setglobal fileencoding=utf-8
Tweaked the colors and styling of the cursor line/col and visual selection to better differentiate between the two. Changed the match parenthesis to standout with black text so the colour is based on the syntax instead of sometimes becoming invisble when the colours match. Changed the emmit shortcut from <Ctrl-Y> to <Ctrl-Z> for reach, and because it's easier to remember (zencoding). Tweaked some of the keyboard references so their explanation makes it easier to remember the keys. Removed the multiple cursors plugin as it rarely worked, was buggy when it did and would slow things down when accidentally triggered. Chanced read sudo from :rsudo to :esudo to match the usual load command in vim, :e. Emmit is now only initialized in css, html, php and aspx files (feel free to push additional webdev files that would be likely to have css or html). Tried to apply a more consistant style and better organization across the configs. Lowered the distance from the edge of the screen before scrolling and increased the undo history size. Removed the perl omnicompletion script because I was looking to trim things down and don't really use perl myself; my apologies if anyone does though, and you can easily get it back by cloning https://github.com/c9s/perlomni.vim.git into the bundle directory. I also remove the fugitive git plugin because while I do use git, I've just found it to be easier and more natural to run it from outside vim; fans of that one can get it back by cloning https://github.com/tpope/vim-fugitive.git into the bundle directory
2014-03-11 03:05:09 -04:00
endif
set fileformats=unix,dos,mac "set compatible line endings in order of preference
Tweaked the colors and styling of the cursor line/col and visual selection to better differentiate between the two. Changed the match parenthesis to standout with black text so the colour is based on the syntax instead of sometimes becoming invisble when the colours match. Changed the emmit shortcut from <Ctrl-Y> to <Ctrl-Z> for reach, and because it's easier to remember (zencoding). Tweaked some of the keyboard references so their explanation makes it easier to remember the keys. Removed the multiple cursors plugin as it rarely worked, was buggy when it did and would slow things down when accidentally triggered. Chanced read sudo from :rsudo to :esudo to match the usual load command in vim, :e. Emmit is now only initialized in css, html, php and aspx files (feel free to push additional webdev files that would be likely to have css or html). Tried to apply a more consistant style and better organization across the configs. Lowered the distance from the edge of the screen before scrolling and increased the undo history size. Removed the perl omnicompletion script because I was looking to trim things down and don't really use perl myself; my apologies if anyone does though, and you can easily get it back by cloning https://github.com/c9s/perlomni.vim.git into the bundle directory. I also remove the fugitive git plugin because while I do use git, I've just found it to be easier and more natural to run it from outside vim; fans of that one can get it back by cloning https://github.com/tpope/vim-fugitive.git into the bundle directory
2014-03-11 03:05:09 -04:00
"}}}
"GENERAL SETTINGS: {{{
"FILE: {{{
filetype plugin indent on "enable filetype-based auto-indentation
syntax on "enable syntax highlighting
set formatoptions=roqnl12 "how automatic formatting is to be done
set diffopt=foldcolumn:0,filler "vimdiff default settings
set foldmethod=indent foldcolumn=1 foldlevel=2 "fold layers 3 and deeper
set nofoldenable "disable folds by default
set tw=80 "set the default text width to 80 when nothing overrides this
set maxmempattern=10000 "increase the maximum amount of memory available for pattern matching
"}}}
"USER INTERFACE: {{{
set updatetime=100 "set updates to occur every 100ms
set laststatus=2 showcmd statusline=%F%m%r%h%w[%L][%{&ff}]%y[%p%%][%04l,%04v] "statusline init and config
set winheight=1 winminheight=1 "set the minimum window height to 1 lines
set winwidth=1 winminwidth=1 "set the minimum window width to 1 columns
set noshowmode "don't display mode information handled by lightline
set lazyredraw "don't redraw the screen while macros are executing
set noequalalways "don't force splits to be equal in size when closing or opening one
set number "enable line numbers
set nowrap "disable line wrapping
set cursorline cursorcolumn "enable row/column highlighting
set visualbell "notify visually instead of with an audible bell
set splitright "add new tiles on the right (and not left) when added
set scrolloff=5 "scroll vertically when the cursor is 5 characters away from the top or bottom
set sidescroll=1 sidescrolloff=5 "scroll horizontally when the cursor is 5 chars away from the edge
set list listchars=tab:>-,trail:- "display tabs as: >--- and trailing spaces as: -
set showmatch "show matching open bracket when closed bracket is inserted
set matchtime=5 "the amount of time before the matching bracket will highlight
let &showbreak = "" "character to prepend to wrapped lines when linewrapping is enabled
"enable tab completion in command mode and configure how it handles extensions
set completeopt=longest,menuone
set wildmenu
set wildmode=list:longest,full
set wildignore=*.dll,*.o,*.obj,*.bak,*.exe,*.pyc,*.pdf,*.ico,*.jpg,*.gif,*.png,*.webp,*.mp4,*.webm,*.mov,*.eot,*.otf,*.ttf,*.woff,*.woff2
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
"}}}
"BEHAVIOUR: {{{
set history=250 "size of the undo history
set whichwrap=b,s,<,>,[,] "scrolling left/right off current line wraps to the next/previous
set smarttab expandtab autoindent tabstop=4 shiftwidth=4 "configure tabs
set hlsearch incsearch ignorecase smartcase "configure how search behaves
set timeout timeoutlen=500 "how long before timing out for mappings
set ttimeout ttimeoutlen=100 "how long before timing out for terminal key codes
set nomodeline "disable the use of file-based modelines as these are insecure
"create ~/.vim/swap if necessary, then use as default swap file location
if exists('*mkdir') && !isdirectory($HOME.'/.vim/swap')
call mkdir($HOME.'/.vim/swap','p')
endif
set directory=$HOME/.vim/swap,.,/var/tmp,/tmp
"FUNCTIONS: {{{
2018-03-13 16:49:25 -04:00
"enable the auto-creation of missing folders in a save path
if !exists('*s:MakeNewDir')
function s:MakeNewDir(fullpath, buf)
if empty(getbufvar(a:buf,'&buftype')) && a:fullpath!~#'\v^\w+\:\/'
let dirpath = fnamemodify(a:fullpath,':h')
if !isdirectory(dirpath)
call mkdir(dirpath,'p')
endif
2018-03-13 16:49:25 -04:00
endif
endfunction
2018-03-13 16:49:25 -04:00
augroup WriteDir
autocmd!
2018-03-13 16:49:25 -04:00
autocmd BufWritePre * :call s:MakeNewDir(expand('<afile>'),+expand('<abuf>'))
augroup END
endif
2018-03-13 16:49:25 -04:00
"update the current filetype when a file is renamed
augroup RenameCheckFiletype
autocmd!
autocmd BufFilePost * filetype detect
augroup END
"functions to create a split using 33% and 66% of the height
function s:SPResize33()
sp|wincmd =|q
endfunction
function s:sp33()
sp|call s:SPResize33()|wincmd j
endfunction
command! -buffer SP33 call s:sp33()
function s:sp66()
sp|wincmd j|call s:SPResize33()
endfunction
command! -buffer SP66 call s:sp66()
"functions to create a vertical split using 33% and 66% width
function s:VSResize66()
vs|wincmd =|q
endfunction
function s:vs66()
vs|call s:VSResize66()
endfunction
command! -buffer VS66 call s:vs66()
function s:vs33()
vs|wincmd h|call s:VSResize66()|wincmd l
endfunction
command! -buffer VS33 call s:vs33()
"}}}
"}}}
Tweaked the colors and styling of the cursor line/col and visual selection to better differentiate between the two. Changed the match parenthesis to standout with black text so the colour is based on the syntax instead of sometimes becoming invisble when the colours match. Changed the emmit shortcut from <Ctrl-Y> to <Ctrl-Z> for reach, and because it's easier to remember (zencoding). Tweaked some of the keyboard references so their explanation makes it easier to remember the keys. Removed the multiple cursors plugin as it rarely worked, was buggy when it did and would slow things down when accidentally triggered. Chanced read sudo from :rsudo to :esudo to match the usual load command in vim, :e. Emmit is now only initialized in css, html, php and aspx files (feel free to push additional webdev files that would be likely to have css or html). Tried to apply a more consistant style and better organization across the configs. Lowered the distance from the edge of the screen before scrolling and increased the undo history size. Removed the perl omnicompletion script because I was looking to trim things down and don't really use perl myself; my apologies if anyone does though, and you can easily get it back by cloning https://github.com/c9s/perlomni.vim.git into the bundle directory. I also remove the fugitive git plugin because while I do use git, I've just found it to be easier and more natural to run it from outside vim; fans of that one can get it back by cloning https://github.com/tpope/vim-fugitive.git into the bundle directory
2014-03-11 03:05:09 -04:00
"}}}