Created
October 1, 2020 19:24
-
-
Save NeuroWinter/39756b559d7354b410cd0ca21558b9ff to your computer and use it in GitHub Desktop.
This file contains 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
""""""""""""""""""""""""""""""""""""" | |
" Allan MacGregor Vimrc configuration Edited by NeuroWinter | |
""""""""""""""""""""""""""""""""""""" | |
set encoding=utf8 | |
"""" START Vundle Configuration | |
" Disable file type for vundle | |
filetype off " required | |
" set the runtime path to include Vundle and initialize | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
" let Vundle manage Vundle, required | |
Plugin 'gmarik/Vundle.vim' | |
" Utility | |
Plugin 'scrooloose/nerdtree' | |
Plugin 'majutsushi/tagbar' | |
Plugin 'ervandew/supertab' | |
Plugin 'ludovicchabant/vim-gutentags' | |
Plugin 'BufOnly.vim' | |
Plugin 'wesQ3/vim-windowswap' | |
Plugin 'junegunn/fzf.vim' | |
Plugin 'junegunn/fzf' | |
Plugin 'godlygeek/tabular' | |
Plugin 'ctrlpvim/ctrlp.vim' | |
Plugin 'benmills/vimux' | |
Plugin 'jeetsukumaran/vim-buffergator' | |
Plugin 'gilsondev/searchtasks.vim' | |
Plugin 'Shougo/neocomplete.vim' | |
" This lets me increment dates using C-X (Decrease) and C-A (Increase) | |
Plugin 'tpope/vim-speeddating' | |
Plugin 'vim-airline/vim-airline' | |
Plugin 'vim-airline/vim-airline-themes' | |
" This lets me set up a wiki like note taking thingy for me | |
Plugin 'vimwiki/vimwiki' | |
Plugin 'michal-h21/vim-zettel' | |
" Generic Programming Support | |
Plugin 'MarcWeber/vim-addon-mw-utils' | |
Plugin 'tomtom/tlib_vim' | |
Plugin 'garbas/vim-snipmate' | |
Plugin 'honza/vim-snippets' | |
Plugin 'Townk/vim-autoclose' | |
Plugin 'tomtom/tcomment_vim' | |
Plugin 'maksimr/vim-jsbeautify' | |
Plugin 'vim-syntastic/syntastic' | |
Plugin 'neomake/neomake' | |
" Markdown / Writting | |
Plugin 'tpope/vim-markdown' | |
Plugin 'jtratner/vim-flavored-markdown' | |
Plugin 'vim-pandoc/vim-pandoc' | |
" Git Support | |
Plugin 'kablamo/vim-git-log' | |
Plugin 'gregsexton/gitv' | |
Plugin 'tpope/vim-fugitive' | |
"Plugin 'jaxbot/github-issues.vim' | |
" Theme / Interface | |
" Plugin 'drewtempelmeyer/palenight.vim' | |
" Plugin 'tiagofumo/vim-nerdtree-syntax-highlight' | |
call vundle#end() " required | |
filetype plugin indent on " required | |
"""" END Vundle Configuration | |
""""""""""""""""""""""""""""""""""""" | |
" Configuration Section | |
""""""""""""""""""""""""""""""""""""" | |
set nowrap | |
" OSX stupid backspace fix | |
set backspace=indent,eol,start | |
" Show linenumbers | |
set number | |
" Set Proper Tabs | |
set tabstop=4 | |
set shiftwidth=4 | |
set smarttab | |
set expandtab | |
" Always display the status line | |
set laststatus=2 | |
" Enable Elite mode, No ARRRROWWS!!!! | |
let g:elite_mode=1 | |
" Now set leader to , as this is easier than \ | |
let mapleader = "," | |
" Devicons configuration | |
let g:webdevicons_conceal_nerdtree_brackets = 1 | |
let g:WebDevIconsNerdTreeAfterGlyphPadding = '' | |
" Enable highlighting of the current line | |
set cursorline | |
" Theme and Styling | |
syntax on | |
set t_Co=256 | |
if (has("termguicolors")) | |
set termguicolors | |
endif | |
let base16colorspace=256 " Access colors present in 256 colorspace | |
" set background=dark | |
" colorscheme palenight | |
" Make the theme dracula pro! | |
packadd! dracula_pro | |
syntax enable | |
let g:dracula_colorterm = 0 | |
colorscheme dracula_pro | |
" Vim-Airline Configuration | |
let g:airline#extensions#tabline#enabled = 1 | |
let g:airline_powerline_fonts = 1 | |
let g:airline_theme='hybrid' | |
let g:hybrid_custom_term_colors = 1 | |
let g:hybrid_reduced_contrast = 1 | |
" Syntastic Configuration | |
set statusline+=%#warningmsg# | |
set statusline+=%{SyntasticStatuslineFlag()} | |
set statusline+=%* | |
let g:syntastic_always_populate_loc_list = 1 | |
let g:syntastic_auto_loc_list = 1 | |
let g:syntastic_check_on_open = 0 | |
let g:syntastic_check_on_wq = 0 | |
let g:syntastic_LANGUAGE_CHECKER_args = 'ARGUMENT' | |
let g:syntastic_python_flake8_args = '--config=/home/neuro/.config/flake8/flake8.conf' | |
" Markdown Syntax Support | |
augroup markdown | |
au! | |
au BufNewFile,BufRead *.md,*.markdown setlocal filetype=ghmarkdown | |
augroup END | |
" vimwiki - Personal Wiki for Vim | |
" https://github.com/vimwiki/vimwiki | |
set nocompatible | |
filetype plugin on | |
syntax on | |
" Let VimWiki use the markdown syntax | |
let g:vimwiki_ext2syntax = {'.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'} | |
" Vim-Alchemist Configuration | |
let g:alchemist#elixir_erlang_src = "/Users/amacgregor/Projects/Github/alchemist-source" | |
let g:alchemist_tag_disable = 1 | |
" Vim-Supertab Configuration | |
let g:SuperTabDefaultCompletionType = "<C-X><C-O>" | |
" Vim-Test Configuration | |
let test#strategy = "vimux" | |
" Enable deoplete | |
let g:deoplete#enable_at_startup = 1 | |
" Define dictionary. | |
let g:neocomplete#sources#dictionary#dictionaries = { | |
\ 'default' : '', | |
\ 'vimshell' : $HOME.'/.vimshell_hist', | |
\ 'scheme' : $HOME.'/.gosh_completions' | |
\ } | |
" Define keyword. | |
if !exists('g:neocomplete#keyword_patterns') | |
let g:neocomplete#keyword_patterns = {} | |
endif | |
let g:neocomplete#keyword_patterns['default'] = '\h\w*' | |
function! s:my_cr_function() | |
return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>" | |
" For no inserting <CR> key. | |
"return pumvisible() ? "\<C-y>" : "\<CR>" | |
endfunction | |
" Close popup by <Space>. | |
"inoremap <expr><Space> pumvisible() ? "\<C-y>" : "\<Space>" | |
" vim-mix-format | |
" let g:mix_format_on_save = 1 | |
" AutoComplPop like behavior. | |
"let g:neocomplete#enable_auto_select = 1 | |
" Enable omni completion. | |
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS | |
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags | |
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS | |
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete | |
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags | |
" Enable heavy omni completion. | |
if !exists('g:neocomplete#sources#omni#input_patterns') | |
let g:neocomplete#sources#omni#input_patterns = {} | |
endif | |
"let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\|\h\w*::' | |
"let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)' | |
"let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::' | |
" Fzf Configuration | |
" This is the default extra key bindings | |
let g:fzf_action = { | |
\ 'ctrl-t': 'tab split', | |
\ 'ctrl-x': 'split', | |
\ 'ctrl-v': 'vsplit' } | |
" Default fzf layout | |
" - down / up / left / right | |
let g:fzf_layout = { 'down': '~40%' } | |
" In Neovim, you can set up fzf window using a Vim command | |
let g:fzf_layout = { 'window': 'enew' } | |
let g:fzf_layout = { 'window': '-tabnew' } | |
" Customize fzf colors to match your color scheme | |
let g:fzf_colors = | |
\ { 'fg': ['fg', 'Normal'], | |
\ 'bg': ['bg', 'Normal'], | |
\ 'hl': ['fg', 'Comment'], | |
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], | |
\ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], | |
\ 'hl+': ['fg', 'Statement'], | |
\ 'info': ['fg', 'PreProc'], | |
\ 'prompt': ['fg', 'Conditional'], | |
\ 'pointer': ['fg', 'Exception'], | |
\ 'marker': ['fg', 'Keyword'], | |
\ 'spinner': ['fg', 'Label'], | |
\ 'header': ['fg', 'Comment'] } | |
" Enable per-command history. | |
" CTRL-N and CTRL-P will be automatically bound to next-history and | |
" previous-history instead of down and up. If you don't like the change, | |
" explicitly bind the keys to down and up in your $FZF_DEFAULT_OPTS. | |
let g:fzf_history_dir = '~/.local/share/fzf-history' | |
""""""""""""""""""""""""""""""""""""" | |
" Mappings configurationn | |
""""""""""""""""""""""""""""""""""""" | |
map <C-n> :NERDTreeToggle<CR> | |
map <C-m> :TagbarToggle<CR> | |
" Omnicomplete Better Nav | |
inoremap <expr> <c-j> ("\<C-n>") | |
inoremap <expr> <c-k> ("\<C-p>") | |
" Neocomplete Plugin mappins | |
inoremap <expr><C-g> neocomplete#undo_completion() | |
inoremap <expr><C-l> neocomplete#complete_common_string() | |
" Recommended key-mappings. | |
" <CR>: close popup and save indent. | |
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR> | |
" <TAB>: completion. | |
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" | |
" <C-h>, <BS>: close popup and delete backword char. | |
inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>" | |
inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>" | |
" Mapping selecting Mappings | |
nmap <leader><tab> <plug>(fzf-maps-n) | |
xmap <leader><tab> <plug>(fzf-maps-x) | |
omap <leader><tab> <plug>(fzf-maps-o) | |
" Shortcuts | |
nnoremap <Leader>o :Files<CR> | |
nnoremap <Leader>O :CtrlP<CR> | |
nnoremap <Leader>w :w<CR> | |
nnoremap <Leader>q :wq<CR> | |
" Insert mode completion | |
imap <c-x><c-k> <plug>(fzf-complete-word) | |
imap <c-x><c-f> <plug>(fzf-complete-path) | |
imap <c-x><c-j> <plug>(fzf-complete-file-ag) | |
" Complete line ctrl x ctrl l | |
imap <c-x><c-l> <plug>(fzf-complete-line) | |
" Disable arrow movement, resize splits instead. | |
if get(g:, 'elite_mode') | |
nnoremap <Up> :resize +2<CR> | |
nnoremap <Down> :resize -2<CR> | |
nnoremap <Left> :vertical resize +2<CR> | |
nnoremap <Right> :vertical resize -2<CR> | |
endif | |
map <silent> <LocalLeader>ws :highlight clear ExtraWhitespace<CR> | |
" Crazy auto complete for all words ctrl x ctrl k | |
" Advanced customization using autoload functions | |
inoremap <expr> <c-x><c-k> fzf#vim#complete#word({'left': '15%'}) | |
" set vim to use real clipboard | |
set clipboard=clipboard | |
" Set my colour column | |
set cc=80,95 | |
hi ColorColumn term=reverse ctermbg=12 guibg=LightRed | |
filetype plugin on | |
" Enable spell check | |
set spell spelllang=en_gb | |
" No backups or swaps | |
set nobackup | |
set nowritebackup | |
set nowb | |
set noswapfile | |
" Lots of Undos! | |
set undolevels=1000 | |
" Make sure that backups are in their own dir | |
set backupdir=./.backup,.,/tmp | |
set directory=.,./.backup,/tmp | |
"" set zn to new zettle note | |
nnoremap <leader>zn :ZettelNew<space> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment