259 lines
6.1 KiB
VimL
259 lines
6.1 KiB
VimL
call plug#begin("~/.nvim/bundle")
|
|
|
|
" Other
|
|
Plug 'prabirshrestha/async.vim'
|
|
|
|
" UI
|
|
Plug 'airblade/vim-gitgutter'
|
|
Plug 'Asheq/close-buffers.vim'
|
|
Plug 'haya14busa/incsearch.vim'
|
|
Plug 'mhinz/vim-startify'
|
|
Plug 'ryanoasis/vim-devicons'
|
|
Plug 'scrooloose/nerdtree'
|
|
Plug 'sjl/gundo.vim'
|
|
Plug 'tomasiser/vim-code-dark'
|
|
Plug 'vim-airline/vim-airline'
|
|
Plug 'vim-airline/vim-airline-themes'
|
|
Plug 'Yggdroot/indentLine'
|
|
|
|
" Programming helpers
|
|
"Plug 'bfrg/vim-cpp-modern'
|
|
"Plug 'guns/xterm-color-table.vim'
|
|
"Plug 'justmao945/vim-clang'
|
|
"Plug 'prabirshrestha/vim-lsp'
|
|
Plug 'Chiel92/vim-autoformat'
|
|
Plug 'deoplete-plugins/deoplete-clang'
|
|
Plug 'deoplete-plugins/deoplete-jedi'
|
|
Plug 'godlygeek/tabular'
|
|
Plug 'majutsushi/tagbar'
|
|
Plug 'scrooloose/syntastic'
|
|
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
|
Plug 'Shougo/neoinclude.vim'
|
|
Plug 'tpope/vim-sleuth'
|
|
Plug 'tpope/vim-surround'
|
|
|
|
" Language support
|
|
"Plug 'ryanolsonx/vim-lsp-swift'
|
|
Plug 'artur-shaik/vim-javacomplete2'
|
|
Plug 'cespare/vim-toml'
|
|
Plug 'digitaltoad/vim-pug'
|
|
Plug 'gryf/kickass-syntax-vim'
|
|
Plug 'hsanson/vim-android'
|
|
Plug 'keith/swift.vim'
|
|
Plug 'landaire/deoplete-swift'
|
|
Plug 'leafgarland/typescript-vim'
|
|
Plug 'martinda/Jenkinsfile-vim-syntax'
|
|
Plug 'mitsuhiko/vim-jinja'
|
|
Plug 'mxw/vim-jsx'
|
|
Plug 'natebosch/vim-lsc'
|
|
Plug 'plasticboy/vim-markdown'
|
|
Plug 'posva/vim-vue'
|
|
Plug 'rust-lang/rust.vim'
|
|
Plug 'tikhomirov/vim-glsl'
|
|
Plug 'udalov/kotlin-vim'
|
|
Plug 'ziglang/zig.vim'
|
|
|
|
call plug#end()
|
|
|
|
" Misc
|
|
set mouse=a
|
|
set nowrap
|
|
set shell=zsh
|
|
set scrolloff=5
|
|
set ruler
|
|
set backspace=2
|
|
set cursorline
|
|
set hidden
|
|
set wildmenu
|
|
set wildmode=longest:full
|
|
set splitright
|
|
set splitbelow
|
|
let &colorcolumn="+".join(range(1, 255), ",+")
|
|
let mapleader=","
|
|
set termguicolors
|
|
nnoremap <F4> :buffers<CR>:buffer<Space>
|
|
|
|
" Gundo
|
|
nnoremap <F9> :GundoToggle<CR>
|
|
|
|
" Tagbar
|
|
nmap <silent> <F8> :TagbarOpenAutoClose<CR>
|
|
let g:tagbar_sort = 0
|
|
|
|
" Airline
|
|
set laststatus=2
|
|
if !exists('g:airline_symbols')
|
|
let g:airline_symbols = {}
|
|
endif
|
|
|
|
let g:airline_theme = 'codedark'
|
|
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 = ''
|
|
let g:airline_symbols.maxlinenr = ''
|
|
let g:airline_symbols.whitespace = 'Ξ'
|
|
|
|
let g:airline#extensions#tabline#enabled = 1
|
|
let g:airline#extensions#tabline#left_sep = ''
|
|
let g:airline#extensions#tabline#left_alt_sep = '|'
|
|
let g:airline#extensions#tabline#show_tab_nr = 0
|
|
let g:airline#extensions#tabline#show_tab_type = 0
|
|
|
|
" Syntax coloring
|
|
syntax enable
|
|
set synmaxcol=1024
|
|
set background=dark
|
|
colorscheme codedark
|
|
hi WarningMsg ctermbg=0
|
|
|
|
" indentLine
|
|
let g:indentLine_color_term = 20
|
|
let g:indentLine_char = '│'
|
|
let g:indentLine_concealcursor = ''
|
|
let g:indentLine_indentLevel = 25
|
|
let g:indentLine_fileType = ['vhdl']
|
|
|
|
" Startify
|
|
let g:startify_session_dir = $HOME . '/.nvim/sessions'
|
|
let g:startify_session_autoload = 1
|
|
let g:startify_session_persistence = 1
|
|
|
|
" Formatting
|
|
set encoding=utf-8
|
|
set tabstop=8
|
|
set shiftwidth=4
|
|
set expandtab
|
|
set autoindent
|
|
set cino=:0
|
|
nnoremap <silent> <F5> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar>:nohl<CR> " Trim trailing spaces
|
|
set list listchars=tab:\ \ ,trail:•,precedes:…,extends:…
|
|
|
|
" Maximum line widths
|
|
au FileType text,markdown setlocal textwidth=80
|
|
au FileType python setlocal textwidth=79
|
|
|
|
" Line numbering
|
|
set number
|
|
|
|
" Search
|
|
set ignorecase
|
|
set smartcase
|
|
|
|
map / <Plug>(incsearch-forward)
|
|
map ? <Plug>(incsearch-backward)
|
|
map g/ <Plug>(incsearch-stay)
|
|
|
|
set hlsearch
|
|
let g:incsearch#auto_nohlsearch = 1
|
|
map n <Plug>(incsearch-nohl-n)
|
|
map N <Plug>(incsearch-nohl-N)
|
|
map * <Plug>(incsearch-nohl-*)
|
|
map # <Plug>(incsearch-nohl-#)
|
|
map g* <Plug>(incsearch-nohl-g*)
|
|
map g# <Plug>(incsearch-nohl-g#)
|
|
|
|
" Undos
|
|
set undofile
|
|
set undodir=~/.nvim/undo
|
|
set undolevels=1000
|
|
set undoreload=10000
|
|
|
|
" Completion
|
|
set completeopt=menu,menuone,longest
|
|
|
|
""" Shortcuts
|
|
"nnoremap <silent> <F4> :wa<CR>:split<CR>:terminal make run<CR>
|
|
vnoremap <C-y> "+y
|
|
inoremap <C-p> <ESC>"+pa
|
|
map <silent> <F2> :set invpaste<CR>
|
|
if has("nvim")
|
|
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
|
|
endif
|
|
nnoremap <A-h> <C-w>h
|
|
nnoremap <A-j> <C-w>j
|
|
nnoremap <A-k> <C-w>k
|
|
nnoremap <A-l> <C-w>l
|
|
nnoremap <silent> <C-t> :tabnew<CR>
|
|
nnoremap <silent> <C-n> :tabnext<CR>
|
|
nnoremap <silent> <C-p> :tabprevious<CR>
|
|
nnoremap <C-[> <C-t>
|
|
|
|
""" Cache
|
|
set backupdir=~/.nvim/backup
|
|
set directory=~/.nvim/backup
|
|
|
|
""" Vimpager
|
|
if exists("vimpager")
|
|
au BufRead * set scrolloff=0
|
|
set noruler
|
|
set nocursorline
|
|
set colorcolumn=
|
|
set nonumber
|
|
au BufRead * set laststatus=0
|
|
let g:airline#extensions#tabline#enabled = 0
|
|
endif
|
|
let vimpager_disable_ansiesc = 1
|
|
|
|
""" vim-markdown
|
|
let g:vim_markdown_folding_disabled = 1
|
|
|
|
""" NerdTree
|
|
map <C-n> :NERDTreeToggle<CR>
|
|
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
|
|
|
|
""" vim-autoformat
|
|
"au BufWrite * :Autoformat
|
|
|
|
""" vim-lsc
|
|
let g:lsc_server_commands = {'dart': 'dart_language_server'}
|
|
|
|
""" Deoplete
|
|
let g:deoplete#enable_at_startup = 1
|
|
let g:jedi#completions_enabled = 0
|
|
let g:jedi#auto_vim_configuration = 0
|
|
let g:jedi#smart_auto_mappings = 0
|
|
let g:jedi#show_call_signatures = 0
|
|
|
|
""" vim-clang
|
|
let g:clang_c_options = '-std=c11'
|
|
let g:clang_cpp_options = '-std=c++17'
|
|
|
|
""" syntastic
|
|
let g:syntastic_cpp_compiler = 'clang++'
|
|
let g:syntastic_cpp_compiler_options = '-std=c++17 -Wall -Wextra -pedantic'
|
|
|
|
""" vim-lsc
|
|
" C++/C
|
|
if executable('clangd')
|
|
au User lsp_setup call lsp#register_server({
|
|
\ 'name': 'clangd',
|
|
\ 'cmd': {server_info->['clangd']},
|
|
\ 'whitelist': ['c', 'cpp', 'objc', 'objcpp'],
|
|
\ })
|
|
endif
|
|
|
|
" Python
|
|
if executable('pyls')
|
|
" pip install python-language-server
|
|
au User lsp_setup call lsp#register_server({
|
|
\ 'name': 'pyls',
|
|
\ 'cmd': {server_info->['pyls']},
|
|
\ 'whitelist': ['python'],
|
|
\ })
|
|
endif
|
|
|
|
""" vim-javacomplete2
|
|
autocmd FileType java setlocal omnifunc=javacomplete#Complete
|
|
|
|
""" rust.vim
|
|
let g:rustfmt_autosave = 1
|
|
|
|
command! Workman set langmap=LO,OL,JN,NJ,KE,EK,HY,YH,lo,ol,jn,nj,ke,ek,hy,yh
|
|
command! Qwerty set langmap=
|