windows vimrc

This commit is contained in:
Ian Keane 2020-02-07 08:49:43 -05:00
parent 1d4aaddca1
commit 708a7e0394
3 changed files with 342 additions and 13 deletions

View file

@ -1,5 +1,6 @@
EasyAlign
C-x in visual mode to do reg expression
Vlime Vlime
-----
\cc \cc
start connection start connection
@ -18,5 +19,27 @@ Vlime
\of \of
compile file compile file
GitGutter
[c and ]c
jump between hunks
<leader>hp
preview hunk
<leader>hs
stage hunk
<leader>hu
undo hunk
TODO: map to ghp, ghs, ghu, ghn, ghp?
find mapping for gitgutterfold
TODO:
nmap ghv <Plug>(GitGutterPreviewHunk)
nmap ghn <Plug>(GitGutterNextHunk)
nmap ghp <Plug>(GitGutterPrevHunk)
nmap ghf <Plug>(GitGutterFold)
TODO: make this folded notes, bind edit function TODO: make this folded notes, bind edit function
Custom Bindings
c-c
kill current window

View file

@ -53,7 +53,7 @@
" appearance {{{ " appearance {{{
colorscheme zenburn colorscheme zenburn
syntax on " Enable syntax syntax on " Enable syntax
set encoding=utf-9 " Keep utf-8 encoding set encoding=utf-8 " Keep utf-8 encoding
set scrolloff=2 " Keep at least 3 lines above and below cursor set scrolloff=2 " Keep at least 3 lines above and below cursor
set showmode " Something something buffers set showmode " Something something buffers
set showcmd " Show command in bottom bar set showcmd " Show command in bottom bar
@ -275,6 +275,7 @@
" git commands {{{ " git commands {{{
" TODO: map fugitive commands " TODO: map fugitive commands
" TODO: check out gv etc " TODO: check out gv etc
" TODO: bind hunk committing
" Gitgutter hunk view " Gitgutter hunk view
nmap ghv <Plug>(GitGutterPreviewHunk) nmap ghv <Plug>(GitGutterPreviewHunk)
nmap ghn <Plug>(GitGutterNextHunk) nmap ghn <Plug>(GitGutterNextHunk)
@ -286,6 +287,11 @@
" "
"}}} "}}}
" gvim {{{
set guioptions=Ace
"}}}
" folding options, this must be last in file " folding options, this must be last in file
" vim:foldmethod=marker:foldlevel=0 " vim:foldmethod=marker:foldlevel=0

300
vim/_vimrc Executable file
View file

@ -0,0 +1,300 @@
" vim-plug {{{
" Automatic installation
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
call plug#begin('~/.vim/plugins')
Plug 'junegunn/vim-easy-align'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin --all' }
Plug 'tpope/vim-surround'
Plug 'tpope/vim-commentary'
Plug 'w0rp/ale'
Plug 'airblade/vim-gitgutter'
Plug 'itchyny/lightline.vim'
Plug 'tpope/vim-repeat'
Plug 'haya14busa/incsearch.vim'
Plug 'gorodinskiy/vim-coloresque'
Plug 'sheerun/vim-polyglot'
Plug 'nvie/vim-flake8'
Plug 'KKPMW/sacredforest-vim'
Plug 'wolf-dog/lightline-sceaduhelm.vim'
" Plug 'unblevable/quick-scope'
Plug 'tpope/vim-fugitive'
Plug 'l04m33/vlime', {'rtp': 'vim/'}
Plug 'artanikin/vim-synthwave84'
Plug 'kovisoft/paredit'
Plug 'relastle/bluewery.vim'
Plug 'sainnhe/vim-color-forest-night'
Plug 'justinmk/vim-sneak'
" Todo:
" GV
" Gundo (or undotree?)
" Emmett
" Fugitive
" Vimwiki
" Plug 'ryanss/vim-hackernews'
" Plug 'mbbill/undotree' or Plug 'sjl/gundo.vim'
" Plug 'tpope/vim-projectionist'
" Plug 'mileszs/ack.vim'
" Plug 'vim-pandoc/vim-pandoc'
" Plug 'alfredodeza/pytest.vim'
" Plug 'docker/docker'
" Plug vim-scripts/indentpython.vim
"
call plug#end()
"}}}
" appearance {{{
colorscheme zenburn
syntax on " Enable syntax
set encoding=utf-8 " Keep utf-8 encoding
set scrolloff=2 " Keep at least 3 lines above and below cursor
set showmode " Something something buffers
set showcmd " Show command in bottom bar
set wildmenu " Visual autocomplete for command menu
set wildmode=list:longest " Show all completions on tab
set laststatus=1 " Last window will always have statusline
set showmatch " Highlight matching [{()}]
set cursorline " Highlight current line
" remove underline on current line number
hi CursorLineNr cterm=bold
" Lightline
let g:lightline = { 'colorscheme': 'sceaduhelm', }
set fillchars+=vert:│
" }}}
" Movement {{{
" TODO: map alt-j and k to move text lines vertically, maintaining indent
" }}}
" Folding {{{
set foldenable " Enable folding
set foldmethod=marker " Fold sections by marker
set foldlevel=0 " Fold by default
set modelines=1 " Check final line of file for modeline
" }}}
" behavior {{{
set nocompatible " Turn off vi compatability nonsense
set hidden " Hide buffer when opening new file
set visualbell " Use visual bell instead of beeping
set ttyfast " Improves smoothness and drawing
set backspace=indent,eol,start " Always allow backspacing
set undofile " Make .un file for persistent undo
set relativenumber " Make numbers relative to current line
set lazyredraw " Redraw only when necessary
set updatetime=100 " Make updates happen faster (gitgutter)
set splitright " Make split to right by default
"}}}
" searching {{{
set gdefault " Remove default g flag on search
set ignorecase " Ignore case for searches
set smartcase " Case-specific only when uppercase
set hlsearch " Don't continue to highlight searched phrases.
set incsearch " But do search as characters are entered
" Remap tab to jump by brackets
" Nnoremap <tab> %
" Vnoremap <tab> %
" Remap tab to jump by window
nnoremap <tab> <C-w>w
vnoremap <tab> <C-w>w
"}}}
" tab settings {{{
set tabstop=4 " Number of visual spaces per tab
set softtabstop=4 " Should always = tabstop
set shiftwidth=4 " Indent/outdent by 4 columns
set expandtab " Tabs are spaces
set shiftround " Always indent/outdent to the nearest tabstop
" Make search terms more visible
highlight Visual ctermbg=DarkGreen ctermfg=Black
set autoindent " Auto indentation
"}}}
" ruler settings {{{
set rulerformat=%l,%-2v\|%4L\ Lines " Display line, column, and total lines
set ruler " Turn on ruler
"}}}
" long line handling {{{
set textwidth=79
set fo=t
" set colorcolumn=85
"}}}
" leaders {{{
:let mapleader = ","
" Clear search highlighting with leader-space
nnoremap <leader><space> :noh<cr>
" Underline with line of the same length
nnoremap <leader>- yypv$r-
" Insert date on current line
nnoremap <leader>d k :r !date <cr>
nnoremap <leader>k :vert new ~/.vim/bindings.md <cr>
"}}}
" invisible characters {{{
set list
set listchars=tab:▸\ ,eol
"}}}
" hjkl {{{
" Disable arrow keys in normal and visual mode
nnoremap <up> <nop>
nnoremap <down> <nop>
nnoremap <left> <nop>
nnoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
" Disable h and l
" nnoremap h <nop>
" nnoremap l <nop>
" Make j and k move by screen line, not file line
nnoremap j gj
nnoremap k gk
"}}}
" split pane navigation {{{
" Map vertical split to \ w, switch to it, open explorer, prompt for filename
" TODO: make new window prompt use fzf
nnoremap <leader>w <C-w>v<C-w>l:e <C-S-d><BS><BS>open
" Switch panes wit ctrl + h/j/k/l
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <C-c> :close <cr>
nnoremap <C-n> :bn <cr>
" Map resize pane
" TODO: remap pane resize to something else (leader?)
map + :vertical resize +5<CR>
map - :vertical resize -5<CR>
" quick-scope
" Trigger a highlight in the appropriate direction when pressing these keys:
let g:qs_highlight_on_keys = ['f', 'F', 't', 'T']
augroup qs_colors
autocmd!
autocmd ColorScheme * highlight QuickScopePrimary guifg='#afff5f' gui=underline ctermfg=155 cterm=underline
autocmd ColorScheme * highlight QuickScopeSecondary guifg='#5fffff' gui=underline ctermfg=81 cterm=underline
augroup END
"}}}
" launch love game, check youtube love2d roguelike+rpg day 1 if broken {{{
map ,t :! /Applications/love.app/Contents/MacOS/love . <CR>
"}}}
" file specific {{{
" In markdown files, when writing add two spaces to each line to fix spacing
" In compiled version
" au BufWritePost *.md silent! %s/[^ ]\zs$/\1 /
" TODO: find a better solution
" Bold something in a markdown file
" :au FileType markdown nmap <leader>b i**<esc>ea**<esc>b
" Python
" au BufNewFile,BufRead *.py
"\ set tabstop=4
"\ set softtabstop=4
"\ set shiftwidth=4
"\ set textwidth=79
"\ set expandtab
"\ set autoindent
"\ set fileformat=unix
"" Webdev
" au BufNewFile,BufRead *.js, *.html, *.css
"\ set tabstop=2
"\ set softtabstop=2
"\ set shiftwidth=2
"}}}
" plugin modification {{{
" FZF
map <C-p> :FZF<cr>
" 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': '~30%' }
" 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'],
\ 'border': [ 'fg', 'Ignore'],
\ 'prompt': [ 'fg', 'Conditional'],
\ 'pointer': [ 'fg', 'Exception'],
\ 'marker': [ 'fg', 'Keyword'],
\ 'spinner': [ 'fg', 'Label'],
\ 'header': [ 'fg', 'Comment'] }
" EasyAlign
"" Start interactive EasyAlign in visual mode (e.g. vipga)
xmap ga <Plug>(EasyAlign)
" Start interactive EasyAlign for a motion/text object (e.g. gaip)
nmap ga <Plug>(EasyAlign)
"}}}
" git commands {{{
" TODO: map fugitive commands
" TODO: check out gv etc
" TODO: bind hunk committing
" Gitgutter hunk view
nmap ghv <Plug>(GitGutterPreviewHunk)
nmap ghn <Plug>(GitGutterNextHunk)
nmap ghp <Plug>(GitGutterPrevHunk)
nmap ghf <Plug>(GitGutterFold)
"}}}
" plugin modification {{{
"}}}
" gvim {{{
set guioptions=Ace
set guifont="Bitstream Vera Sans Mono"
"}}}
" folding options, this must be last in file
" vim:foldmethod=marker:foldlevel=0