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
@ -11,12 +12,34 @@ Vlime
enter to evalutate enter to evalutate
\dda \dda
show doc for function show doc for function
\p \p
show package name show package name
\xc \xc
show xref show xref
\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
@ -77,10 +77,10 @@
" }}} " }}}
" Folding {{{ " Folding {{{
set foldenable " Enable folding set foldenable " Enable folding
set foldmethod = marker " Fold sections by marker set foldmethod=marker " Fold sections by marker
set foldlevel = 0 " Fold by default set foldlevel=0 " Fold by default
set modelines = 1 " Check final line of file for modeline set modelines=1 " Check final line of file for modeline
" }}} " }}}
@ -114,9 +114,9 @@
"}}} "}}}
" tab settings {{{ " tab settings {{{
set tabstop = 4 " Number of visual spaces per tab set tabstop=4 " Number of visual spaces per tab
set softtabstop = 4 " Should always = tabstop set softtabstop=4 " Should always = tabstop
set shiftwidth = 4 " Indent/outdent by 4 columns set shiftwidth=4 " Indent/outdent by 4 columns
set expandtab " Tabs are spaces set expandtab " Tabs are spaces
set shiftround " Always indent/outdent to the nearest tabstop set shiftround " Always indent/outdent to the nearest tabstop
" Make search terms more visible " Make search terms more visible
@ -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