FEM functional programming
January 28, 2022VIM Fundamentals
https://theprimeagen.github.io/vim-fundamentals/
https://vimways.org/2019/writing-vim-plugin/ - plugin tutorial
https://github.com/tpope/vim-fugitive - git nav in vim
Cheat Sheet
| Key | Use |
|---|---|
| j | move down |
| k | move up |
| l | move right |
| h | move left |
| w | jump forward to word boundry |
| b | jump backward to word boundry |
| yy | copy lines, called yank |
| dd | delete line |
| p | paste below |
| P | paste above |
| _ | first non whitespace of line |
| t" | go to before " |
| f | find char |
| I | insert at beginning of line |
| c | delete and enter insert mode |
| cc | delete line and enter insert |
| D | delete from cursor to end of line |
| S | delete line and insert |
| fT | forward to T char |
| dt) | (d)elete (t) ), replace if |
| { | jump backward paragraph |
| } | jump forward paragraph |
| ]m | jump to open squirly |
| % | jump between pairs, [{( |
| di{ | delete between squirly brace |
| diw | delete from within word |
Modes
(n) Normal
zz: re-center window scroll
mA mark with A as global mark
'A navigate to mark
mb mark within a file
ctrl+^ back to prev file
ctrl+o jump back to where you were
"byy yank into b register
"bp paste from b register
ctrl+u page up jump
ctrl+d page down jump
(i) Insert
i: insert left of cursor
a: insert right of cursor
I: insert at beginning of line
A: insert at end of line
o: insert below line
O: insert above line
(v) Visual (V) Visual Line (ctrl+w) window mode
Commands
:reg: show register of commands
:set scrolloff=8 set the scroll to auto scroll when 8 lines remain
:set number add line numbers
:set relativenumber or :set rnu set the current line as relative to count lines
6dj: delete 6 lines from current position, same as 7dd
V6jd: visually select 6 lines and delete
:set norelativenumber turn off relative numbers
:h expandtab view help for expandtab
:h expand ctrl+d expand help popup menu
:colorscheme koehler set color to koehler
:Ex explore current dir
:Sex split explorer
:Vex vertical split explorer ctrl+w+o close splits
:so % source current file
:e edit, use glob patterns for fuzzy find
:ju see jump list
:w write file
:set hls ic set highlight and incremental search
qa begin recording macro a
q quit recording macro
.vimrc
Edit ~/.vimrc
set scrolloff=8
set number
set relativenumber
set tabstop=4 softtabstop=4
set shiftwidth=4
set expandtab
set smartindent
call plug#begin('~/.vim/plugged')
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
Plug 'ayu-theme/ayu-vim'
call plug#end()
set termguicolors " enable true colors support
let ayucolor="mirage" " for mirage version of theme
colorscheme ayu
let mapleader = " "
nnoremap <leader>pv :Vex<CR>
nnoremap <leader><CR> :so ~/.vimrc<CR>
nnoremap <C-p> :GFiles<CR>
noremap <leader>pf :Files<CR>
vnoremap <leader>y "+y
nnoremap <leader>y "+y