wget "this file url"
mkdir -p ~/.config/nvim
mv init.vim ~/.config/nvim/init.vim
nvim
:PlugInstall
| " VIM-VSCODE | |
| "***************************************************************************** | |
| " VIM-PLUG CORE | |
| "***************************************************************************** | |
| let vimplug_exists=expand('~/.config/nvim/autoload/plug.vim') | |
| let g:vim_bootstrap_langs = "elixir,eelixir,html,javascript,typescript,python,ruby,yaml" | |
| let g:vim_bootstrap_editor = "nvim" " nvim or vim | |
| " Encoding | |
| set encoding=utf-8 | |
| set fileencodings=utf-8 | |
| " Map leader to space | |
| let mapleader=' ' | |
| " Insert to Normal mode | |
| inoremap jk <ESC> | |
| inoremap jj <ESC> | |
| inoremap kk <ESC> | |
| " Alt + hjkl move code | |
| nnoremap <A-j> :m .+1<CR>== | |
| nnoremap <A-k> :m .-2<CR>== | |
| vnoremap <A-j> :m '>+1<CR>gv=gv | |
| vnoremap <A-k> :m '<-2<CR>gv=gv | |
| " Tab | |
| set smarttab | |
| set tabstop=2 | |
| set shiftwidth=2 | |
| set sidescroll=1 | |
| set softtabstop=0 | |
| set shortmess=at | |
| set colorcolumn=120 | |
| " always uses spaces instead of tab characters | |
| set expandtab | |
| " Dont wrap horizontally | |
| set nowrap sidescroll=1 listchars=extends:>,precedes:< | |
| " Numbering | |
| "set relativenumber | |
| set number | |
| " don't give |ins-completion-menu| messages. | |
| set shortmess+=c | |
| " always show signcolumns | |
| set signcolumn=yes | |
| " if hidden is not set, TextEdit might fail. | |
| set hidden | |
| " Turn backup off, since most stuff is in SVN, git etc. anyway... | |
| set nobackup | |
| set nowb | |
| set noswapfile | |
| " Syntax | |
| syntax on | |
| filetype plugin indent on | |
| " Set cursorline | |
| set cursorline | |
| " No annoying sound on errors | |
| set noerrorbells | |
| set novisualbell | |
| set tm=500 | |
| set redrawtime=10000 | |
| " Enable the use of the mouse | |
| set mouse=a | |
| " Minimal number of screen lines to keep above and below the cursor | |
| set scrolloff=8 | |
| " Do smart autoindenting when starting a new line | |
| set smartindent | |
| "Override the 'ignorecase' option if the search pattern contains upper case characters. | |
| set smartcase | |
| "When this option is set, the screen will not be redrawn while executing macros, registers and other commands that have not been typed. | |
| set lazyredraw | |
| "A comma separated list of options for Insert mode completion |ins-completion|. | |
| set completeopt=menuone,noinsert,noselect | |
| "Accept clipboard yank | |
| set clipboard+=unnamedplus | |
| "Remove trailing spaces | |
| autocmd BufWritePre * %s/\s\+$//e | |
| " Misc | |
| set t_Co=256 | |
| set cindent | |
| set sidescrolloff=1 | |
| if !filereadable(vimplug_exists) | |
| if !executable("curl") | |
| echoerr "You have to install curl or first install vim-plug yourself!" | |
| execute "q!" | |
| endif | |
| echo "Installing Vim-Plug..." | |
| echo "" | |
| silent exec "!\curl -fLo " . 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 install packages | |
| "***************************************************************************** | |
| "Airline | |
| Plug 'vim-airline/vim-airline' | |
| Plug 'vim-airline/vim-airline-themes' | |
| "Comments | |
| Plug 'scrooloose/nerdcommenter' | |
| "Icons | |
| Plug 'ryanoasis/vim-devicons' | |
| "Git | |
| Plug 'tpope/vim-fugitive' | |
| Plug 'airblade/vim-gitgutter' | |
| " Projectionist | |
| Plug 'tpope/vim-projectionist' | |
| " LazyGit | |
| Plug 'kdheepak/lazygit.nvim' | |
| "" Magit | |
| "Plug 'jreybert/vimagit' | |
| "THEMES | |
| "Plug 'morhetz/gruvbox' | |
| Plug 'drewtempelmeyer/palenight.vim' | |
| "Darker contrast onedark | |
| "Plug 'ukyouz/onedark.vim' | |
| " Original onedark | |
| Plug 'joshdick/onedark.vim' | |
| " Elixir special theme (NOT SO GOOD) | |
| "Plug 'embark-theme/vim', { 'as': 'embark', 'branch': 'main' } | |
| " Theme Github | |
| Plug 'projekt0n/github-nvim-theme' | |
| "FZF | |
| Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } | |
| Plug 'junegunn/fzf.vim' | |
| "COC | |
| Plug 'neoclide/coc.nvim', {'branch': 'release'} | |
| "Tailwindcss | |
| "Plug 'iamcco/coc-tailwindcss', {'do': 'npm install && npm run build'} | |
| " PR Fix https://github.com/iamcco/coc-tailwindcss/pull/70 | |
| " Used @yaegassy/coc-tailwindcss3 instead | |
| "Plug 'yaegassy/coc-tailwindcss', {'do': 'npm install --frozen-lockfile && npm run build', 'branch': 'feat/support-v3-and-use-server-pkg'} | |
| "Plug 'yaegassy/coc-tailwindcss3', {'do': 'npm install --frozen-lockfile'} | |
| "Snippets | |
| Plug 'honza/vim-snippets' | |
| Plug 'SirVer/ultisnips' | |
| "Svelte | |
| Plug 'othree/html5.vim' | |
| Plug 'pangloss/vim-javascript' | |
| Plug 'evanleck/vim-svelte', {'branch': 'main'} | |
| "Tmux link | |
| Plug 'christoomey/vim-tmux-navigator' | |
| "Extra Formatting | |
| Plug 'chiel92/vim-autoformat' | |
| "Polyglot | |
| Plug 'sheerun/vim-polyglot' | |
| " Earthly | |
| Plug 'earthly/earthly.vim', { 'branch': 'main' } | |
| "HTML EEX formatter | |
| "TODO Install 'beautify-web/js-beautify' with npm | |
| " EasyMotion | |
| Plug 'easymotion/vim-easymotion' | |
| "Better Comments | |
| "Plug 'jbgutierrez/vim-better-comments' | |
| "Plug 'onixus74/vim-better-comments' | |
| Plug 'wakatime/vim-wakatime' | |
| " TS Syntax | |
| Plug 'HerringtonDarkholme/yats.vim' | |
| " Brackets coloring | |
| "Plug 'luochen1990/rainbow' | |
| Plug 'junegunn/rainbow_parentheses.vim' | |
| " Indentation lines | |
| Plug 'Yggdroot/indentLine' | |
| "Smooth Scroll | |
| Plug 'yuttie/comfortable-motion.vim' | |
| "Bookmarks | |
| Plug 'MattesGroeger/vim-bookmarks' | |
| " Search | |
| Plug 'jremmen/vim-ripgrep' | |
| " VIM Syntax Debug | |
| " :SyntaxInfoEnable | |
| Plug 'wadackel/nvim-syntax-info' | |
| " LSP | |
| " Plug 'neovim/nvim-lspconfig' | |
| " Plug 'kabouzeid/nvim-lspinstall' | |
| " NVIM in Browser textbox | |
| " Plug 'glacambre/firenvim', { 'do': { _ -> firenvim#install(0) } } | |
| " MultiCursor | |
| Plug 'mg979/vim-visual-multi', {'branch': 'master'} | |
| " Minimap | |
| "Plug 'severin-lemaignan/vim-minimap' | |
| " Vim Homescreen | |
| "Plug 'mhinz/vim-startify' | |
| " Initialize plugin system | |
| call plug#end() | |
| "! VIM-AIRLINE | |
| "Airline Theme | |
| "let g:airline_theme = 'durant' | |
| "let g:airline_theme = 'onedark' | |
| "let g:airline_theme = 'dark' | |
| "let g:airline_theme = 'badwolf' | |
| "let g:airline_theme = 'deus' | |
| let g:airline_theme = 'palenight' | |
| "Airline seperators | |
| let g:airline_right_sep = '' | |
| let g:airline_left_sep = '' | |
| let g:airline_left_alt_sep = '' | |
| let g:airline_right_alt_sep = '' | |
| "let g:airline_left_sep = "\uE0BC" | |
| "let g:airline_right_sep = "\uE0C7" | |
| "let g:airline_left_alt_sep = "\uE0B9" | |
| "let g:airline_right_alt_sep = "\uE0BB" | |
| "Airline Config | |
| let g:airline#extensions#tabline#formatter = 'short_path' | |
| let g:airline#extensions#branch#enabled = 1 | |
| let g:airline#extensions#bookmark#enabled = 1 | |
| let g:airline#extensions#tagbar#enabled = 1 | |
| "let g:airline_skip_empty_sections = 1 | |
| let g:airlie_powerline_fonts = 1 | |
| " Airline Tabline Config | |
| let g:airline#extensions#tabline#enabled = 1 | |
| let g:airline#extensions#tabline#show_splits = 1 | |
| let g:airline#extensions#tabline#switch_buffers_and_tabs = 1 | |
| "<silent>let g:airline#extensions#tabline#left_sep = '' | |
| "let g:airline#extensions#tabline#right_sep = '' | |
| "let g:airline#extensions#tabline#left_alt_sep = '' | |
| "let g:airline#extensions#tabline#right_alt_sep = '' | |
| let g:airline#extensions#tabline#left_sep = '' | |
| "let g:airline#extensions#tabline#left_sep = "\uE0B8" | |
| "let g:airline#extensions#tabline#right_sep = "\uE0BA" | |
| "let g:airline#extensions#tabline#left_alt_sep = "\uE0B9" | |
| let g:airline#extensions#tabline#left_alt_sep = '' | |
| let g:airline#extensions#tabline#right_alt_sep = "\uE0BD" | |
| "let g:airline#extensions#tabline#fnamemod = ':t' | |
| let g:airline#extensions#tabline#fnamecollapse = 1 | |
| let g:airline#extensions#tabline#fnametruncate = 0 | |
| let g:airline#extensions#tabline#show_close_button = 1 | |
| let g:airline#extensions#tabline#close_symbol = 'X' | |
| " !Bookmarks Config | |
| let g:bookmark_sign = '' | |
| let g:bookmark_annotation_sign = '' | |
| "let g:bookmark_highlight_lines = 1 | |
| " Tabs | |
| nnoremap K :bnext<CR> | |
| nnoremap J :bpre<CR> | |
| nnoremap <C-S-t> :tabnew<CR> | |
| nnoremap <C-w> :bdelete!<CR> | |
| " Vmap for maintain Visual Mode after shifting > and < | |
| vmap < <gv | |
| vmap > >gv | |
| "Rainbow Config | |
| au VimEnter * RainbowParentheses | |
| "augroup rainbow_lisp | |
| "autocmd! | |
| "autocmd FileType elixir,eelixir,javascript,typescript,lisp,clojure,scheme RainbowParentheses | |
| "autocmd FileType scss, css | |
| "augroup END | |
| let g:rainbow#max_level = 10 | |
| let g:rainbow#pairs = [['(', ')'], ['[', ']'], ['{', '}']] | |
| " List of colors that you do not want. ANSI code or #RRGGBB | |
| let g:rainbow#blacklist = [145, 9, 14, 248, 130, 33, 15, 59, 239, 238] | |
| "luochen1990/rainbow NOT WORKING in NVIM 0.5 () | |
| "let g:rainbow_active = 1 | |
| "let g:rainbow_conf = { | |
| "\ 'guifgs': ['LightYellow', 'LightCyan', 'LightBlue'], | |
| "\ 'ctermfgs': ['lightyellow', 'lightcyan', 'lightmagenta'] | |
| "\} | |
| " Visual Multi Cursor Config | |
| let g:VM_maps = {} | |
| let g:VM_maps['Find Under'] = '<C-c>' " replace C-n | |
| let g:VM_maps['Find Subword Under'] = '<C-c>' " replace visual C-n | |
| " Indent Line Config | |
| let g:indentLine_setColors = 1 | |
| let g:indentLine_char_list = ['┆', '¦', '|'] | |
| let g:indentLine_fileTypeExclude = ['coc-explorer'] | |
| " Split | |
| noremap <Leader>h :<C-u>split<CR> | |
| noremap <Leader>v :<C-u>vsplit<CR> | |
| " Resize splits | |
| " TODO | |
| nnoremap <leader>+ :vertical resize +5<CR> | |
| nnoremap <leader>- :vertical resize -5<CR> | |
| nnoremap <leader>rp :resize 100<CR> | |
| " Toggle Spell-check | |
| map <leader>o :setlocal spell! spelllang=en_us<CR> | |
| " Svelte Config | |
| " Default to typescript | |
| let g:svelte_preprocessors = ['typescript'] | |
| " Vim-Autoformat | |
| " Disabled | |
| " au BufWrite * :Autoformat | |
| " VIM Autoformat Only Elixir EEx | |
| " On Save (Disabled) | |
| "au BufWrite *.html.*eex :Autoformat | |
| " With leader = | |
| nnoremap <leader> = :Autoformat<cr> | |
| let g:autoformat_autoindent = 0 | |
| let g:autoformat_retab = 0 | |
| let g:autoformat_remove_trailing_spaces = 0 | |
| " Elixir HTML EEX Formatter | |
| " INSTALL 'htmlbeautifier' with 'gem install htmlbeautifier' fork onixus74/htmlbeautifier | |
| "let g:formatdef_htmlbeautifier = "'html-beautify -s 2 -I --type html'" | |
| " let g:formatdef_htmlbeautifier = "'htmlbeautifier -b 1 -n eex'" | |
| "let g:formatdef_htmlbeautifier = "'htmlbeautifier -b 1'" | |
| " EEX BEAUTIFIER | |
| "let g:formatdef_htmlbeautifier = "'eexbeautifier -b 1 -e'" | |
| "let g:formatters_eelixir = ['htmlbeautifier'] | |
| " JS-BEAUTIFY (HTML-BEAUTIFY) | |
| " https://github.com/beautify-web/js-beautify | |
| "let g:formatdef_htmlbeautifier = "'html-beautify -H -s 2 -m 1 -I -A preserve-aligned -U [\"% end %\", \"% else %\"] --templating php -f -'" | |
| let g:formatdef_htmlbeautifier = '"html-beautify -H -s 2 -m 1 -I -H -A preserve-aligned --templating auto -f -"' | |
| let g:formatters_eelixir = ['htmlbeautifier'] | |
| "WIP | |
| "let g:formatdef_htmlbeautifier = "'../../Desktop/_workspace/_lab/_temp/_onixus74/js-beautify/js/bin/html-beautify.js -s 2 -m 1 -I -A preserve-aligned --templating php'" | |
| "let g:formatters_eelixir = ['htmlbeautifier'] | |
| au BufNewFile,BufRead, *.eex,*.heex,*.leex,*.sface,*.lexs set filetype=eelixir | |
| "au BufNewFile,BufRead *.eex,*.heex,*.leex,*.sface,*.lexs set filetype=html | |
| " Fix [https://github.com/elixir-editors/vim-elixir/pull/557] | |
| au BufEnter *.heex syn region surfaceExpression matchgroup=surfaceDelimiter start="{" end="}" contains=@elixirTop containedin=ALLBUT,@eelixirRegions keepend | |
| au BufEnter *.heex syn region surfaceExpression matchgroup=surfaceDelimiter start="{" end="}" skip="#{[^}]*}" contains=@elixirTop containedin=htmlValue keepend | |
| " EasyMotion | |
| "map <Leader><Leader> <Plug>(easymotion-prefix) | |
| "***************************************************************************** | |
| " Abbreviations | |
| "***************************************************************************** | |
| " no one is really happy until you have this shortcuts | |
| cnoreabbrev W! w! | |
| cnoreabbrev Q! q! | |
| cnoreabbrev Qall! qall! | |
| cnoreabbrev Wq wq | |
| cnoreabbrev Wa wa | |
| cnoreabbrev wQ wq | |
| cnoreabbrev WQ wq | |
| cnoreabbrev W w | |
| cnoreabbrev Q q | |
| cnoreabbrev Qall qall | |
| " from readme | |
| if exists('$TMUX') | |
| " tmux will only forward escape sequences to the terminal if surrounded by a DCS sequence | |
| let &t_SI .= "\<Esc>Ptmux;\<Esc>\<Esc>[3 q\<Esc>\\" | |
| let &t_EI .= "\Esc><Ptmux;\<Esc>\<Esc>[1 q\<Esc\\" | |
| autocmd VimLeave * silent !echo -ne "\033Ptmux;\033\033[0 q\033\\" | |
| else | |
| let &t_SI .= "\<Esc>[3 q" | |
| let &t_EI .= "\<Esc>[1 q" | |
| autocmd VimLeave * silent !echo -ne "\033[0 q" | |
| endif | |
| "! COC config | |
| " | |
| let g:coc_global_extensions = [ | |
| \ 'coc-marketplace', | |
| \ 'coc-snippets', | |
| "\ 'coc-tabnine', | |
| \ 'coc-explorer', | |
| \ 'coc-fzf-preview', | |
| \ 'coc-pairs', | |
| \ 'coc-tsserver', | |
| \ 'coc-eslint', | |
| \ 'coc-html', | |
| \ 'coc-emmet', | |
| \ 'coc-yaml', | |
| \ 'coc-css', | |
| \ 'coc-cssmodules', | |
| \ 'coc-scssmodules', | |
| \ 'coc-stylelint', | |
| \ 'coc-prettier', | |
| \ 'coc-json', | |
| "\ 'coc-elixir', "USE ElixirLS directly | |
| \ 'coc-svelte', | |
| "\ 'coc-tailwindcss' "Not maintained, | |
| \ '@yaegassy/coc-tailwindcss3', | |
| \ 'coc-flutter', | |
| \ 'coc-markdownlint', | |
| \ 'coc-markdown-preview-enhanced', | |
| \ 'coc-webview', | |
| \ 'coc-project', | |
| "\ 'coc-bootstrap-classname', "TEMPORARLY Disabled | |
| \ 'coc-swagger', | |
| \ ] | |
| function! s:check_back_space() abort | |
| let col = col('.') - 1 | |
| return !col || getline('.')[col - 1] =~# '\s' | |
| endfunction | |
| " Use <c-space> to trigger completion. | |
| inoremap <silent><expr> <c-space> coc#refresh() | |
| " Use <tab> to confirm completion, `<C-g>u` means break undo chain at current position. | |
| " Coc only does snippet and additional edit on confirm. | |
| "inoremap <expr> <tab> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>" | |
| inoremap <expr> <tab> pumvisible() ? "\<C-y>" : "\<C-g><C-g>\<CR>" | |
| " | |
| " Or use `complete_info` if your vim support it, like: | |
| "inoremap <expr> <tab> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>" | |
| " Use `[g` and `]g` to navigate diagnostics | |
| nmap <silent> [g <Plug>(coc-diagnostic-prev) | |
| nmap <silent> ]g <Plug>(coc-diagnostic-next) | |
| " Remap keys for gotos | |
| nmap <silent> gd <Plug>(coc-definition) | |
| nmap <silent> gy <Plug>(coc-type-definition) | |
| nmap <silent> gi <Plug>(coc-implementation) | |
| nmap <silent> gr <Plug>(coc-references) | |
| " Use gk to show documentation in preview window | |
| nnoremap <silent> gk :call <SID>show_documentation()<CR> | |
| function! s:show_documentation() | |
| if (index(['vim','help'], &filetype) >= 0) | |
| execute 'h '.expand('<cword>') | |
| else | |
| call CocAction('doHover') | |
| endif | |
| endfunction | |
| " Highlight symbol under cursor on CursorHold | |
| autocmd CursorHold * silent call CocActionAsync('highlight') | |
| " Remap for rename current word | |
| nmap <F2> <Plug>(coc-rename) | |
| " Remap for format selected region | |
| nmap <leader>f <Plug>(coc-format-selected) | |
| augroup mygroup | |
| autocmd! | |
| " Setup formatexpr specified filetype(s). | |
| autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') | |
| " Update signature help on jump placeholder | |
| autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') | |
| augroup end | |
| " Remap for do codeAction of selected region, ex: `<leader>aap` for current paragraph | |
| xmap <leader>a <Plug>(coc-codeaction-selected) | |
| nmap <leader>a <Plug>(coc-codeaction-selected) | |
| " Remap for do codeAction of current line | |
| nmap <leader>ac <Plug>(coc-codeaction) | |
| " Fix autofix problem of current line | |
| xmap <leader>t <Plug>(coc-format-selected) | |
| nmap <leader>qf <Plug>(coc-fix-current) | |
| " Create mappings for function text object, requires document symbols feature of languageserver. | |
| xmap if <Plug>(coc-funcobj-i) | |
| xmap af <Plug>(coc-funcobj-a) | |
| omap if <Plug>(coc-funcobj-i) | |
| omap af <Plug>(coc-funcobj-a) | |
| " Use <C-d> for select selections ranges, needs server support, like: coc-tsserver, coc-python | |
| " nmap <silent> <C-d> <Plug>(coc-range-select) | |
| " xmap <silent> <C-d> <Plug>(coc-range-select) | |
| " Use `:Format` to format current buffer | |
| command! -nargs=0 Format :call CocAction('format') | |
| " Use `:Fold` to fold current buffer | |
| command! -nargs=? Fold :call CocAction('fold', <f-args>) | |
| " use `:OR` for organize import of current buffer | |
| command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') | |
| " Add status line support, for integration with other plugin, checkout `:h coc-status` | |
| set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} | |
| "Coc-Explorer | |
| " Standard | |
| "nmap <C-n> :CocCommand explorer<CR> | |
| nmap <C-n> :CocCommand explorer --width 45<CR> | |
| " With preset | |
| "nmap <C-n> :CocCommand explorer --preset floatingLeftside<CR> | |
| let g:coc_explorer_global_presets = { | |
| \ '.vim': { | |
| \ 'root-uri': '~/.vim', | |
| \ }, | |
| \ 'cocConfig': { | |
| \ 'root-uri': '~/.config/coc', | |
| \ }, | |
| \ 'tab': { | |
| \ 'position': 'tab', | |
| \ 'quit-on-open': v:true, | |
| \ }, | |
| \ 'tab:$': { | |
| \ 'position': 'tab:$', | |
| \ 'quit-on-open': v:true, | |
| \ }, | |
| \ 'floating': { | |
| \ 'position': 'floating', | |
| \ 'open-action-strategy': 'sourceWindow', | |
| \ }, | |
| \ 'floatingTop': { | |
| \ 'position': 'floating', | |
| \ 'floating-position': 'center-top', | |
| \ 'open-action-strategy': 'sourceWindow', | |
| \ }, | |
| \ 'floatingLeftside': { | |
| \ 'position': 'floating', | |
| \ 'floating-position': 'left-center', | |
| \ 'floating-width': 70, | |
| \ 'open-action-strategy': 'sourceWindow', | |
| \ }, | |
| \ 'floatingRightside': { | |
| \ 'position': 'floating', | |
| \ 'floating-position': 'right-center', | |
| \ 'floating-width': 50, | |
| \ 'open-action-strategy': 'sourceWindow', | |
| \ }, | |
| \ 'simplify': { | |
| \ 'file-child-template': '[selection | clip | 1] [indent][icon | 1] [filename omitCenter 1]' | |
| \ }, | |
| \ 'buffer': { | |
| \ 'sources': [{'name': 'buffer', 'expand': v:true}] | |
| \ }, | |
| \ } | |
| " Coc-Prettier | |
| command! -nargs=0 Prettier :call CocAction('runCommand', 'prettier.formatFile') | |
| " TESTING | |
| "au FileType eelixir nnoremap <leader>f :silent %!prettier --print-width=120 --stdin-filepath %<CR> | |
| " Show all diagnostics | |
| nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr> | |
| " Manage extensions | |
| nnoremap <silent> <space>e :<C-u>CocList extensions<cr> | |
| " Show commands | |
| " nnoremap <silent> <space>c :<C-u>CocList commands<cr> | |
| " Find symbol of current document | |
| "nnoremap <silent> <leader>co :<C-u>CocFzfList outline<CR> | |
| "nnoremap <silent> <leader>oo :<C-u>CocFzfList outline<CR> | |
| nnoremap <silent> <leader>oo :<C-u>CocList outline<cr> | |
| " Search workspace symbols | |
| nnoremap <silent> <leader>s :<C-u>CocList -I symbols<cr> | |
| " Do default action for next item. | |
| nnoremap <silent> <leader>j :<C-u>CocNext<CR> | |
| " Do default action for previous item. | |
| nnoremap <silent> <leader>k :<C-u>CocPrev<CR> | |
| " Resume latest coc list | |
| nnoremap <silent> <leader>p :<C-u>CocListResume<CR> | |
| "!FZF | |
| " Files | |
| nnoremap <silent> <C-g> :GFiles?<CR> | |
| nnoremap <silent> <C-p> :GFiles<CR> | |
| "nnoremap <silent> <C-P> :Files<CR> | |
| nnoremap <silent> <leader>ff :Files<CR> | |
| nnoremap <silent> <leader>FF :GFiles<CR> | |
| nnoremap <silent> <leader>LL :Lines<CR> | |
| nmap <silent> <leader>ll :BLines<CR> | |
| nnoremap <silent> <leader>II :Commits<CR> | |
| nnoremap <silent> <leader>ii :BCommits<CR> | |
| "WIP | |
| nnoremap <silent> <leader>bb :Buffers<CR> | |
| nnoremap <silent> <leader>mm :CocCommand fzf-preview.Bookmarks <CR> | |
| "nnoremap <silent> <leader>mm :Marks<CR> | |
| "nnoremap <silent> <leader>bb :Marks<CR> | |
| let g:fzf_layout = { 'window': { 'width': 0.95, 'height': 0.95 } } | |
| let $FZF_DEFAULT_OPTS='--reverse' | |
| let g:fzf_preview_window = ['down:75%', 'ctrl-/'] | |
| " RipGrep | |
| let g:rg_command = 'rg --vimgrep -S' | |
| " :Rgf Fzf preview RipGrep | |
| command! -bang -nargs=* Rgf | |
| \ call fzf#vim#grep( | |
| \ 'rg --column --line-number --no-heading --color=always --smart-case -- '.shellescape(<q-args>), 1, | |
| \ fzf#vim#with_preview(), <bang>0) | |
| " Git | |
| " TODO | |
| nmap <leader>gs :G<CR> | |
| " Git diff resolve conflict | |
| nmap <leader>gd :Gvdiffsplit!<CR> | |
| nmap <leader>gj :diffget //2<CR> | |
| nmap <leader>gk :diffget //3<CR> | |
| nnoremap <leader>gf :GFiles<CR> | |
| "nnoremap <leader>gp :Gpush<CR> | |
| "nnoremap <leader>gb :GBranches<CR> | |
| nnoremap <leader>ga :Git fetch --all<CR> | |
| nnoremap <leader>grum :Git rebase upstream main<CR> | |
| nnoremap <leader>grom :Git rebase origin main<CR> | |
| nnoremap <leader>grh :Git rebase -i HEAD~15<CR> | |
| nnoremap <leader>gl :0GcLog<CR> | |
| " !GitGutter | |
| " ToggleHighlight | |
| nnoremap <leader>gi :GitGutterLineHighlightsToggle<CR> | |
| " Preview Hunk | |
| nnoremap <leader>gp :GitGutterPreviewHunk<CR> | |
| " LazyGit | |
| nnoremap <silent> <leader>gg :LazyGit<CR> | |
| " Flutter | |
| let g:dart_format_on_save = 1 | |
| let g:dart_style_guide = 2 | |
| " !VIMRC | |
| " TODO | |
| " Open config file from anywhere | |
| "nnoremap <leader>rc :e $MYVIMRC<CR> | |
| " Source config | |
| nnoremap <leader>so :source ~/.config/nvim/init.vim<cr> | |
| " Automatically source vimrc on save. | |
| " autocmd! bufwritepost ~/.config/nvim/init.vim source % | |
| " ENVRC | |
| au BufRead,BufNewFile *.env* set filetype=sh | |
| " Theme | |
| " | |
| " Note : | |
| " github_dark + palenight good | |
| " github_dark + onedark good | |
| "colorscheme gruvbox | |
| colorscheme github_dark | |
| colorscheme palenight | |
| "colorscheme onedark | |
| "colorscheme nvcode | |
| set background=dark | |