From 4fd1b70a5ca5cb3015d2b197e391ecd8ac89425e Mon Sep 17 00:00:00 2001 From: jay Date: Mon, 28 Aug 2023 02:22:29 +0800 Subject: [PATCH] [feat] change nvim config from vimscript to lua --- home/dot_config/nvim/init.lua | 9 + home/dot_config/nvim/init.vim.tmpl | 604 ------------------ home/dot_config/nvim/lazy-lock.json | 50 ++ home/dot_config/nvim/lua/basic/init.lua | 2 + home/dot_config/nvim/lua/basic/mapping.lua | 19 + home/dot_config/nvim/lua/basic/setup.lua | 63 ++ home/dot_config/nvim/lua/plugins/aerial.lua | 48 ++ home/dot_config/nvim/lua/plugins/ale.lua.tmpl | 26 + .../nvim/lua/plugins/bufferline.lua | 10 + home/dot_config/nvim/lua/plugins/fzf.lua | 42 ++ home/dot_config/nvim/lua/plugins/go.lua | 26 + home/dot_config/nvim/lua/plugins/hop.lua | 19 + .../nvim/lua/plugins/indent_blankline.lua | 11 + home/dot_config/nvim/lua/plugins/init.lua | 18 + home/dot_config/nvim/lua/plugins/list.lua | 127 ++++ home/dot_config/nvim/lua/plugins/lsp.lua | 64 ++ home/dot_config/nvim/lua/plugins/lualine.lua | 49 ++ home/dot_config/nvim/lua/plugins/nvim_cmp.lua | 40 ++ .../dot_config/nvim/lua/plugins/nvim_tree.lua | 77 +++ 19 files changed, 700 insertions(+), 604 deletions(-) create mode 100644 home/dot_config/nvim/init.lua delete mode 100644 home/dot_config/nvim/init.vim.tmpl create mode 100644 home/dot_config/nvim/lazy-lock.json create mode 100644 home/dot_config/nvim/lua/basic/init.lua create mode 100644 home/dot_config/nvim/lua/basic/mapping.lua create mode 100644 home/dot_config/nvim/lua/basic/setup.lua create mode 100644 home/dot_config/nvim/lua/plugins/aerial.lua create mode 100644 home/dot_config/nvim/lua/plugins/ale.lua.tmpl create mode 100644 home/dot_config/nvim/lua/plugins/bufferline.lua create mode 100644 home/dot_config/nvim/lua/plugins/fzf.lua create mode 100644 home/dot_config/nvim/lua/plugins/go.lua create mode 100644 home/dot_config/nvim/lua/plugins/hop.lua create mode 100644 home/dot_config/nvim/lua/plugins/indent_blankline.lua create mode 100644 home/dot_config/nvim/lua/plugins/init.lua create mode 100644 home/dot_config/nvim/lua/plugins/list.lua create mode 100644 home/dot_config/nvim/lua/plugins/lsp.lua create mode 100644 home/dot_config/nvim/lua/plugins/lualine.lua create mode 100644 home/dot_config/nvim/lua/plugins/nvim_cmp.lua create mode 100644 home/dot_config/nvim/lua/plugins/nvim_tree.lua diff --git a/home/dot_config/nvim/init.lua b/home/dot_config/nvim/init.lua new file mode 100644 index 0000000..e38ee9f --- /dev/null +++ b/home/dot_config/nvim/init.lua @@ -0,0 +1,9 @@ +-- HELPERS ---------------------------------------------------- +local cmd = vim.cmd -- to execute Vim commands e.g. cmd('pwd') +local fn = vim.fn -- to call Vim functions e.g. fn.bufnr() +local g = vim.g -- a table to access global variables +local scopes = {o = vim.o, b = vim.bo, w = vim.wo} +-- Set CMD ---------------------------------------------------- +require("basic") +-- Load Plugins ------------------------------------------------ +require("plugins") diff --git a/home/dot_config/nvim/init.vim.tmpl b/home/dot_config/nvim/init.vim.tmpl deleted file mode 100644 index cca8074..0000000 --- a/home/dot_config/nvim/init.vim.tmpl +++ /dev/null @@ -1,604 +0,0 @@ -" vim: set ft=vim: -"***************************************************************************** -""" Vim-Plug core -"***************************************************************************** -let vimplug_exists=expand('~/.config/nvim/autoload/plug.vim') -let curl_exists=expand('curl') - -if !filereadable(vimplug_exists) - if !executable(curl_exists) - echoerr "You have to install curl or first install vim-plug yourself!" - execute "q!" - endif - echo "Installing Vim-Plug..." - echo "" - silent exec "!"curl_exists" -fLo " . shellescape(vimplug_exists) . " --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" - let g:not_finish_vimplug = "yes" - - autocmd VimEnter * PlugInstall -endif - -" Required: -call plug#begin(expand('~/.config/nvim/plugged')) - -Plug 'neovim/nvim-lspconfig' -Plug 'hrsh7th/nvim-cmp' -Plug 'hrsh7th/cmp-nvim-lsp' -Plug 'hrsh7th/cmp-buffer' -Plug 'hrsh7th/cmp-path' -Plug 'hrsh7th/cmp-cmdline' -" For vsnip users. -Plug 'hrsh7th/cmp-vsnip' -Plug 'hrsh7th/vim-vsnip' - -Plug 'ray-x/lsp_signature.nvim' - -Plug 'tomasr/molokai' -Plug 'scrooloose/nerdcommenter' -Plug 'vim-scripts/DrawIt' - -Plug 'easymotion/vim-easymotion' -Plug 'mattn/emmet-vim' -Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } -Plug 'pangloss/vim-javascript' -Plug 'w0rp/ale' -Plug 'godlygeek/tabular' -Plug 'plasticboy/vim-markdown' -Plug 'ctrlpvim/ctrlp.vim' - -Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } -Plug 'junegunn/fzf.vim' - -Plug 'kyazdani42/nvim-web-devicons' " for file icons -Plug 'kyazdani42/nvim-tree.lua' - -Plug 'kien/tabman.vim' - -" for git -Plug 'tpope/vim-fugitive' -Plug 'christoomey/vim-conflicted' - -" for neogit -Plug 'NeogitOrg/neogit' -Plug 'nvim-lua/plenary.nvim' -Plug 'nvim-telescope/telescope.nvim' - -" for mark -Plug 'inkarkat/vim-ingo-library' -Plug 'inkarkat/vim-mark' - -Plug 'rking/ag.vim' -Plug 'terryma/vim-multiple-cursors' - -" Plug 'vim-airline/vim-airline' -Plug 'nvim-lualine/lualine.nvim' -Plug 'akinsho/bufferline.nvim', { 'tag': 'v3.*' } - -Plug 'lukas-reineke/indent-blankline.nvim' -Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} - -Plug 'bluz71/vim-nightfly-colors', { 'as': 'nightfly' } -Plug 'folke/tokyonight.nvim', { 'branch': 'main' } - -Plug 'norcalli/nvim-colorizer.lua' - -" code outline -Plug 'stevearc/aerial.nvim' - -" temp plugin -Plug 'tpope/vim-surround' -Plug 'buoto/gotests-vim' -Plug 'chr4/nginx.vim' -Plug 'cespare/vim-toml' -Plug 'zah/nim.vim' -Plug 'rust-lang/rust.vim' -Plug 'danilo-augusto/vim-afterglow' -Plug 'vim-scripts/TaskList.vim' -Plug 'google/vim-jsonnet' -Plug 'terrastruct/d2-vim' -Plug 'elkowar/yuck.vim' -Plug 'github/copilot.vim' - -call plug#end() - -syntax on -set number -set tabstop=2 -set shiftwidth=2 -set expandtab -set nofoldenable -set pastetoggle= -" always show status -set laststatus=2 -" show cursor position -set ruler -set cursorline -set cursorcolumn -set hlsearch -" no wrap line -set nowrap -" enable backspace -set backspace=indent,eol,start -set encoding=utf-8 -set completeopt=menu,menuone,noselect -set noswapfile -set mouse= - -" set guifont=Hack\ Nerd\ Font:h11 - -set background=dark - -function! AdaptColorscheme() - highlight clear CursorLine - highlight Normal ctermbg=none - highlight LineNr ctermbg=none - highlight Folded ctermbg=none - highlight NonText ctermbg=none - highlight SpecialKey ctermbg=none - highlight VertSplit ctermbg=none - highlight SignColumn ctermbg=none -endfunction -autocmd ColorScheme * call AdaptColorscheme() - -" for chezmoi after edit auto apply -autocmd BufWritePost ~/.local/share/chezmoi/* ! chezmoi apply --source-path "%" - -" define leader key -let mapleader=";" -filetype indent on -" 開啟檔案類型偵測 -filetype on -" 根據檔案類型載入plugin -filetype plugin on - -" split window -nmap sw -nmap sww k -nmap sws j -nmap swa h -nmap swd l - -nnoremap fl :Lines -nnoremap fb :BLines -nnoremap ff :Files -nnoremap fg :GFiles -nnoremap f? :GFiles? -nnoremap ft :Tags -nnoremap fa :Ag -nnoremap fc :Commits - -nmap aa gT -nmap dd gt - -nnoremap me :NvimTreeToggle -nnoremap :NvimTreeToggle - - -function! TabCloseRight(bang) - let cur=tabpagenr() - while cur < tabpagenr('$') - exe 'tabclose' . a:bang . ' ' . (cur + 1) - endwhile -endfunction - -function! TabCloseLeft(bang) - while tabpagenr() > 1 - exe 'tabclose' . a:bang . ' 1' - endwhile -endfunction - -command! -bang Tabcloseright call TabCloseRight('') -command! -bang Tabcloseleft call TabCloseLeft('') - -" tagbar -nmap :%!jq . - -" NeoComplete -let g:neocomplete#enable_at_startup = 1 - -let g:airline_powerline_fonts = 1 - -" f{char} to move to {char} -map f (easymotion-bd-f) -nmap f (easymotion-overwin-f) -" s{char}{char} to move to {char}{char} -nmap s (easymotion-overwin-f2) -" Move to line -map L (easymotion-bd-jk) -nmap L (easymotion-overwin-line) -" Move to word -map w (easymotion-bd-w) -nmap w (easymotion-overwin-w) - -" lint -let g:ale_linters = { - \ 'javascript': ["{{ if .nvim.js_linter }}{{- .nvim.js_linter }}{{ else }}standard{{ end }}"], - \ 'typescript': ["{{ if .nvim.js_linter }}{{- .nvim.js_linter }}{{ else }}standard{{ end }}"], - \ 'go': ['gopls'], - \ 'rust': ['analyzer'], - \} -let g:ale_fixers = { - \'javascript': ["{{ if .nvim.js_fixer }}{{- .nvim.js_fixer }}{{ else }}standard{{ end }}"], - \'typescript': ["{{ if .nvim.js_fixer }}{{- .nvim.js_fixer }}{{ else }}standard{{ end }}"], - \} -let g:ale_linters_explicit = 1 -let g:ale_lint_on_save = 1 -let g:ale_fix_on_save = 1 -nmap = (ale_fix) - -" NERDCommenter -let g:NERDSpaceDelims=1 -let g:NERDDefaultAlign='left' - - -" copilot setup -imap