Last active
September 13, 2019 12:20
-
-
Save iboard/53176a554f74b8097e4c06da795fb929 to your computer and use it in GitHub Desktop.
my .vimrc file
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
" | |
" Andi Altendorfer's VIM Setup | |
" For macbook 'craftsman', started from scratch, 2019-05-03 | |
" --------------------------------------------------------- | |
if filereadable(expand("~/.vimrc.plugins")) | |
source ~/.vimrc.plugins | |
endif | |
" | |
" BASIC SETUP | |
" -----------------------------------------------" | |
" | |
set path+=** | |
set number | |
set relativenumber | |
set tabstop=4 softtabstop=0 expandtab shiftwidth=2 smarttab | |
set mouse=a | |
set hidden | |
" Highlight all occurrences of a search | |
" See KEY MAPPING below: <leader>s to remove highlightings | |
set hlsearch | |
filetype on | |
let g:netrw_list_hide= '.*\.swp$' | |
" Set colorscheme | |
let g:enable_bold_font = 1 | |
let g:enable_italic_font = 1 | |
let g:hybrid_transparent_background = 1 | |
let g:sierra_Pitch = 1 | |
" colorscheme tender | |
colorscheme github | |
if filereadable(expand("~/.vim/colors/local.vim")) | |
source ~/.vim/colors/local.vim | |
colorscheme local | |
endif | |
" KEY MAPPING | |
" -----------------------------------------------" | |
let mapleader = "," | |
" Safe the shift-key and use ; just as : | |
nmap ; : | |
" back to last buffer | |
nmap <leader>b :b#<cr> | |
" open Vex | |
nmap <leader>v :Vex<cr> | |
" find files | |
nmap <leader>f :find | |
nmap <leader>o :Files<cr> | |
" Search (and replace) | |
" Search for the current word | |
nmap <silent>fw<leader> viwy<ESC>/<c-r>"<cr> | |
" Press c-f in visual to highlight all occurrences of the selection | |
vnoremap <c-f> y<ESC>/<c-r>"<CR> | |
" Toggle highlight | |
nmap <leader>r :set hlsearch!<cr> | |
" write and quit current buffer | |
nmap <leader>q :q<cr> | |
nmap <leader>w :w<cr> | |
nmap <leader>x :x<cr> | |
" Key mappings for programmers | |
nmap <leader>s viwy:vimgrep /<C-R>"/ ./lib/**/*.{ex,exs,eex}<cr> | |
nmap <leader>t :wall<cr>:call RunCTags()<cr> | |
" ZOOM current pane <leader>,z and <leader>= | |
" ------------------------------------------- | |
function! ZoomWindow() | |
if winheight(0) >= (&lines - 4) && winwidth(0) >= (&columns - 2) | |
exec "resize " . g:lastwh " | vertical resize ". g:lastww | |
else | |
let g:lastwh = winheight(0) | |
let g:lastww = winwidth(0) | |
wincmd _ | |
wincmd | | |
endif | |
endfun | |
nnoremap <silent> <leader>z :call ZoomWindow()<cr> | |
nnoremap <silent> <leader>= <C-w>= | |
" | |
" CODING SETUP | |
" -----------------------------------------------" | |
" | |
" General coding | |
syntax on | |
set wildignore+=**/node_modules/**,**/_build/**,**/.git/**,**/deps/** | |
set foldmethod=syntax | |
set foldlevelstart=20 | |
" Remove trailing spaces before write | |
autocmd BufWritePre *{.ex,*exs,*rb,*eex,*html} %s/\s\+$//e | |
" Set filetype on new and read buffers | |
au BufNewFile,BufRead *.md set filetype=markdown | |
au BufNewFile,BufRead *.html.eex set filetype=html | |
au BufNewFile,BufRead *.ex set filetype=elixir | |
au BufNewFile,BufRead *.exs set filetype=elixir | |
" ====== | |
" Elixir | |
" ====== | |
function! RunFormatter() | |
exec '!mix format %' | |
endfunction | |
function! RunCurrentLineTest() | |
exec "!mix test %:" . line(".") | |
endfunction | |
nmap <silent>,tl :call RunCurrentLineTest()<cr> | |
nmap <silent>,ts :!mix test --stale<cr> | |
nmap <silent>,tf :!mix test % <cr> | |
function! RunCTags() | |
exec '!ctags -R --exclude=.git --exclude=node_modules --exclude=_build --exclude=deps --exclude=priv --exclude=**/*.js . &' | |
endfunction | |
set autoread | |
autocmd! BufWritePost *.{ex,exs} silent call RunCTags() | |
autocmd BufWritePost *.{ex,exs} silent call RunFormatter() | |
" | |
" AUTOSAVE SESSION PER DIRECTORY | |
" ============================== | |
fu! SaveSess() | |
if isdirectory(".vim") | |
execute 'mksession! ./.vim/session.vim' | |
endif | |
endfunction | |
fu! RestoreSess() | |
if isdirectory("./.vim") | |
so ./.vim/session.vim | |
if bufexists(1) | |
for l in range(1, bufnr('$')) | |
if bufwinnr(l) == -1 | |
exec 'sbuffer ' . l | |
endif | |
endfor | |
endif | |
endif | |
endfunction | |
nmap <silent> <leader>ss :call SaveSess()<cr> | |
nmap <silent> <leader>sl :call RestoreSess()<cr> | |
" ------------------------------ |
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
" | |
" Andi Altendorfer's VIM Setup | |
" For macbook 'craftsman', started from scratch, 2019-05-03 | |
" --------------------------------------------------------- | |
if filereadable(expand("~/.vimrc.plugins")) | |
source ~/.vimrc.plugins | |
endif | |
" | |
" BASIC SETUP | |
" -----------------------------------------------" | |
" | |
set path+=** | |
let mapleader = "," | |
set number | |
set relativenumber | |
filetype on | |
let g:netrw_list_hide= '.*\.swp$' | |
" Set colorscheme | |
let g:enable_bold_font = 1 | |
let g:enable_italic_font = 1 | |
let g:hybrid_transparent_background = 1 | |
let g:sierra_Pitch = 1 | |
colorscheme tender | |
" KEY MAPPING | |
" -----------------------------------------------" | |
nmap <leader>b :b#<cr> | |
nmap <leader>f :Vex<cr> | |
nmap <leader>q :q<cr> | |
" | |
" CODING SETUP | |
" -----------------------------------------------" | |
" | |
" General coding | |
syntax on | |
set wildignore+=**/node_modules/**,**/_build/**,**/.git/**,**/deps/** | |
set foldmethod=syntax | |
" Set filetype on new and read buffers | |
au BufNewFile,BufRead *.md set filetype=markdown | |
au BufNewFile,BufRead *.html.eex set filetype=html | |
au BufNewFile,BufRead *.ex set filetype=elixir | |
au BufNewFile,BufRead *.exs set filetype=elixir | |
" Elixir | |
function! RunFormatter() | |
exec '!mix format %' | |
endfunction | |
function! RunCTags() | |
exec '!ctags -R --exclude=.git --exclude=node_modules --exclude=_build --exclude=deps --exclude=priv % &' | |
endfunction | |
set autoread | |
autocmd! BufWritePost *.{ex,exs} silent call RunCTags() | |
autocmd BufWritePost *.{ex,exs} silent call RunFormatter() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment