You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.9 KiB
Plaintext
91 lines
2.9 KiB
Plaintext
"" General
|
|
set encoding=UTF8
|
|
set number " Show line numbers
|
|
set linebreak " Break lines at word (requires Wrap lines)
|
|
set showbreak=+++ " Wrap-broken line prefix
|
|
set textwidth=160 " Line wrap (number of cols)
|
|
set showmatch " Highlight matching brace
|
|
|
|
set hlsearch " Highlight all search results
|
|
set smartcase " Enable smart-case search
|
|
set incsearch " Searches for strings incrementally
|
|
|
|
set autoindent " Auto-indent new lines
|
|
set cindent " Use 'C' style program indenting
|
|
set expandtab " Use spaces instead of tabs
|
|
set shiftwidth=4 " Number of auto-indent spaces
|
|
set smartindent " Enable smart-indent
|
|
set smarttab " Enable smart-tabs
|
|
set softtabstop=4 " Number of spaces per Tab
|
|
|
|
"" Advanced
|
|
set ruler " Show row and column ruler information
|
|
|
|
set undolevels=1000 " Number of undo levels
|
|
set backspace=indent,eol,start " Backspace behaviour
|
|
|
|
call plug#begin()
|
|
Plug 'mhinz/vim-startify'
|
|
Plug 'ryanoasis/vim-devicons'
|
|
Plug 'vim-fuzzbox/fuzzbox.vim'
|
|
Plug 'ubaldot/vim-outline'
|
|
Plug 'vim-autoformat/vim-autoformat'
|
|
Plug 'vim-airline/vim-airline'
|
|
Plug 'vim-airline/vim-airline-themes'
|
|
Plug 'prabirshrestha/asyncomplete.vim'
|
|
Plug 'mattn/vim-lsp-settings'
|
|
Plug 'prabirshrestha/vim-lsp'
|
|
Plug 'prabirshrestha/asyncomplete-lsp.vim'
|
|
Plug 'prabirshrestha/asyncomplete-tags.vim'
|
|
Plug 'prabirshrestha/asyncomplete-ultisnips.vim'
|
|
Plug 'SirVer/ultisnips'
|
|
Plug 'honza/vim-snippets'
|
|
Plug 'mattn/emmet-vim'
|
|
Plug 'prabirshrestha/asyncomplete-emmet.vim'
|
|
Plug 'easymotion/vim-easymotion'
|
|
Plug 'tpope/vim-vinegar'
|
|
Plug 'tpope/vim-surround'
|
|
Plug 'tpope/vim-sleuth'
|
|
Plug 'tpope/vim-abolish'
|
|
call plug#end()
|
|
|
|
let g:airline#extensions#tabline#enabled = 1
|
|
let g:airline_theme = 'peaksea'
|
|
|
|
set mouse=nv " Enable mouse for normal and visual modes
|
|
|
|
"" UltiSnips
|
|
|
|
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
|
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
|
inoremap <expr> <cr> pumvisible() ? asyncomplete#close_popup() : "\<cr>"
|
|
imap <c-space> <Plug>(asyncomplete_force_refresh)
|
|
|
|
let g:UltiSnipsExpandTrigger="<c-e>"
|
|
call asyncomplete#register_source(asyncomplete#sources#ultisnips#get_source_options({
|
|
\ 'name': 'ultisnips',
|
|
\ 'allowlist': ['*'],
|
|
\ 'completor': function('asyncomplete#sources#ultisnips#completor'),
|
|
\ }))
|
|
|
|
"" Emmet completion
|
|
|
|
au User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#emmet#get_source_options({
|
|
\ 'name': 'emmet',
|
|
\ 'whitelist': ['html'],
|
|
\ 'completor': function('asyncomplete#sources#emmet#completor'),
|
|
\ }))
|
|
|
|
"" Autoformat configs
|
|
|
|
let g:formatdef_xmllint = '"xmllint --format -"'
|
|
|
|
let g:formatters_xml=['xmllint']
|
|
let g:formatters_html=['htmlbeautify']
|
|
let g:formatters_jsp=['htmlbeautify']
|
|
let g:formatters_java=['prettier']
|
|
let g:formatters_javascript=['eslint_local']
|
|
let g:formatters_json=['jsbeautify_json']
|
|
let g:formatters_python=['black']
|
|
|