mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-26 03:04:06 +00:00
feat(config): add vim config (#61)
* feat: vim config * fix: nvim was getting vimrc config * chore: cleanup, cr fix * feat(config): add config/fish/alias.fish
This commit is contained in:
@@ -7,6 +7,8 @@ x-have eza && {
|
|||||||
alias ls="eza -h -s=type --git --icons --group-directories-first"
|
alias ls="eza -h -s=type --git --icons --group-directories-first"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
alias vim='vim -u "$XDG_CONFIG_HOME/vim/vimrc"'
|
||||||
|
|
||||||
# Easier navigation: .., ..., ....
|
# Easier navigation: .., ..., ....
|
||||||
alias ..="cd .."
|
alias ..="cd .."
|
||||||
alias ...="cd ../.."
|
alias ...="cd ../.."
|
||||||
|
|||||||
4
config/fish/alias.fish
Normal file
4
config/fish/alias.fish
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# Set aliases for fish shell
|
||||||
|
|
||||||
|
alias vim='vim -u "$XDG_CONFIG_HOME/vim/vimrc"'
|
||||||
|
|
||||||
@@ -2,6 +2,9 @@
|
|||||||
# │ fish/config.fish │
|
# │ fish/config.fish │
|
||||||
# ╰──────────────────────────────────────────────────────────╯
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
test -e "$HOME/.config/fish/alias.fish" &&
|
||||||
|
source "$HOME/.config/fish/alias.fish"
|
||||||
|
|
||||||
test -e "$HOME/.config/fish/exports.fish" &&
|
test -e "$HOME/.config/fish/exports.fish" &&
|
||||||
source "$HOME/.config/fish/exports.fish"
|
source "$HOME/.config/fish/exports.fish"
|
||||||
|
|
||||||
|
|||||||
1
config/vim/.gitignore
vendored
Normal file
1
config/vim/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
plugged
|
||||||
2887
config/vim/autoload/plug.vim
Normal file
2887
config/vim/autoload/plug.vim
Normal file
File diff suppressed because it is too large
Load Diff
697
config/vim/vimrc
Normal file
697
config/vim/vimrc
Normal file
@@ -0,0 +1,697 @@
|
|||||||
|
" vim-bootstrap 2024-04-26 07:50:42
|
||||||
|
|
||||||
|
" https://tlvince.com/vim-respect-xdg
|
||||||
|
set directory=$XDG_CACHE_HOME/vim,~/,/tmp
|
||||||
|
set backupdir=$XDG_CACHE_HOME/vim,~/,/tmp
|
||||||
|
set viminfo+=n$XDG_CACHE_HOME/vim/viminfo
|
||||||
|
set runtimepath=$XDG_CONFIG_HOME/vim,$XDG_CONFIG_HOME/vim/after,$VIM,$VIMRUNTIME
|
||||||
|
let $MYVIMRC="$XDG_CONFIG_HOME/vim/vimrc"
|
||||||
|
|
||||||
|
set v=$XDG_CONFIG_HOME/vim
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Vim-Plug core
|
||||||
|
"*****************************************************************************
|
||||||
|
let vimplug_exists=expand(v . '/autoload/plug.vim')
|
||||||
|
if has('win32')&&!has('win64')
|
||||||
|
let curl_exists=expand('C:\Windows\Sysnative\curl.exe')
|
||||||
|
else
|
||||||
|
let curl_exists=expand('curl')
|
||||||
|
endif
|
||||||
|
|
||||||
|
let g:vim_bootstrap_langs = "go,html,javascript,lua,php,python,typescript"
|
||||||
|
let g:vim_bootstrap_editor = "vim" " nvim or vim
|
||||||
|
let g:vim_bootstrap_theme = "material"
|
||||||
|
let g:vim_bootstrap_frams = "vuejs"
|
||||||
|
|
||||||
|
if !filereadable(vimplug_exists)
|
||||||
|
if !executable(curl_exists)
|
||||||
|
echoerr "You have to install curl or first install vim-plug yourself!"
|
||||||
|
execute "q!"
|
||||||
|
endif
|
||||||
|
echo "Installing Vim-Plug..."
|
||||||
|
echo ""
|
||||||
|
silent exec "!"curl_exists" -fLo " . shellescape(vimplug_exists) . " --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"
|
||||||
|
let g:not_finish_vimplug = "yes"
|
||||||
|
|
||||||
|
autocmd VimEnter * PlugInstall
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Required:
|
||||||
|
call plug#begin(expand(v . '/plugged'))
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Plug install packages
|
||||||
|
"*****************************************************************************
|
||||||
|
Plug 'scrooloose/nerdtree'
|
||||||
|
Plug 'jistr/vim-nerdtree-tabs'
|
||||||
|
Plug 'tpope/vim-commentary'
|
||||||
|
Plug 'tpope/vim-fugitive'
|
||||||
|
Plug 'vim-airline/vim-airline'
|
||||||
|
Plug 'vim-airline/vim-airline-themes'
|
||||||
|
Plug 'airblade/vim-gitgutter'
|
||||||
|
Plug 'vim-scripts/grep.vim'
|
||||||
|
Plug 'vim-scripts/CSApprox'
|
||||||
|
Plug 'Raimondi/delimitMate'
|
||||||
|
Plug 'majutsushi/tagbar'
|
||||||
|
Plug 'dense-analysis/ale'
|
||||||
|
Plug 'Yggdroot/indentLine'
|
||||||
|
Plug 'editor-bootstrap/vim-bootstrap-updater'
|
||||||
|
Plug 'tpope/vim-rhubarb' " required by fugitive to :GBrowse
|
||||||
|
Plug 'kaicataldo/material.vim'
|
||||||
|
|
||||||
|
|
||||||
|
if isdirectory('~/.local/bin/fzf')
|
||||||
|
Plug '~/.local/bin/fzf' | Plug 'junegunn/fzf.vim'
|
||||||
|
else
|
||||||
|
Plug 'junegunn/fzf', { 'dir': '~/.local/bin/fzf', 'do': './install --bin' }
|
||||||
|
Plug 'junegunn/fzf.vim'
|
||||||
|
endif
|
||||||
|
let g:make = 'gmake'
|
||||||
|
if exists('make')
|
||||||
|
let g:make = 'make'
|
||||||
|
endif
|
||||||
|
Plug 'Shougo/vimproc.vim', {'do': g:make}
|
||||||
|
|
||||||
|
"" Vim-Session
|
||||||
|
Plug 'xolox/vim-misc'
|
||||||
|
Plug 'xolox/vim-session'
|
||||||
|
|
||||||
|
"" Snippets
|
||||||
|
Plug 'SirVer/ultisnips'
|
||||||
|
Plug 'honza/vim-snippets'
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Custom bundles
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
" go
|
||||||
|
"" Go Lang Bundle
|
||||||
|
Plug 'fatih/vim-go', {'do': ':GoInstallBinaries'}
|
||||||
|
|
||||||
|
|
||||||
|
" html
|
||||||
|
"" HTML Bundle
|
||||||
|
Plug 'hail2u/vim-css3-syntax'
|
||||||
|
Plug 'gko/vim-coloresque'
|
||||||
|
Plug 'tpope/vim-haml'
|
||||||
|
Plug 'mattn/emmet-vim'
|
||||||
|
|
||||||
|
|
||||||
|
" javascript
|
||||||
|
"" Javascript Bundle
|
||||||
|
Plug 'jelera/vim-javascript-syntax'
|
||||||
|
|
||||||
|
|
||||||
|
" lua
|
||||||
|
"" Lua Bundle
|
||||||
|
Plug 'xolox/vim-lua-ftplugin'
|
||||||
|
Plug 'xolox/vim-lua-inspect'
|
||||||
|
|
||||||
|
|
||||||
|
" php
|
||||||
|
"" PHP Bundle
|
||||||
|
Plug 'phpactor/phpactor', {'for': 'php', 'do': 'composer install --no-dev -o'}
|
||||||
|
Plug 'stephpy/vim-php-cs-fixer'
|
||||||
|
|
||||||
|
|
||||||
|
" python
|
||||||
|
"" Python Bundle
|
||||||
|
Plug 'davidhalter/jedi-vim'
|
||||||
|
Plug 'raimon49/requirements.txt.vim', {'for': 'requirements'}
|
||||||
|
|
||||||
|
|
||||||
|
" typescript
|
||||||
|
Plug 'leafgarland/typescript-vim'
|
||||||
|
Plug 'HerringtonDarkholme/yats.vim'
|
||||||
|
|
||||||
|
|
||||||
|
" vuejs
|
||||||
|
Plug 'posva/vim-vue'
|
||||||
|
Plug 'leafOfTree/vim-vue-plugin'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
"" Include user's extra bundle
|
||||||
|
if filereadable(expand("~/.config/vim/vimrc.local.bundles"))
|
||||||
|
source ~/.config/vim/vimrc.local.bundles
|
||||||
|
endif
|
||||||
|
|
||||||
|
call plug#end()
|
||||||
|
|
||||||
|
" Required:
|
||||||
|
filetype plugin indent on
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Basic Setup
|
||||||
|
"*****************************************************************************"
|
||||||
|
"" Encoding
|
||||||
|
set encoding=utf-8
|
||||||
|
set fileencoding=utf-8
|
||||||
|
set fileencodings=utf-8
|
||||||
|
set ttyfast
|
||||||
|
|
||||||
|
"" Fix backspace indent
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
|
||||||
|
"" Tabs. May be overridden by autocmd rules
|
||||||
|
set tabstop=4
|
||||||
|
set softtabstop=0
|
||||||
|
set shiftwidth=4
|
||||||
|
set expandtab
|
||||||
|
|
||||||
|
"" Map leader to <space>
|
||||||
|
let mapleader=' '
|
||||||
|
|
||||||
|
"" Enable hidden buffers
|
||||||
|
set hidden
|
||||||
|
|
||||||
|
"" Searching
|
||||||
|
set hlsearch
|
||||||
|
set incsearch
|
||||||
|
set ignorecase
|
||||||
|
set smartcase
|
||||||
|
|
||||||
|
set fileformats=unix,dos,mac
|
||||||
|
|
||||||
|
if exists('$SHELL')
|
||||||
|
set shell=$SHELL
|
||||||
|
else
|
||||||
|
set shell=/bin/sh
|
||||||
|
endif
|
||||||
|
|
||||||
|
" session management
|
||||||
|
let g:session_directory = "~/.local/state/vim/session"
|
||||||
|
let g:session_autoload = "no"
|
||||||
|
let g:session_autosave = "yes"
|
||||||
|
let g:session_command_aliases = 1
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Visual Settings
|
||||||
|
"*****************************************************************************
|
||||||
|
syntax on
|
||||||
|
set ruler
|
||||||
|
set number
|
||||||
|
|
||||||
|
let no_buffers_menu=1
|
||||||
|
colorscheme material
|
||||||
|
|
||||||
|
|
||||||
|
" Better command line completion
|
||||||
|
set wildmenu
|
||||||
|
|
||||||
|
" mouse support
|
||||||
|
set mouse=a
|
||||||
|
|
||||||
|
set mousemodel=popup
|
||||||
|
set t_Co=256
|
||||||
|
set guioptions=egmrti
|
||||||
|
set gfn=Monospace\ 13
|
||||||
|
|
||||||
|
if has("gui_running")
|
||||||
|
if has("gui_mac") || has("gui_macvim")
|
||||||
|
set guifont=Menlo:h14
|
||||||
|
set transparency=7
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
let g:CSApprox_loaded = 1
|
||||||
|
|
||||||
|
" IndentLine
|
||||||
|
let g:indentLine_enabled = 1
|
||||||
|
let g:indentLine_concealcursor = ''
|
||||||
|
let g:indentLine_char = '┆'
|
||||||
|
let g:indentLine_faster = 1
|
||||||
|
|
||||||
|
|
||||||
|
if $COLORTERM == 'gnome-terminal'
|
||||||
|
set term=gnome-256color
|
||||||
|
else
|
||||||
|
if $TERM == 'xterm'
|
||||||
|
set term=xterm-256color
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
if &term =~ '256color'
|
||||||
|
set t_ut=
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
"" Disable the blinking cursor.
|
||||||
|
set gcr=a:blinkon0
|
||||||
|
|
||||||
|
set scrolloff=3
|
||||||
|
|
||||||
|
|
||||||
|
"" Status bar
|
||||||
|
set laststatus=2
|
||||||
|
|
||||||
|
"" Use modeline overrides
|
||||||
|
set modeline
|
||||||
|
set modelines=10
|
||||||
|
|
||||||
|
set title
|
||||||
|
set titleold="Terminal"
|
||||||
|
set titlestring=%F
|
||||||
|
|
||||||
|
set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L,\ col\ %c)\
|
||||||
|
|
||||||
|
" Search mappings: These will make it so that going to the next one in a
|
||||||
|
" search will center on the line it's found in.
|
||||||
|
nnoremap n nzzzv
|
||||||
|
nnoremap N Nzzzv
|
||||||
|
|
||||||
|
if exists("*fugitive#statusline")
|
||||||
|
set statusline+=%{fugitive#statusline()}
|
||||||
|
endif
|
||||||
|
|
||||||
|
" vim-airline
|
||||||
|
let g:airline_theme = 'powerlineish'
|
||||||
|
let g:airline#extensions#branch#enabled = 1
|
||||||
|
let g:airline#extensions#ale#enabled = 1
|
||||||
|
let g:airline#extensions#tabline#enabled = 1
|
||||||
|
let g:airline#extensions#tagbar#enabled = 1
|
||||||
|
let g:airline_skip_empty_sections = 1
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Abbreviations
|
||||||
|
"*****************************************************************************
|
||||||
|
"" no one is really happy until you have this shortcuts
|
||||||
|
cnoreabbrev W! w!
|
||||||
|
cnoreabbrev Q! q!
|
||||||
|
cnoreabbrev Qall! qall!
|
||||||
|
cnoreabbrev Wq wq
|
||||||
|
cnoreabbrev Wa wa
|
||||||
|
cnoreabbrev wQ wq
|
||||||
|
cnoreabbrev WQ wq
|
||||||
|
cnoreabbrev W w
|
||||||
|
cnoreabbrev Q q
|
||||||
|
cnoreabbrev Qall qall
|
||||||
|
|
||||||
|
"" NERDTree configuration
|
||||||
|
let g:NERDTreeChDirMode=2
|
||||||
|
let g:NERDTreeIgnore=['node_modules','vendor','\.rbc$', '\~$', '\.pyc$', '\.db$', '\.sqlite$', '__pycache__']
|
||||||
|
let g:NERDTreeSortOrder=['^__\.py$', '\/$', '*', '\.swp$', '\.bak$', '\~$']
|
||||||
|
let g:NERDTreeShowBookmarks=1
|
||||||
|
let g:nerdtree_tabs_focus_on_files=1
|
||||||
|
let g:NERDTreeMapOpenInTabSilent = '<RightMouse>'
|
||||||
|
let g:NERDTreeWinSize = 50
|
||||||
|
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.db,*.sqlite,*node_modules/,*vendor/
|
||||||
|
nnoremap <silent> <F2> :NERDTreeFind<CR>
|
||||||
|
nnoremap <silent> <F3> :NERDTreeToggle<CR>
|
||||||
|
|
||||||
|
" grep.vim
|
||||||
|
nnoremap <silent> <leader>f :Rgrep<CR>
|
||||||
|
let Grep_Default_Options = '-IR'
|
||||||
|
let Grep_Skip_Files = '*.log *.db .DS_Store'
|
||||||
|
let Grep_Skip_Dirs = '.git node_modules vendor plugged'
|
||||||
|
|
||||||
|
" terminal emulation
|
||||||
|
nnoremap <silent> <leader>sh :terminal<CR>
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Commands
|
||||||
|
"*****************************************************************************
|
||||||
|
" remove trailing whitespaces
|
||||||
|
command! FixWhitespace :%s/\s\+$//e
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Functions
|
||||||
|
"*****************************************************************************
|
||||||
|
if !exists('*s:setupWrapping')
|
||||||
|
function s:setupWrapping()
|
||||||
|
set wrap
|
||||||
|
set wm=2
|
||||||
|
set textwidth=79
|
||||||
|
endfunction
|
||||||
|
endif
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Autocmd Rules
|
||||||
|
"*****************************************************************************
|
||||||
|
"" The PC is fast enough, do syntax highlight syncing from start unless 200 lines
|
||||||
|
augroup vimrc-sync-fromstart
|
||||||
|
autocmd!
|
||||||
|
autocmd BufEnter * :syntax sync maxlines=200
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
"" Remember cursor position
|
||||||
|
augroup vimrc-remember-cursor-position
|
||||||
|
autocmd!
|
||||||
|
autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
"" txt
|
||||||
|
augroup vimrc-wrapping
|
||||||
|
autocmd!
|
||||||
|
autocmd BufRead,BufNewFile *.txt call s:setupWrapping()
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
"" make/cmake
|
||||||
|
augroup vimrc-make-cmake
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType make setlocal noexpandtab
|
||||||
|
autocmd BufNewFile,BufRead CMakeLists.txt setlocal filetype=cmake
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
set autoread
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Mappings
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
"" Split
|
||||||
|
noremap <Leader>h :<C-u>split<CR>
|
||||||
|
noremap <Leader>v :<C-u>vsplit<CR>
|
||||||
|
|
||||||
|
"" Git
|
||||||
|
noremap <Leader>ga :Gwrite<CR>
|
||||||
|
noremap <Leader>gc :Git commit --verbose<CR>
|
||||||
|
noremap <Leader>gsh :Git push<CR>
|
||||||
|
noremap <Leader>gll :Git pull<CR>
|
||||||
|
noremap <Leader>gs :Git<CR>
|
||||||
|
noremap <Leader>gb :Git blame<CR>
|
||||||
|
noremap <Leader>gd :Gvdiffsplit<CR>
|
||||||
|
noremap <Leader>gr :GRemove<CR>
|
||||||
|
|
||||||
|
" session management
|
||||||
|
nnoremap <leader>so :OpenSession<Space>
|
||||||
|
nnoremap <leader>ss :SaveSession<Space>
|
||||||
|
nnoremap <leader>sd :DeleteSession<CR>
|
||||||
|
nnoremap <leader>sc :CloseSession<CR>
|
||||||
|
|
||||||
|
"" Tabs
|
||||||
|
nnoremap <Tab> gt
|
||||||
|
nnoremap <S-Tab> gT
|
||||||
|
nnoremap <silent> <S-t> :tabnew<CR>
|
||||||
|
|
||||||
|
"" Set working directory
|
||||||
|
nnoremap <leader>. :lcd %:p:h<CR>
|
||||||
|
|
||||||
|
"" Opens an edit command with the path of the currently edited file filled in
|
||||||
|
noremap <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
|
||||||
|
|
||||||
|
"" Opens a tab edit command with the path of the currently edited file filled
|
||||||
|
noremap <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR>
|
||||||
|
|
||||||
|
"" fzf.vim
|
||||||
|
set wildmode=list:longest,list:full
|
||||||
|
set wildignore+=*.o,*.obj,.git,*.rbc,*.pyc,__pycache__,vendor
|
||||||
|
let $FZF_DEFAULT_COMMAND = "find * -path '*/\.*' -prune -o -path 'node_modules/**' -prune -o -path 'target/**' -prune -o -path 'vendor/**' -prune -o -path 'dist/**' -prune -o -type f -print -o -type l -print 2> /dev/null"
|
||||||
|
|
||||||
|
" The Silver Searcher
|
||||||
|
if executable('ag')
|
||||||
|
let $FZF_DEFAULT_COMMAND = 'ag --hidden --ignore .git -g ""'
|
||||||
|
set grepprg=ag\ --nogroup\ --nocolor
|
||||||
|
endif
|
||||||
|
|
||||||
|
" ripgrep
|
||||||
|
if executable('rg')
|
||||||
|
let $FZF_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!.git/*"'
|
||||||
|
set grepprg=rg\ --vimgrep
|
||||||
|
command! -bang -nargs=* Find call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --glob "!.git/*" --color "always" '.shellescape(<q-args>).'| tr -d "\017"', 1, <bang>0)
|
||||||
|
endif
|
||||||
|
|
||||||
|
cnoremap <C-P> <C-R>=expand("%:p:h") . "/" <CR>
|
||||||
|
nnoremap <silent> <leader>b :Buffers<CR>
|
||||||
|
nnoremap <silent> <leader>e :FZF -m<CR>
|
||||||
|
"Recovery commands from history through FZF
|
||||||
|
nmap <leader>y :History:<CR>
|
||||||
|
|
||||||
|
" snippets
|
||||||
|
let g:UltiSnipsExpandTrigger="<tab>"
|
||||||
|
let g:UltiSnipsJumpForwardTrigger="<tab>"
|
||||||
|
let g:UltiSnipsJumpBackwardTrigger="<c-b>"
|
||||||
|
let g:UltiSnipsEditSplit="vertical"
|
||||||
|
|
||||||
|
" ale
|
||||||
|
let g:ale_linters = {}
|
||||||
|
|
||||||
|
" Tagbar
|
||||||
|
nmap <silent> <F4> :TagbarToggle<CR>
|
||||||
|
let g:tagbar_autofocus = 1
|
||||||
|
|
||||||
|
" Disable visualbell
|
||||||
|
set noerrorbells visualbell t_vb=
|
||||||
|
if has('autocmd')
|
||||||
|
autocmd GUIEnter * set visualbell t_vb=
|
||||||
|
endif
|
||||||
|
|
||||||
|
"" Copy/Paste/Cut
|
||||||
|
if has('unnamedplus')
|
||||||
|
set clipboard=unnamed,unnamedplus
|
||||||
|
endif
|
||||||
|
|
||||||
|
noremap YY "+y<CR>
|
||||||
|
noremap <leader>p "+gP<CR>
|
||||||
|
noremap XX "+x<CR>
|
||||||
|
|
||||||
|
if has('macunix')
|
||||||
|
" pbcopy for OSX copy/paste
|
||||||
|
vmap <C-x> :!pbcopy<CR>
|
||||||
|
vmap <C-c> :w !pbcopy<CR><CR>
|
||||||
|
endif
|
||||||
|
|
||||||
|
"" Buffer nav
|
||||||
|
noremap <leader>z :bp<CR>
|
||||||
|
noremap <leader>q :bp<CR>
|
||||||
|
noremap <leader>x :bn<CR>
|
||||||
|
noremap <leader>w :bn<CR>
|
||||||
|
|
||||||
|
"" Close buffer
|
||||||
|
noremap <leader>c :bd<CR>
|
||||||
|
|
||||||
|
"" Clean search (highlight)
|
||||||
|
nnoremap <silent> <leader><space> :noh<cr>
|
||||||
|
|
||||||
|
"" Switching windows
|
||||||
|
noremap <C-j> <C-w>j
|
||||||
|
noremap <C-k> <C-w>k
|
||||||
|
noremap <C-l> <C-w>l
|
||||||
|
noremap <C-h> <C-w>h
|
||||||
|
|
||||||
|
"" Vmap for maintain Visual Mode after shifting > and <
|
||||||
|
vmap < <gv
|
||||||
|
vmap > >gv
|
||||||
|
|
||||||
|
"" Move visual block
|
||||||
|
vnoremap J :m '>+1<CR>gv=gv
|
||||||
|
vnoremap K :m '<-2<CR>gv=gv
|
||||||
|
|
||||||
|
"" Open current line on GitHub
|
||||||
|
nnoremap <Leader>o :.GBrowse<CR>
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Custom configs
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
" go
|
||||||
|
" vim-go
|
||||||
|
" run :GoBuild or :GoTestCompile based on the go file
|
||||||
|
function! s:build_go_files()
|
||||||
|
let l:file = expand('%')
|
||||||
|
if l:file =~# '^\f\+_test\.go$'
|
||||||
|
call go#test#Test(0, 1)
|
||||||
|
elseif l:file =~# '^\f\+\.go$'
|
||||||
|
call go#cmd#Build(0)
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let g:go_list_type = "quickfix"
|
||||||
|
let g:go_fmt_command = "goimports"
|
||||||
|
let g:go_fmt_fail_silently = 1
|
||||||
|
|
||||||
|
let g:go_highlight_types = 1
|
||||||
|
let g:go_highlight_fields = 1
|
||||||
|
let g:go_highlight_functions = 1
|
||||||
|
let g:go_highlight_methods = 1
|
||||||
|
let g:go_highlight_operators = 1
|
||||||
|
let g:go_highlight_build_constraints = 1
|
||||||
|
let g:go_highlight_structs = 1
|
||||||
|
let g:go_highlight_generate_tags = 1
|
||||||
|
let g:go_highlight_space_tab_error = 0
|
||||||
|
let g:go_highlight_array_whitespace_error = 0
|
||||||
|
let g:go_highlight_trailing_whitespace_error = 0
|
||||||
|
let g:go_highlight_extra_types = 1
|
||||||
|
|
||||||
|
autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4
|
||||||
|
|
||||||
|
augroup completion_preview_close
|
||||||
|
autocmd!
|
||||||
|
if v:version > 703 || v:version == 703 && has('patch598')
|
||||||
|
autocmd CompleteDone * if !&previewwindow && &completeopt =~ 'preview' | silent! pclose | endif
|
||||||
|
endif
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
augroup go
|
||||||
|
|
||||||
|
au!
|
||||||
|
au Filetype go command! -bang A call go#alternate#Switch(<bang>0, 'edit')
|
||||||
|
au Filetype go command! -bang AV call go#alternate#Switch(<bang>0, 'vsplit')
|
||||||
|
au Filetype go command! -bang AS call go#alternate#Switch(<bang>0, 'split')
|
||||||
|
au Filetype go command! -bang AT call go#alternate#Switch(<bang>0, 'tabe')
|
||||||
|
|
||||||
|
au FileType go nmap <Leader>dd <Plug>(go-def-vertical)
|
||||||
|
au FileType go nmap <Leader>dv <Plug>(go-doc-vertical)
|
||||||
|
au FileType go nmap <Leader>db <Plug>(go-doc-browser)
|
||||||
|
|
||||||
|
au FileType go nmap <leader>r <Plug>(go-run)
|
||||||
|
au FileType go nmap <leader>t <Plug>(go-test)
|
||||||
|
au FileType go nmap <Leader>gt <Plug>(go-coverage-toggle)
|
||||||
|
au FileType go nmap <Leader>i <Plug>(go-info)
|
||||||
|
au FileType go nmap <silent> <Leader>l <Plug>(go-metalinter)
|
||||||
|
au FileType go nmap <C-g> :GoDecls<cr>
|
||||||
|
au FileType go nmap <leader>dr :GoDeclsDir<cr>
|
||||||
|
au FileType go imap <C-g> <esc>:<C-u>GoDecls<cr>
|
||||||
|
au FileType go imap <leader>dr <esc>:<C-u>GoDeclsDir<cr>
|
||||||
|
au FileType go nmap <leader>rb :<C-u>call <SID>build_go_files()<CR>
|
||||||
|
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
" ale
|
||||||
|
:call extend(g:ale_linters, {
|
||||||
|
\"go": ['golint', 'go vet'], })
|
||||||
|
|
||||||
|
|
||||||
|
" html
|
||||||
|
" for html files, 2 spaces
|
||||||
|
autocmd Filetype html setlocal ts=2 sw=2 expandtab
|
||||||
|
|
||||||
|
|
||||||
|
" javascript
|
||||||
|
let g:javascript_enable_domhtmlcss = 1
|
||||||
|
|
||||||
|
" vim-javascript
|
||||||
|
augroup vimrc-javascript
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType javascript setl tabstop=4|setl shiftwidth=4|setl expandtab softtabstop=4
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
|
||||||
|
" lua
|
||||||
|
|
||||||
|
|
||||||
|
" php
|
||||||
|
" Phpactor plugin
|
||||||
|
" Include use statement
|
||||||
|
nmap <Leader>u :call phpactor#UseAdd()<CR>
|
||||||
|
" Invoke the context menu
|
||||||
|
nmap <Leader>mm :call phpactor#ContextMenu()<CR>
|
||||||
|
" Invoke the navigation menu
|
||||||
|
nmap <Leader>nn :call phpactor#Navigate()<CR>
|
||||||
|
" Goto definition of class or class member under the cursor
|
||||||
|
nmap <Leader>oo :call phpactor#GotoDefinition()<CR>
|
||||||
|
nmap <Leader>oh :call phpactor#GotoDefinition('hsplit')<CR>
|
||||||
|
nmap <Leader>ov :call phpactor#GotoDefinition('vsplit')<CR>
|
||||||
|
nmap <Leader>ot :call phpactor#GotoDefinition('tabnew')<CR>
|
||||||
|
" Show brief information about the symbol under the cursor
|
||||||
|
nmap <Leader>K :call phpactor#Hover()<CR>
|
||||||
|
" Transform the classes in the current file
|
||||||
|
nmap <Leader>tt :call phpactor#Transform()<CR>
|
||||||
|
" Generate a new class (replacing the current file)
|
||||||
|
nmap <Leader>cc :call phpactor#ClassNew()<CR>
|
||||||
|
" Extract expression (normal mode)
|
||||||
|
nmap <silent><Leader>ee :call phpactor#ExtractExpression(v:false)<CR>
|
||||||
|
" Extract expression from selection
|
||||||
|
vmap <silent><Leader>ee :<C-U>call phpactor#ExtractExpression(v:true)<CR>
|
||||||
|
" Extract method from selection
|
||||||
|
vmap <silent><Leader>em :<C-U>call phpactor#ExtractMethod()<CR>
|
||||||
|
|
||||||
|
|
||||||
|
" python
|
||||||
|
" vim-python
|
||||||
|
augroup vimrc-python
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType python setlocal expandtab
|
||||||
|
\ shiftwidth=4 tabstop=8 colorcolumn=79
|
||||||
|
\ formatoptions+=croq softtabstop=4
|
||||||
|
\ cinwords=if,elif,else,for,while,try,except,finally,def,class,with
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
" jedi-vim
|
||||||
|
let g:jedi#popup_on_dot = 0
|
||||||
|
let g:jedi#goto_assignments_command = "<leader>g"
|
||||||
|
let g:jedi#goto_definitions_command = "<leader>d"
|
||||||
|
let g:jedi#documentation_command = "K"
|
||||||
|
let g:jedi#usages_command = "<leader>n"
|
||||||
|
let g:jedi#rename_command = "<leader>r"
|
||||||
|
let g:jedi#show_call_signatures = "0"
|
||||||
|
let g:jedi#completions_command = "<C-Space>"
|
||||||
|
let g:jedi#smart_auto_mappings = 0
|
||||||
|
|
||||||
|
" ale
|
||||||
|
:call extend(g:ale_linters, {
|
||||||
|
\'python': ['flake8'], })
|
||||||
|
|
||||||
|
" vim-airline
|
||||||
|
let g:airline#extensions#virtualenv#enabled = 1
|
||||||
|
|
||||||
|
" Syntax highlight
|
||||||
|
let python_highlight_all = 1
|
||||||
|
|
||||||
|
|
||||||
|
" typescript
|
||||||
|
let g:yats_host_keyword = 1
|
||||||
|
|
||||||
|
|
||||||
|
" vuejs
|
||||||
|
" vim vue
|
||||||
|
let g:vue_disable_pre_processors=1
|
||||||
|
" vim vue plugin
|
||||||
|
let g:vim_vue_plugin_load_full_syntax = 1
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
"" Include user's local vim config
|
||||||
|
if filereadable(expand("~/.config/vimrc.local"))
|
||||||
|
source ~/.config/vimrc.local
|
||||||
|
endif
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Convenience variables
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
" vim-airline
|
||||||
|
if !exists('g:airline_symbols')
|
||||||
|
let g:airline_symbols = {}
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists('g:airline_powerline_fonts')
|
||||||
|
let g:airline#extensions#tabline#left_sep = ' '
|
||||||
|
let g:airline#extensions#tabline#left_alt_sep = '|'
|
||||||
|
let g:airline_left_sep = '▶'
|
||||||
|
let g:airline_left_alt_sep = '»'
|
||||||
|
let g:airline_right_sep = '◀'
|
||||||
|
let g:airline_right_alt_sep = '«'
|
||||||
|
let g:airline#extensions#branch#prefix = '⤴' "➔, ➥, ⎇
|
||||||
|
let g:airline#extensions#readonly#symbol = '⊘'
|
||||||
|
let g:airline#extensions#linecolumn#prefix = '¶'
|
||||||
|
let g:airline#extensions#paste#symbol = 'ρ'
|
||||||
|
let g:airline_symbols.linenr = '␊'
|
||||||
|
let g:airline_symbols.branch = '⎇'
|
||||||
|
let g:airline_symbols.paste = 'ρ'
|
||||||
|
let g:airline_symbols.paste = 'Þ'
|
||||||
|
let g:airline_symbols.paste = '∥'
|
||||||
|
let g:airline_symbols.whitespace = 'Ξ'
|
||||||
|
else
|
||||||
|
let g:airline#extensions#tabline#left_sep = ''
|
||||||
|
let g:airline#extensions#tabline#left_alt_sep = ''
|
||||||
|
|
||||||
|
" powerline symbols
|
||||||
|
let g:airline_left_sep = ''
|
||||||
|
let g:airline_left_alt_sep = ''
|
||||||
|
let g:airline_right_sep = ''
|
||||||
|
let g:airline_right_alt_sep = ''
|
||||||
|
let g:airline_symbols.branch = ''
|
||||||
|
let g:airline_symbols.readonly = ''
|
||||||
|
let g:airline_symbols.linenr = ''
|
||||||
|
endif
|
||||||
Reference in New Issue
Block a user