205 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| call plug#begin(stdpath('data') . '/plugged')
 | |
| 
 | |
| "Timmy Popester
 | |
| Plug 'tpope/vim-surround'
 | |
| Plug 'tpope/vim-repeat'
 | |
| Plug 'tpope/vim-commentary'
 | |
| Plug 'tpope/vim-fugitive'
 | |
| Plug 'jiangmiao/auto-pairs'
 | |
| 
 | |
| " Nav
 | |
| Plug 'rhysd/clever-f.vim' 
 | |
| Plug 'easymotion/vim-easymotion'
 | |
| 
 | |
| " Utilities
 | |
| " Plug 'Yggdroot/LeaderF', { 'do': ':LeaderfInstallCExtension' }
 | |
| Plug 'mhinz/vim-startify'
 | |
| Plug 'mbbill/undotree'
 | |
| Plug 'junegunn/vim-easy-align'
 | |
| Plug 'famiu/nvim-reload'
 | |
| Plug 'kyazdani42/nvim-web-devicons'
 | |
| Plug 'nvim-lua/plenary.nvim'
 | |
| Plug 'nvim-lua/popup.nvim'
 | |
| Plug 'nvim-telescope/telescope.nvim'
 | |
| 
 | |
| " Languages
 | |
| Plug 'dag/vim-fish', { 'for' : 'fish' }
 | |
| 
 | |
| " Stuff to maybe install later
 | |
| 
 | |
| Plug 'airblade/vim-gitgutter'  " This one is going to depend on whether vim still remains snappy
 | |
| 
 | |
| " Plug 'ionide/Ionide-vim', {    " Are we really going to try and develop on vim?
 | |
| "       \ 'do':  'make fsautocomplete',
 | |
| "       \}
 | |
| " Plug 'autozimu/LanguageClient-neovim', { 'branch': 'next', 'do': 'bash install.sh' }
 | |
| 
 | |
| 
 | |
| call plug#end()
 | |
| 
 | |
| set number
 | |
| set relativenumber
 | |
| set autochdir
 | |
| set splitbelow
 | |
| set splitright
 | |
| set tabstop=4
 | |
| set tw=80
 | |
| set ft+=t
 | |
| set shiftwidth=4
 | |
| set expandtab
 | |
| set softtabstop=4
 | |
| set nowrap
 | |
| set ignorecase
 | |
| set smartcase
 | |
| set noswapfile
 | |
| set nobackup
 | |
| set hidden
 | |
| set wildmenu
 | |
| set clipboard=unnamedplus
 | |
| set shell=/bin/bash
 | |
| 
 | |
| if exists('g:fvim_loaded')
 | |
|     nnoremap <silent> <C-=> :set guifont=+<CR>
 | |
|     nnoremap <silent> <C--> :set guifont=-<CR>
 | |
|     FVimCursorSmoothMove v:false
 | |
|     FVimCursorSmoothBlink v:true
 | |
|     FVimFontAutoSnap v:true
 | |
| endif
 | |
| 
 | |
| 
 | |
| let mapleader = " "
 | |
| 
 | |
| nnoremap Y y$
 | |
| nnoremap vv ^vg_
 | |
| noremap \ q
 | |
| noremap $ g_
 | |
| nnoremap ' `
 | |
| nnoremap ` '
 | |
| nnoremap - :Ex<CR>
 | |
| map , <Plug>(easymotion-prefix)
 | |
| 
 | |
| nnoremap <silent> <Leader>/ :nohlsearch<CR>
 | |
| nnoremap <Leader>w :w<CR>
 | |
| nnoremap <silent> <Leader>rl :so $MYVIMRC<CR>:echo 'init.vim Reloaded!'<CR>
 | |
| nnoremap <silent> <Leader>ei :e $MYVIMRC<CR>
 | |
| nnoremap <silent> <Leader>bk :bd<CR> 
 | |
| nnoremap <silent> <Leader>bb :b#<CR> 
 | |
| " nnoremap <silent> <Leader>q :call DeleteBuffer()<CR>
 | |
| nnoremap <silent> <Leader>q :q<CR>
 | |
| nnoremap <C-W>o :call MaximizeToggle()<CR>
 | |
| 
 | |
| nnoremap <silent> <C-CR> :e term://fish<CR>
 | |
| nnoremap <silent> <C-s>v :vsplit term://fish<CR>
 | |
| nnoremap <silent> <C-s>s :split term://fish<CR>
 | |
| nnoremap <silent> <C-s>t :tabnew term://fish<CR>
 | |
| tnoremap <A-e> <C-\><C-n>
 | |
| tnoremap <A-h> <C-\><C-N><C-w>h
 | |
| tnoremap <A-j> <C-\><C-N><C-w>j
 | |
| tnoremap <A-k> <C-\><C-N><C-w>k
 | |
| tnoremap <A-l> <C-\><C-N><C-w>l
 | |
| inoremap <A-h> <C-\><C-N><C-w>h
 | |
| inoremap <A-j> <C-\><C-N><C-w>j
 | |
| inoremap <A-k> <C-\><C-N><C-w>k
 | |
| inoremap <A-l> <C-\><C-N><C-w>l
 | |
| nnoremap <A-h> <C-w>h
 | |
| nnoremap <A-j> <C-w>j
 | |
| nnoremap <A-k> <C-w>k
 | |
| nnoremap <A-l> <C-w>l
 | |
| 
 | |
| noremap  <A-H>     <C-\><C-n>:tabprev<CR>
 | |
| noremap  <A-L>     <C-\><C-n>:tabnext<CR>
 | |
| tnoremap <A-H>     <C-\><C-n>:tabprev<CR>
 | |
| tnoremap <A-L>     <C-\><C-n>:tabnext<CR>
 | |
| inoremap <A-H>     <C-\><C-n>:tabprev<CR>
 | |
| inoremap <A-L>     <C-\><C-n>:tabnext<CR>
 | |
| noremap  <A-Left>  <C-\><C-n>:tabm -1<CR>
 | |
| noremap  <A-Right> <C-\><C-n>:tabm +1<CR>
 | |
| noremap  <A-S-Left>  :vert resize -3<CR>
 | |
| noremap  <A-S-Right> :vert resize +3<CR>
 | |
| noremap  <A-S-Down>  :resize +3<CR>
 | |
| noremap  <A-S-Up>    :resize -3<CR>
 | |
| 
 | |
| nnoremap <C-t>n :tabnew<CR>
 | |
| nnoremap <C-t>k :tabclose<CR>
 | |
| 
 | |
| nnoremap <Leader>pi :w<CR>:so $MYVIMRC<CR>:PlugInstall<CR>
 | |
| nnoremap <Leader>pc :w<CR>:so $MYVIMRC<CR>:PlugClean<CR>
 | |
| 
 | |
| augroup terminal_settings
 | |
| autocmd!
 | |
| 
 | |
| autocmd BufWinEnter,WinEnter term://* startinsert | setlocal norelativenumber nonumber nocursorcolumn  nocursorline
 | |
| autocmd BufLeave term://* stopinsert
 | |
| 
 | |
| " Ignore various filetypes as those will close terminal automatically
 | |
| " Ignore fzf, ranger, coc
 | |
| autocmd TermClose term://*
 | |
|       \ if (expand('<afile>') !~ "fzf") && (expand('<afile>') !~ "ranger") && (expand('<afile>') !~ "coc") |
 | |
|       \   call nvim_input('<CR>')  |
 | |
|       \ endif
 | |
| augroup END
 | |
| 
 | |
| " Plugins
 | |
| 
 | |
| " Clever-F
 | |
| let g:clever_f_fix_key_direction = 1
 | |
| 
 | |
| " EasyMotion
 | |
| let g:EasyMotion_startofline = 0
 | |
| let g:EasyMotion_keys = 'asdfjklhgwueiroxnmvczqp'
 | |
| 
 | |
| " LeaderF
 | |
| let g:Lf_ShortcutF = ''
 | |
| let g:Lf_ShortcutB = ''
 | |
| let g:Lf_WindowPosition = 'popup'
 | |
| let g:Lf_PreviewInPopup = 1
 | |
| 
 | |
| noremap ;f :Leaderf file<CR>
 | |
| noremap ;b :Leaderf buffer<CR>
 | |
| noremap ;m :Leaderf mru<CR>
 | |
| noremap ;c :Leaderf command<CR>
 | |
| noremap ;h :Leaderf help<CR>
 | |
| noremap ;l :Leaderf line<CR>
 | |
| noremap ;w :Leaderf window<CR>
 | |
| noremap ;a :Leaderf self<CR>
 | |
| 
 | |
| " Easy Align
 | |
| xmap ga <Plug>(EasyAlign)
 | |
| nmap ga <Plug>(EasyAlign)
 | |
| 
 | |
| " Custom Functions
 | |
| 
 | |
| function! MaximizeToggle()
 | |
|   if exists("s:maximize_session")
 | |
|     exec "source " . s:maximize_session
 | |
|     call delete(s:maximize_session)
 | |
|     unlet s:maximize_session
 | |
|     let &hidden=s:maximize_hidden_save
 | |
|     unlet s:maximize_hidden_save
 | |
|   else
 | |
|     let s:maximize_hidden_save = &hidden
 | |
|     let s:maximize_session = tempname()
 | |
|     set hidden
 | |
|     exec "mksession! " . s:maximize_session
 | |
|     only
 | |
|   endif
 | |
| endfunction
 | |
| 
 | |
| function! DeleteBuffer()
 | |
|   let l:buflisted = getbufinfo({'buflisted': 1})
 | |
|   let [l:cur_winnr, l:cur_bufnr] = [winnr(), bufnr()]
 | |
|   " There's a bug where if it's a help window, it'll kill everything, so
 | |
|   " remove this for now
 | |
| "  if len(l:buflisted) < 2 | confirm qall | return | endif
 | |
|   for l:winid in getbufinfo(l:cur_bufnr)[0].windows
 | |
|     execute(win_id2win(l:winid) . 'wincmd w')
 | |
|     if l:cur_bufnr == l:buflisted[-1].bufnr | bp | else | bn | endif
 | |
|   endfor
 | |
|   execute(l:cur_winnr . 'wincmd w')
 | |
|   let l:is_terminal = getbufvar(l:cur_bufnr, '&buftype') == 'terminal'
 | |
|   if l:is_terminal | bd! # | else | silent! confirm bd # | endif
 | |
| endfunction
 | |
| 
 | |
| 
 | |
| 
 |