From eb4f1a5b5a6db5b93560103ed62604accb1ed4bc Mon Sep 17 00:00:00 2001 From: Smirnov Alexander Date: Wed, 2 Jun 2021 19:40:42 +0300 Subject: [PATCH] convert init.vim in modules, update zsh && git --- config/nvim/README.md | 9 +++ config/nvim/init.vim | 98 ++++++++++++------------------ config/nvim/lua/n-colorizer.lua | 13 ++++ config/nvim/lua/n-gitsigns.lua | 18 ++++++ config/nvim/lua/n-lualine.lua | 5 ++ config/nvim/lua/n-nvimtree.lua | 8 +++ config/nvim/vimscript/barbar.vim | 17 ++++++ config/nvim/vimscript/config.vim | 23 +++++++ config/nvim/vimscript/emmet.vim | 6 ++ config/nvim/vimscript/mappings.vim | 27 ++++++++ gitconfig | 3 + vscode/README.md | 8 --- vscode/settings.json | 6 +- zshrc | 2 +- 14 files changed, 170 insertions(+), 73 deletions(-) create mode 100644 config/nvim/README.md create mode 100644 config/nvim/lua/n-colorizer.lua create mode 100644 config/nvim/lua/n-gitsigns.lua create mode 100644 config/nvim/lua/n-lualine.lua create mode 100644 config/nvim/lua/n-nvimtree.lua create mode 100644 config/nvim/vimscript/barbar.vim create mode 100644 config/nvim/vimscript/config.vim create mode 100644 config/nvim/vimscript/emmet.vim create mode 100644 config/nvim/vimscript/mappings.vim diff --git a/config/nvim/README.md b/config/nvim/README.md new file mode 100644 index 0000000..fd24940 --- /dev/null +++ b/config/nvim/README.md @@ -0,0 +1,9 @@ +# NVIM + +### Install LSP +```bash +# tsserver(JS/TS) +npm i -g typescript typescript-language-server +# Go(gopls) +go get golang.org/x/tools/gopls@latest +``` diff --git a/config/nvim/init.vim b/config/nvim/init.vim index ee41430..ddcf5b9 100644 --- a/config/nvim/init.vim +++ b/config/nvim/init.vim @@ -1,63 +1,64 @@ call plug#begin('~/.vim/plugged') - Plug 'sheerun/vim-polyglot' " LSP && Completion Plug 'neovim/nvim-lspconfig' Plug 'hrsh7th/nvim-compe' - Plug 'mattn/emmet-vim', {'on': ['EmmetInstall', 'Emmet']} Plug 'jiangmiao/auto-pairs' + Plug 'mattn/emmet-vim', {'on': 'EmmetInstall'} + " File explorer + Plug 'junegunn/fzf.vim' + Plug 'kyazdani42/nvim-tree.lua' + " Git + Plug 'lewis6991/gitsigns.nvim' " Theme Plug 'Smirnov-O/nten.vim' " Status line & Buffer line Plug 'hoob3rt/lualine.nvim' Plug 'romgrk/barbar.nvim' + " Better syntax hl + Plug 'sheerun/vim-polyglot' + Plug 'norcalli/nvim-colorizer.lua' + " Editor config + Plug 'editorconfig/editorconfig-vim' + " Other + Plug 'vimwiki/vimwiki' + Plug 'nvim-lua/plenary.nvim' call plug#end() -"== General -colo codedark " Color scheme -set termguicolors " GUI colors -set nu rnu cul " Line numbers & cursor line highlight -set nolbr nowrap " Line wrap -set mouse=a mh " Mouse -set history=500 " Set history size -set autoread " Auto read file on change -set hidden " Change buffet without warning -set visualbell t_vb= " Disable sounds -set pumheight=8 " Maximum items in pop up -set modeline " Enable modeline -set nosmd " Disable show mode -set nobk noswf noudf " Swap files -set is ic scs " Search -let mapleader=";" " Set leader key -set spr " Split -set scrolloff=3 -set enc=utf-8 fenc=utf-8 " Encoding -set list listchars=tab:\|·,trail:~,space:· +colo nvcode +let mapleader=";" "== Tab(or spaces) set ts=4 sw=4 sts=4 set sta et ai +"== Vim config +source $HOME/.config/nvim/vimscript/config.vim + "== Tab line -let bufferline = get(g:, 'bufferline', {}) -let g:bufferline.icons = v:false -let g:bufferline.icon_close_tab = '🗴' +source $HOME/.config/nvim/vimscript/barbar.vim "== Status line -lua require'lualine'.setup({options = { -\ theme = "codedark" -\ }}) +luafile $HOME/.config/nvim/lua/n-lualine.lua + +"== File explorer +luafile $HOME/.config/nvim/lua/n-nvimtree.lua + +"== Git +luafile $HOME/.config/nvim/lua/n-gitsigns.lua "== Emmet -let g:user_emmet_mode = "inc" -let g:user_emmet_leader_key=',' -let g:user_emmet_settings = {'javascript': { -\ 'extends': 'jsx' -\ }} +source $HOME/.config/nvim/vimscript/emmet.vim + +"== Colorizer +luafile $HOME/.config/nvim/lua/n-colorizer.lua + +"== Notes +let g:vimwiki_list = [{'path': '~/notes', 'syntax': 'markdown', 'ext': '.md'}] "== Completion(LSP) ino pumvisible() ? "\" : "\" ino pumvisible() ? "\" : "\" -ino compe#confirm('') +ino compe#confirm('') nno sr :lua vim.lsp.buf.rename() nno sh :lua vim.lsp.buf.hover() nno si :lua vim.lsp.buf.definition() @@ -77,40 +78,17 @@ require'compe'.setup{ } EOF -"== Netrw file tree -let g:netrw_liststyle = 3 -let g:netrw_banner = 0 -let g:netrw_dirhistmax = 0 "== Custom setting for another files au FileType python,elm setl sw=4 ts=4 -au FileType javascript,javascriptreact,json,yaml setl sw=2 ts=2 -au FileType javascript,javascriptreact,css,scss,less EmmetInstall +au FileType javascript,json,yaml,lua setl sw=2 ts=2 +au FileType javascript,vue,html,css,scss :EmmetInstall au FileType go setl noet sw=4 ts=4 "== Custom commands com! Prettier :sil !prettier -w % com! Term :vs|winc L|se nonu nornu|start|term com! GoFmt :sil !gofmt -w % -com! Black :sil !black % "== Mapping -nn :w -nn :noh -tno -nn t :Term -nn e :Ex -nn j :bn -nn k :bp -nn w :bd -nn ; :FZF - -nn :wincmd h -nn :wincmd j -nn :wincmd k -nn :wincmd l - -nn spv :vs -nn sph :sp -nn spk :winc K -nn spl :winc L +source $HOME/.config/nvim/vimscript/mappings.vim diff --git a/config/nvim/lua/n-colorizer.lua b/config/nvim/lua/n-colorizer.lua new file mode 100644 index 0000000..4c2377a --- /dev/null +++ b/config/nvim/lua/n-colorizer.lua @@ -0,0 +1,13 @@ +require'colorizer'.setup( + {'*';}, { + mode = 'foreground'; + RGB = true; -- #RGB hex codes + RRGGBB = true; -- #RRGGBB hex codes + RRGGBBAA = false; -- #RRGGBBAA hex codes + rgb_fn = true; -- CSS rgb() and rgba() functions + hsl_fn = false; -- CSS hsl() and hsla() functions + css = false; -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB + css_fn = true; -- Enable all CSS *functions*: rgb_fn, hsl_fn + names = false; -- "Name" codes like Blue + } +) diff --git a/config/nvim/lua/n-gitsigns.lua b/config/nvim/lua/n-gitsigns.lua new file mode 100644 index 0000000..691441b --- /dev/null +++ b/config/nvim/lua/n-gitsigns.lua @@ -0,0 +1,18 @@ +require'gitsigns'.setup { + signs = { + add = {hl = 'GitSignsAdd', text = '│'}; + change = {hl = 'GitSignsChange', text = '│'}; + delete = {hl = 'GitSignsDelete', text = '_'}; + topdelete = {hl = 'GitSignsDelete', text = '‾'}; + changedelete = {hl = 'GitSignsChange', text = '~'}; + }; + watch_index = { + interval = 1000 + }; + current_line_blame = true, + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, + use_decoration_api = true, + use_internal_diff = true, +} diff --git a/config/nvim/lua/n-lualine.lua b/config/nvim/lua/n-lualine.lua new file mode 100644 index 0000000..8158a34 --- /dev/null +++ b/config/nvim/lua/n-lualine.lua @@ -0,0 +1,5 @@ +require'lualine'.setup { + options = { + theme = "codedark" + }; +} diff --git a/config/nvim/lua/n-nvimtree.lua b/config/nvim/lua/n-nvimtree.lua new file mode 100644 index 0000000..b0e6149 --- /dev/null +++ b/config/nvim/lua/n-nvimtree.lua @@ -0,0 +1,8 @@ +local S = vim.g + +-- Settings +S.nvim_tree_side = "right" +S.nvim_tree_ignore = {".git", "node_modules", "venv"} +S.nvim_tree_auto_close = 0 +S.nvim_tree_quit_on_open = 0 +S.nvim_tree_width = 24 diff --git a/config/nvim/vimscript/barbar.vim b/config/nvim/vimscript/barbar.vim new file mode 100644 index 0000000..9120100 --- /dev/null +++ b/config/nvim/vimscript/barbar.vim @@ -0,0 +1,17 @@ +" Settings +let bufferline = get(g:, 'bufferline', {}) +let bufferline.icons = v:false +let bufferline.icon_close_tab = '🗴' + +" Mappings +nno :BufferGoto 1 +nno :BufferGoto 2 +nno :BufferGoto 3 +nno :BufferGoto 4 +nno :BufferGoto 5 +nno :BufferGoto 6 +nno :BufferGoto 7 +nno :BufferGoto 8 +nno :BufferGoto 9 +nno :BufferClose +nno :BufferClose! diff --git a/config/nvim/vimscript/config.vim b/config/nvim/vimscript/config.vim new file mode 100644 index 0000000..fb58d28 --- /dev/null +++ b/config/nvim/vimscript/config.vim @@ -0,0 +1,23 @@ +"== Vim config +set termguicolors " GUI colors +set nu rnu cul " Line numbers & cursor line highlight +set nolbr nowrap " Line wrap +set mouse=a mh " Mouse +set history=500 " Set history size +set autoread " Auto read file on change +set hidden " Change buffet without warning +set visualbell t_vb= " Disable sounds +set pumheight=8 " Maximum items in pop up +set modeline " Enable modeline +set nosmd " Disable show mode +set nobk noswf noudf " Swap files +set is ic scs " Search +set spr " Split +set enc=utf-8 fenc=utf-8 " Encoding +set scrolloff=3 +set list listchars=tab:\|·,trail:~,space:· + +"== Netrw file tree +let g:netrw_liststyle = 3 +let g:netrw_banner = 0 +let g:netrw_dirhistmax = 0 diff --git a/config/nvim/vimscript/emmet.vim b/config/nvim/vimscript/emmet.vim new file mode 100644 index 0000000..36dfc2f --- /dev/null +++ b/config/nvim/vimscript/emmet.vim @@ -0,0 +1,6 @@ +let g:user_emmet_mode = "in" +let g:user_emmet_leader_key=',' +let g:user_emmet_settings = { +\ 'javascript': { +\ 'extends': 'jsx' +\ }} diff --git a/config/nvim/vimscript/mappings.vim b/config/nvim/vimscript/mappings.vim new file mode 100644 index 0000000..66ed9a2 --- /dev/null +++ b/config/nvim/vimscript/mappings.vim @@ -0,0 +1,27 @@ +nno :w +nno :noh +nno t :Term +nno e :NvimTreeToggle +nno ; :Files + +" Buffer +nno j :bn +nno k :bp + +" Terminal +tno +tno :winc h +tno :winc j +tno :winc k +tno :winc k + +" Split +nno :winc h +nno :winc j +nno :winc k +nno :winc l + +nno spv :vs +nno sph :sp +nno spk :winc K +nno spl :winc L diff --git a/gitconfig b/gitconfig index 2efecb8..84a6342 100644 --- a/gitconfig +++ b/gitconfig @@ -8,6 +8,9 @@ [core] editor = nvim +[init] + defaultBranch = main + [alias] ad = add -A cm = commit -m diff --git a/vscode/README.md b/vscode/README.md index 2f1a393..cb21bf3 100644 --- a/vscode/README.md +++ b/vscode/README.md @@ -4,11 +4,3 @@ Install ```bash mv ~/vscode/settings.json ~/.config/Code/User ``` - -Extensions -- `ESlint` - eslint integration -- `Prettier` - JS code formater -- `GitLens` - Git integration -- `Code spell` - Spell checker -- `Ayu` - Color scheme -- `Vim` - Vim mode diff --git a/vscode/settings.json b/vscode/settings.json index e65879f..c257c42 100644 --- a/vscode/settings.json +++ b/vscode/settings.json @@ -5,6 +5,7 @@ "workbench.sideBar.location": "right", "workbench.editor.untitled.hint": "hidden", "workbench.iconTheme": "vs-minimal", + "workbench.startupEditor": "none", "explorer.compactFolders": false, "explorer.confirmDragAndDrop": false, @@ -35,10 +36,7 @@ "extensions.ignoreRecommendations": true, - "tabnine.experimentalAutoImports": true, - "prettier.semi": false, - "html.format.enable": false, "emmet.includeLanguages": {"javascript": "javascriptreact"}, "[javascript]": { @@ -48,5 +46,5 @@ "[javascriptreact]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabSize": 2, - } + }, } diff --git a/zshrc b/zshrc index d770d85..48e0920 100644 --- a/zshrc +++ b/zshrc @@ -7,7 +7,7 @@ export EDITOR="nvim" export PATH="$HOME/bin:$HOME/.local/bin:$HOME/.golang/bin:$GOPATH/bin:$PATH" ## Oh my zsh -plugins=(dotenv) +plugins=(dotenv z) ZSH_THEME="simple" source "$HOME/.oh-my-zsh/oh-my-zsh.sh"