call plug#begin('~/.vim/plugged')
Plug 'lifepillar/vim-colortemplate'
Plug 'nanotech/jellybeans.vim', { 'tag': 'v1.7' }
Plug 'romgrk/doom-one.vim'
Plug 'rust-lang/rust.vim'
Plug 'sebdah/vim-delve', {'for': ['go'] }
Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/asyncomplete-lsp.vim'
Plug 'Shougo/vimproc.vim', {'do' : 'make'}
Plug 'Shougo/vimshell.vim'
Plug 'mattn/vim-lexiv'
Plug 'mattn/vim-goimports'
Plug 'hrsh7th/vim-vsnip'
Plug 'hrsh7th/vim-vsnip-integ'
Plug 'mattn/vim-chatgpt'
Plug 'sheerun/vim-polyglot'
Plug 'mattn/vim-treesitter'
Plug 'tpope/vim-markdown'
Plug 'previm/previm'
call plug#end()
let g:jellybeans_overrides = {
\ 'background': { 'ctermbg': 'none', '256ctermbg': 'none', 'guibg': 'none', 'guigb': 'none' },
\ 'CursorLine': { 'ctermbg': 'none', '256ctermbg': 'none', 'guibg': 'none', 'guigb': 'none' },
\ 'String': { 'guifg': '99cc66' },
\ 'Statement': { 'ctermfg': 'Blue', '256ctermfg': 'Blue' },
\}
"colorscheme jellybeans
autocmd colorscheme * highlight Normal guibg=NONE
autocmd colorscheme * highlight EndOfBuffer guibg=NONE
colorscheme doom-one
syntax enable
hi Comment term=underline ctermfg=12 guifg=#5f9ea0
hi CursorColumn term=reverse ctermbg=240 guibg=#483d8b
hi CursorLine term=underline cterm=underline gui=underline ctermul=244 guisp=#696969 guibg=NONE
let g:netrw_liststyle=3
let g:netrw_altv=1
let g:netrw_alto=1
function! s:on_lsp_buffer_enabled() abort
setlocal omnifunc=lsp#complete
setlocal signcolumn=yes
if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif
nmap <buffer> gd <plug>(lsp-definition)
nmap <buffer> gt <plug>(lsp-type-definition)
nmap <buffer> K <plug>(lsp-hover)
let g:lsp_format_sync_timeout = 1000
autocmd! BufWritePre *.rs,*.go call execute('LspDocumentFormatSync')
endfunction
augroup lsp_install
au!
" call s:on_lsp_buffer_enabled only for languages that has the server registered.
autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled()
augroup END
let g:lsp_async_completion = 1
let g:lsp_diagnostics_enabled = 1
let g:lsp_diagnostics_echo_cursor = 1
let g:lsp_text_edit_enabled = 0
let g:lsp_highlight_references_enabled = 1
let g:lsp_settings = {
\ 'gopls': {
\ 'initialization_options': {
\ 'usePlaceholders': v:true,
\ },
\ },
\ }
let g:goimports_simplify = 1
let g:asyncomplete_auto_popup = 1
let g:asyncomplete_auto_completeopt = 0
set completeopt=menuone,noinsert,noselect,preview
autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif
"let g:asyncomplete_popup_delay = 200
let g:rustfmt_autosave = 1
let g:previm_open_cmd = 'open -a Firefox'
"vim-vsnip
"imap <expr> <C-j> vsnip#expandable() ? '<Plug>(vsnip-expand)' : '<C-j>'
smap <expr> <C-j> vsnip#expandable() ? '<Plug>(vsnip-expand)' : '<C-j>'
" Expand or jump
imap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
smap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
" Jump forward or backward
imap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
smap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
imap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
smap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
" Select or cut text to use as $TM_SELECTED_TEXT in the next snippet.
" See https://github.com/hrsh7th/vim-vsnip/pull/50
nmap s <Plug>(vsnip-select-text)
xmap s <Plug>(vsnip-select-text)
nmap S <Plug>(vsnip-cut-text)
xmap S <Plug>(vsnip-cut-text)
"quickfix
"autocmd QuickfixCmdPost make,grep,vimgrep if len(getqflist()) != 0 | copen | endif
autocmd QuickfixCmdPost *grep* cwindow
"nnoremap <silent> <C-n> :<C-n>cnext<CR>
"nnoremap <silent> <C-p> :<C-p>cprev<CR>
"inoremap <C-p> <C-r>0
noremap <C-p> "0p
set nu
set encoding=utf-8
set fileencodings=utf-8,iso-2022-jp,cp932,sjis,euc-jp
set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%
set fileformats=unix,dos,mac
set tabstop=4
set shiftwidth=4
set noswapfile
set nocompatible
set nowritebackup
set nobackup
set autoread
set hidden
set showcmd
set showmatch
set cursorline
set cursorcolumn
set laststatus=2
set wildmode=list:longest
set ignorecase
set smartcase
set wrapscan
set hlsearch
set mouse=a
set ttymouse=xterm2
set ttymouse=sgr
set updatetime=500
set balloondelay=250
set autoindent
set smartindent
set backspace=2
set clipboard=unnamed
set statusline=%f\ [%l/%02v]\ %m
set scrolloff=999
set termguicolors
filetype indent on
filetype plugin on
nmap <Esc><Esc> :nohlsearch<CR><Esc>
if executable('rg')
let &grepprg = 'rg --vimgrep --hidden'
set grepformat=%f:%l:%c:%m
endif