Initial commit
This commit is contained in:
212
.vimrc
Normal file
212
.vimrc
Normal file
@@ -0,0 +1,212 @@
|
||||
set nocompatible " be iMproved, required
|
||||
set number " turn on line numbers
|
||||
set relativenumber " lines are numbered relative to current line
|
||||
set scrolloff=8 " number of lines to keep above and below the cursor
|
||||
set noerrorbells visualbell t_vb= " no sound on errors
|
||||
autocmd! bufwritepost .vimrc source ~/.vimrc " When vimrc is edited, reload it
|
||||
|
||||
set autoread " set to auto read when a file is changed from the outside
|
||||
set cursorcolumn " highlight current column
|
||||
set cursorline " highlight current row
|
||||
"set encoding=utf-8
|
||||
"set history=300 " how many lines of history to remember
|
||||
set incsearch " make search act like search in modern browsers
|
||||
"set lbr " smarter line breaks
|
||||
"set magic " set magic on, for regular expressions
|
||||
set showmatch " show matching brackets when text indicator is over them
|
||||
|
||||
|
||||
" ----------------------------------------------------------------------------------------------------
|
||||
" From Vim Zero: https://www.oliversherouse.com/2017/08/21/vim_zero.html
|
||||
" Built-In Functionality
|
||||
" General
|
||||
let mapleader = ','
|
||||
|
||||
set hidden " Allow background buffers without saving
|
||||
set spell spelllang=en_us
|
||||
set splitright " Split to right by default
|
||||
|
||||
" Text Wrapping
|
||||
set textwidth=119
|
||||
set colorcolumn=120
|
||||
set nowrap
|
||||
|
||||
" Search and Substitute
|
||||
set gdefault " use global flag by default in s: commands
|
||||
set hlsearch " highlight searches
|
||||
set ignorecase
|
||||
set smartcase " don't ignore capitals in searches
|
||||
nnoremap <leader><space> :nohls <enter>
|
||||
|
||||
" Tabs
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
set expandtab
|
||||
|
||||
" Mappings
|
||||
" <ctrl>-H to move to previous buffer
|
||||
nnoremap <C-H> :bp <enter>
|
||||
" <ctrl>-L to move to next buffer
|
||||
nnoremap <C-L> :bn <enter>
|
||||
" comma-w to save buffer
|
||||
nnoremap <Leader>w :w <enter>
|
||||
" comma-q to quit buffer
|
||||
nnoremap <Leader>q :bd <enter>
|
||||
" bring up the copy buffer
|
||||
noremap <Leader>x "+
|
||||
|
||||
|
||||
" Plugins
|
||||
|
||||
"" Installation with VimPlug
|
||||
if has("win32")
|
||||
call plug#begin('~/vimfiles/plugged')
|
||||
else
|
||||
call plug#begin('~/.vim/plugged')
|
||||
endif
|
||||
|
||||
""" Basics
|
||||
Plug 'tpope/vim-sensible'
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
Plug 'flazz/vim-colorschemes'
|
||||
|
||||
""" General Functionality
|
||||
Plug 'lifepillar/vim-mucomplete'
|
||||
Plug 'scrooloose/syntastic'
|
||||
"Plug 'sirver/ultisnips'
|
||||
"Plug 'honza/vim-snippets'
|
||||
Plug 'tpope/vim-commentary'
|
||||
"Plug 'chiel92/vim-autoformat'
|
||||
|
||||
""" Particular Functionality
|
||||
"Plug 'junegunn/goyo.vim'
|
||||
"Plug 'junegunn/limelight.vim'
|
||||
Plug 'vim-pandoc/vim-pandoc-syntax'
|
||||
Plug 'godlygeek/tabular'
|
||||
|
||||
call plug#end()
|
||||
|
||||
|
||||
"" Colors
|
||||
"set termguicolors
|
||||
colorscheme slate
|
||||
|
||||
"" Autocompletion
|
||||
set completeopt=menuone,noinsert,noselect
|
||||
set shortmess+=c " Turn off completion messages
|
||||
|
||||
inoremap <expr> <c-e> mucomplete#popup_exit("\<c-e>")
|
||||
inoremap <expr> <c-y> mucomplete#popup_exit("\<c-y>")
|
||||
inoremap <expr> <cr> mucomplete#popup_exit("\<cr>")
|
||||
|
||||
let g:mucomplete#enable_auto_at_startup = 1
|
||||
|
||||
"" Pandoc
|
||||
augroup pandoc_syntax
|
||||
au! BufNewFile,BufFilePre,BufRead *.md set filetype=markdown.pandoc
|
||||
au! BufNewFile,BufFilePre,BufRead *.markdown set filetype=markdown.pandoc
|
||||
augroup END
|
||||
|
||||
let g:pandoc#syntax#conceal#use = 0
|
||||
let g:pandoc#syntax#codeblocks#embeds#langs = ['python', 'vim', 'make', 'bash=sh', 'html', 'css', 'scss', 'javascript']
|
||||
" ----------------------------------------------------------------------------------------------------
|
||||
|
||||
" ----------------------------------------------------------------------------------------------------
|
||||
" => Statusline
|
||||
" Ideas from http://got-ravings.blogspot.com/2008/08/vim-pr0n-making-statuslines-that-own.html
|
||||
set laststatus=2 " always show statusline
|
||||
set statusline= " clear on reload
|
||||
set statusline+=[%n] " buffer number
|
||||
set statusline+=\ %f " filename
|
||||
set statusline+=\ [%{strlen(&fenc)?&fenc:'none'}, " file encoding
|
||||
set statusline+=\ %{&ff}] " file format
|
||||
set statusline+=\ %y " filetype
|
||||
set statusline+=\ %H\ %m\ %r\ %W " flags
|
||||
set statusline+=%= " left/right separator
|
||||
set statusline+=l:%l/%L " cursor line/total lines
|
||||
set statusline+=\ c:%c, " cursor column
|
||||
set statusline+=\ %P " percent through file
|
||||
" ----------------------------------------------------------------------------------------------------
|
||||
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
" => Keymaps: Doing more things at once
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
" ===> Text bubbling (http://vimcasts.org/episodes/bubbling-text/)
|
||||
" Bubble single lines
|
||||
nmap <C-k> ddkP
|
||||
nmap <C-j> ddp
|
||||
" Bubble multiple lines
|
||||
vmap <C-k> xkP`[V`]
|
||||
vmap <C-j> xp`[V`]
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
" ===> More sane movement keys
|
||||
nnoremap j gj
|
||||
nnoremap k gk
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
" ===> Spellcheck
|
||||
" Horrible colors! I hate spellchecker's red highlight, so I changed it
|
||||
" (http://stackoverflow.com/questions/6008921/how-do-i-change-the-highlight-style-in-vim-spellcheck)
|
||||
" Vim Colors: (http://alvinalexander.com/linux/vi-vim-editor-color-scheme-syntax)
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
hi clear SpellBad
|
||||
hi clear SpellCap
|
||||
hi clear SpellErrors
|
||||
hi clear SpellLocal
|
||||
hi clear SpellRare
|
||||
hi SpellBad cterm=underline,bold ctermfg=Red
|
||||
hi SpellCap cterm=underline,bold ctermfg=Red
|
||||
hi SpellErrors cterm=underline,bold ctermfg=Red
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
" ===> Spell check only certain file types https://robots.thoughtbot.com/vim-spell-checking
|
||||
" turn off for files with no extension
|
||||
autocmd BufRead,BufNewFile * setlocal nospell
|
||||
" turn off for files with any extension
|
||||
autocmd BufRead,BufNewFile *.* setlocal nospell
|
||||
" turn on for markdown files
|
||||
autocmd BufRead,BufNewFile *.md setlocal spell
|
||||
autocmd BufRead,BufNewFile *.mkd setlocal spell
|
||||
autocmd BufRead,BufNewFile *.markdown setlocal spell
|
||||
" turn on for text files
|
||||
autocmd BufRead,BufNewFile *.txt setlocal spell
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
" => Templates
|
||||
" Doing special things with certain filetypes
|
||||
" -----------------------------------------------------------------------------------------------------
|
||||
" shell scripts (.sh) ------------------------------------------------
|
||||
autocmd BufNewFile *.sh so $HOME/.vim/templates/sh
|
||||
autocmd BufNewFile *.sh %s/FILE:.*/\='FILE: '.expand('%')/e
|
||||
autocmd BufNewFile *.sh exe "g/AUTHOR:.*/s//AUTHOR: C Hawley"
|
||||
autocmd BufNewFile *.sh exe "g/CREATED:.*/s//CREATED: " .strftime("%c")
|
||||
autocmd BufWritePre,filewritepre *.sh execute "normal ma"
|
||||
autocmd BufWritePre,filewritepre *.sh exe "g/REVISION:.*/s//REVISION: " .strftime("%c")
|
||||
autocmd bufWritePost,filewritepost *.sh execute "normal `a"
|
||||
" python scripts (.py) ------------------------------------------------
|
||||
autocmd BufNewFile *.py so $HOME/.vim/templates/py
|
||||
autocmd BufNewFile *.py %s/FILE:.*/\='FILE: '.expand('%')/e
|
||||
autocmd BufNewFile *.py exe "g/AUTHOR:.*/s//AUTHOR: C Hawley"
|
||||
autocmd BufNewFile *.py exe "g/CREATED:.*/s//CREATED: " .strftime("%c")
|
||||
autocmd BufWritePre,filewritepre *.py execute "normal ma"
|
||||
autocmd BufWritePre,filewritepre *.py exe "g/REVISION:.*/s//REVISION: " .strftime("%c")
|
||||
autocmd bufWritePost,filewritepost *.py execute "normal `a"
|
||||
" markdown documents (.md,*.mkd) -------------------------------------
|
||||
autocmd BufNewFile *.md,*.mkd so $HOME/.vim/templates/md
|
||||
autocmd BufNewFile *.md,*.mkd exe "g/Created:.*/s//Created: " .strftime("%c")
|
||||
autocmd BufWritePre,filewritepre *.md,*.mkd execute "normal ma"
|
||||
autocmd BufWritePre,filewritepre *.md,*.mkd exe "g/Updated:.*/s//Updated: " .strftime("%c")
|
||||
autocmd bufWritePost,filewritepost *.md,*.mkd execute "normal `a"
|
||||
" markdown documents (.markdown - jekyll blog) -----------------------
|
||||
autocmd BufNewFile *.markdown so $HOME/.vim/templates/markdown
|
||||
autocmd BufNewFile *.markdown exe "g/date:.*/s//date: " .strftime("%c")
|
||||
autocmd BufWritePre,filewritepre *.markdown execute "normal ma"
|
||||
autocmd BufWritePre,filewritepre *.markdown exe "g/Updated:.*/s//Updated: " .strftime("%c")
|
||||
autocmd bufWritePost,filewritepost *.markdown execute "normal `a"
|
||||
|
||||
Reference in New Issue
Block a user