diff --git a/README.md b/README.md index 861d640..d7a5a5c 100644 --- a/README.md +++ b/README.md @@ -36,18 +36,21 @@ EndSection ``` ![stones](./screenshots/Screenshot_20240503_095414.png) -## Neovim +## Vim ### Vimplug -```sh +#### Neovim +``` sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' ``` +#### Vim +```curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ + https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim +``` ### Conquer of Completion -- nodejs is a requirement -``` -curl -sL install-node.vercel.app/lts | bash -``` +- Requirements: + - Nodejs ### coc.nvim ``` :CocInstall coc-pairs coc-json coc-tsserver coc-snippets diff --git a/nvim/.vimrc b/nvim/.vimrc new file mode 100644 index 0000000..383cd96 --- /dev/null +++ b/nvim/.vimrc @@ -0,0 +1,142 @@ +syntax on +set number +set cursorline +set expandtab tabstop=4 shiftwidth=4 softtabstop=4 +set autoindent +set spelllang=vi,en + + +" 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 'kevinhwang91/nvim-bqf' +Plug 'morhetz/gruvbox' +Plug 'tpope/vim-fugitive' +Plug 'ynkdir/vim-diff' +Plug '4ree/vim-ime' +call plug#end() + +"Color scheme +"colorscheme iceberg +"set background=light +colorscheme gruvbox +let g:gruvbox_contrast_light = 'hard' + + + +"Open NERDTree +:nnoremap g:NERDTree.IsOpen() ? "\:NERDTreeClose" : bufexists(expand('%')) ? "\:NERDTreeFind" : "\:NERDTree" + +"Coc.nvim +inoremap + \ coc#pum#visible() ? coc#_select_confirm() : + \ coc#expandableOrJumpable() ? "\=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\" : + \ CheckBackSpace() ? "\" : + \ coc#refresh() +inoremap pumvisible() ? coc#_select_confirm() + \: "\u\\=coc#on_enter()\" + +function! CheckBackSpace() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction + +let g:coc_snippet_next = '' +inoremap coc#pum#visible() ? coc#pum#confirm() + \: "\u\\=coc#on_enter()\" + +" 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 to :tabonly +nnoremap o :only +nnoremap :tabn +nnoremap :tabp + +"set clipboard+=unnamedplus +" " Copy to clipboard +vnoremap y "+y +nnoremap Y "+yg_ +nnoremap y "+y +nnoremap yy "+yy + +" " Paste from clipboard +nnoremap p "+p +nnoremap P "+P + + +" 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 + +let g:vimtex_view_method= 'zathura' + +"Language tool +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 + +if &term =~ 'xterm' || &term == 'win32' + " Use DECSCUSR escape sequences + let &t_SI = "\e[5 q" " blink bar + let &t_SR = "\e[3 q" " blink underline + let &t_EI = "\e[1 q" " blink block + let &t_ti ..= "\e[1 q" " blink block + let &t_te ..= "\e[0 q" " default (depends on terminal, normally blink + " block) +endif + diff --git a/nvim/init.vim(server) b/nvim/init.vim(server) index b9fc9b1..842dadb 100644 --- a/nvim/init.vim(server) +++ b/nvim/init.vim(server) @@ -99,3 +99,29 @@ filetype plugin on set splitright set splitbelow +"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 + +if &term =~ 'xterm' || &term == 'win32' + " Use DECSCUSR escape sequences + let &t_SI = "\e[5 q" " blink bar + let &t_SR = "\e[3 q" " blink underline + let &t_EI = "\e[1 q" " blink block + let &t_ti ..= "\e[1 q" " blink block + let &t_te ..= "\e[0 q" " default (depends on terminal, normally blink + " block) +endif +