From 7414c91cb7398024e4d949e4566fa9346c6fe4ef Mon Sep 17 00:00:00 2001 From: nnduc Date: Fri, 26 Aug 2022 09:57:03 +0000 Subject: [PATCH] Init commit --- coc-settings.json | 2 + init.vim | 176 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 coc-settings.json create mode 100644 init.vim diff --git a/coc-settings.json b/coc-settings.json new file mode 100644 index 0000000..3ba2825 --- /dev/null +++ b/coc-settings.json @@ -0,0 +1,2 @@ +{"coc.preferences.diagnostic.displayByAle":1 +} diff --git a/init.vim b/init.vim new file mode 100644 index 0000000..6092f6a --- /dev/null +++ b/init.vim @@ -0,0 +1,176 @@ +syntax on +set number +set cursorline +set expandtab smarttab tabstop=4 shiftwidth=4 softtabstop=4 +set autoindent smartindent + + +" Fold +set foldmethod=syntax +set foldlevel=1 +set foldnestmax=1 +set encoding=utf8 + +" Search +set hlsearch +nnoremap i :nohlsi + +" Plugin +call plug#begin() +Plug 'neoclide/coc.nvim', {'branch': 'release'} +Plug 'dense-analysis/ale' +Plug 'preservim/nerdtree' +Plug 'preservim/nerdcommenter' +Plug 'lervag/vimtex' +Plug 'JuliaEditorSupport/julia-vim' +Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } +Plug 'junegunn/fzf.vim' +Plug 'honza/vim-snippets' +Plug 'vim-airline/vim-airline' +Plug 'vim-airline/vim-airline-themes' +Plug 'cocopon/iceberg.vim' +Plug 'kevinhwang91/nvim-bqf' +call plug#end() + +"Color scheme +colorscheme iceberg +set background=light + + +"Open NERDTree +:nnoremap g:NERDTree.IsOpen() ? "\:NERDTreeClose" : bufexists(expand('%')) ? "\:NERDTreeFind" : "\:NERDTree" + +"Coc.nvim +:set completeopt=longest,menuone +:inoremap pumvisible() ? "\" : "\u\" +inoremap pumvisible() ? '' : + \ '=pumvisible() ? "\Down>" : ""' + +inoremap pumvisible() ? '' : + \ '=pumvisible() ? "\Down>" : ""' +" open omni completion menu closing previous if open and opening new menu without changing the text +inoremap (pumvisible() ? (col('.') > 1 ? 'i' : 'i') : '') . + \ '=pumvisible() ? "\C-n>\C-p>\Down>" : ""' +" open user completion menu closing previous if open and opening new menu without changing the text +inoremap (pumvisible() ? (col('.') > 1 ? 'i' : 'i') : '') . + \ '=pumvisible() ? "\C-n>\C-p>\Down>" : ""' + +"Autocomplete with the first option if pop up menu is open. +"inoremap pumvisible() ? coc#_select_confirm() : "\u\" +inoremap pumvisible() ? coc#_select_confirm() : "\u\" +inoremap + \ pumvisible() ? coc#_select_confirm() : + \ coc#expandableOrJumpable() ? "\=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\" : + \ check_back_space() ? "\" : + \ coc#refresh() + +function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction + +let g:coc_snippet_next = '' +nnoremap s :CocCommand snippets.editSnippets + +" Comments +let mapleader = "," + +" remap save +nnoremap :w + +" moving between windows +nnoremap h +nnoremap j +nnoremap k +nnoremap l +nnoremap h +nnoremap j +nnoremap k +nnoremap l +nnoremap o :tabonly + +set clipboard+=unnamedplus + +" FZF key mapping +nnoremap b :Buffers +nnoremap r :Rg +nnoremap f :Files +nnoremap g :GFiles +nnoremap w :Rg + +filetype plugin on +set splitright +set splitbelow + +" " Copy to clipboard +vnoremap y "+y +nnoremap Y "+yg_ +nnoremap y "+y +nnoremap yy "+yy + +" " Paste from clipboard +nnoremap p "+p +nnoremap P "+P +vnoremap p "+p +vnoremap P "+P + +function! IBusOff() + " Lưu engine hiện tại + let g:ibus_prev_engine = system('ibus engine') + " Chuyển sang engine tiếng Anh + " Nếu bạn thấy cái cờ ở đây + " khả năng là font của bạn đang render emoji lung tung... + " xkb : us :: eng (không có dấu cách) + silent! execute '!ibus engine xkb🇺🇸:eng' +endfunction + + + +function! IBusOn() + let l:current_engine = system('ibus engine') + " nếu engine được set trong normal mode thì + " lúc vào insert mode duùn luôn engine đó + if l:current_engine !~? 'xkb🇺🇸:eng' + let g:ibus_prev_engine = l:current_engine + endif + " Khôi phục lại engine + silent! execute '!ibus engine ' . g:ibus_prev_engine +endfunction + +augroup IBusHandler + " Khôi phục ibus engine khi tìm kiếm + autocmd CmdLineEnter [/?] silent call IBusOn() + autocmd CmdLineLeave [/?] silent call IBusOff() + autocmd CmdLineEnter \? silent call IBusOn() + autocmd CmdLineLeave \? silent call IBusOff() + " Khôi phục ibus engine khi vào insert mode + autocmd InsertEnter * silent call IBusOn() + " Tắt ibus engine khi vào normal mode + autocmd InsertLeave * silent call IBusOff() +augroup END + +silent call IBusOff() + +"Language tool +let b:ale_linter_aliases = ['tex', 'text', 'html'] +let g:ale_languagetool_executable = "java" +let g:ale_languagetool_options = "-jar /data/runtimes/languagetool/languagetool-commandline.jar --languagemodel /data/runtimes/languagemodel/ --word2vecmodel /data/runtimes/word2vec/ --disable WHITESPACE_RULE,COMMA_PARENTHESIS_WHITESPACE,CURRENCY[1]" +let g:ale_disable_lsp = 1 +map :ALEToggle + + +"Use 24-bit (true-color) mode in Vim/Neovim when outside tmux. +"If you're using tmux version 2.2 or later, you can remove the outermost $TMUX check and use tmux's 24-bit color support +"(see < http://sunaku.github.io/tmux-24bit-color.html#usage > for more information.) +if (empty($TMUX)) + if (has("nvim")) + "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > + let $NVIM_TUI_ENABLE_TRUE_COLOR=1 + endif + "For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 > + "Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd > + " < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 > + if (has("termguicolors")) + set termguicolors + endif +endif