-
-
Save benawad/b768f5a5bbd92c8baabd363b7e79786f to your computer and use it in GitHub Desktop.
" Specify a directory for plugins | |
call plug#begin('~/.vim/plugged') | |
Plug 'neoclide/coc.nvim', {'branch': 'release'} | |
Plug 'scrooloose/nerdtree' | |
"Plug 'tsony-tsonev/nerdtree-git-plugin' | |
Plug 'Xuyuanp/nerdtree-git-plugin' | |
Plug 'tiagofumo/vim-nerdtree-syntax-highlight' | |
Plug 'ryanoasis/vim-devicons' | |
Plug 'airblade/vim-gitgutter' | |
Plug 'ctrlpvim/ctrlp.vim' " fuzzy find files | |
Plug 'scrooloose/nerdcommenter' | |
"Plug 'prettier/vim-prettier', { 'do': 'yarn install' } | |
Plug 'christoomey/vim-tmux-navigator' | |
Plug 'morhetz/gruvbox' | |
Plug 'HerringtonDarkholme/yats.vim' " TS Syntax | |
" Initialize plugin system | |
call plug#end() | |
inoremap jk <ESC> | |
nmap <C-n> :NERDTreeToggle<CR> | |
vmap ++ <plug>NERDCommenterToggle | |
nmap ++ <plug>NERDCommenterToggle | |
" open NERDTree automatically | |
"autocmd StdinReadPre * let s:std_in=1 | |
"autocmd VimEnter * NERDTree | |
let g:NERDTreeGitStatusWithFlags = 1 | |
"let g:WebDevIconsUnicodeDecorateFolderNodes = 1 | |
"let g:NERDTreeGitStatusNodeColorization = 1 | |
"let g:NERDTreeColorMapCustom = { | |
"\ "Staged" : "#0ee375", | |
"\ "Modified" : "#d9bf91", | |
"\ "Renamed" : "#51C9FC", | |
"\ "Untracked" : "#FCE77C", | |
"\ "Unmerged" : "#FC51E6", | |
"\ "Dirty" : "#FFBD61", | |
"\ "Clean" : "#87939A", | |
"\ "Ignored" : "#808080" | |
"\ } | |
let g:NERDTreeIgnore = ['^node_modules$'] | |
" vim-prettier | |
"let g:prettier#quickfix_enabled = 0 | |
"let g:prettier#quickfix_auto_focus = 0 | |
" prettier command for coc | |
command! -nargs=0 Prettier :CocCommand prettier.formatFile | |
" run prettier on save | |
"let g:prettier#autoformat = 0 | |
"autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html PrettierAsync | |
" ctrlp | |
let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard'] | |
" j/k will move virtual lines (lines that wrap) | |
noremap <silent> <expr> j (v:count == 0 ? 'gj' : 'j') | |
noremap <silent> <expr> k (v:count == 0 ? 'gk' : 'k') | |
set relativenumber | |
set smarttab | |
set cindent | |
set tabstop=2 | |
set shiftwidth=2 | |
" always uses spaces instead of tab characters | |
set expandtab | |
colorscheme gruvbox | |
" sync open file with NERDTree | |
" " Check if NERDTree is open or active | |
function! IsNERDTreeOpen() | |
return exists("t:NERDTreeBufName") && (bufwinnr(t:NERDTreeBufName) != -1) | |
endfunction | |
" Call NERDTreeFind iff NERDTree is active, current window contains a modifiable | |
" file, and we're not in vimdiff | |
function! SyncTree() | |
if &modifiable && IsNERDTreeOpen() && strlen(expand('%')) > 0 && !&diff | |
NERDTreeFind | |
wincmd p | |
endif | |
endfunction | |
" Highlight currently open buffer in NERDTree | |
autocmd BufEnter * call SyncTree() | |
" coc config | |
let g:coc_global_extensions = [ | |
\ 'coc-snippets', | |
\ 'coc-pairs', | |
\ 'coc-tsserver', | |
\ 'coc-eslint', | |
\ 'coc-prettier', | |
\ 'coc-json', | |
\ ] | |
" from readme | |
" if hidden is not set, TextEdit might fail. | |
set hidden " Some servers have issues with backup files, see #649 set nobackup set nowritebackup " Better display for messages set cmdheight=2 " You will have bad experience for diagnostic messages when it's default 4000. | |
set updatetime=300 | |
" don't give |ins-completion-menu| messages. | |
set shortmess+=c | |
" always show signcolumns | |
set signcolumn=yes | |
" Use tab for trigger completion with characters ahead and navigate. | |
" Use command ':verbose imap <tab>' to make sure tab is not mapped by other plugin. | |
inoremap <silent><expr> <TAB> | |
\ pumvisible() ? "\<C-n>" : | |
\ <SID>check_back_space() ? "\<TAB>" : | |
\ coc#refresh() | |
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" | |
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 <cr> to confirm completion, `<C-g>u` means break undo chain at current position. | |
" Coc only does snippet and additional edit on confirm. | |
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>" | |
" Or use `complete_info` if your vim support it, like: | |
" inoremap <expr> <cr> 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 K to show documentation in preview window | |
nnoremap <silent> K :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 | |
xmap <leader>f <Plug>(coc-format-selected) | |
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 | |
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','')} | |
" Using CocList | |
" 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> <space>o :<C-u>CocList outline<cr> | |
" Search workspace symbols | |
nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr> | |
" Do default action for next item. | |
nnoremap <silent> <space>j :<C-u>CocNext<CR> | |
" Do default action for previous item. | |
nnoremap <silent> <space>k :<C-u>CocPrev<CR> | |
" Resume latest coc list | |
nnoremap <silent> <space>p :<C-u>CocListResume<CR> |
Folder's icons are not loading, too..
You need to install and set up the Hack Nerd Font in your console
How do I install this on my Ubuntu WSL2 terminal?
Just download the font's ttfs and then move it to /usr/share/fonts/TTF/
Where to put this file??
Where to put this file??
~/.config/nvim/here
[coc.nvim] error on execute python script: request error nvim_command - Vim(pyxfile): E319: No "python3" provider found. Run "checkhealth provider"
"help my"
@cybercoder-naj I believe it's the line set relativenumber
which enables relative line numbers that aid in the use of Vim key bindings.
@kraud0003 plz run this on your terminal python3 -m pip install --user --upgrade pynvim
I want a one step setup or a line of bash
@butterfly1924 what os you on?
If you dont mind terminal programs and vim keybindings for everything you can use my mern stack version of larbs: https://github.com/AshMagill/mernrod
nerdtree always opens twice when pressing ctrl + n
and i don't know why
I want the current line number to be displayed instead of "0" wherever the cursor is. What do I edit in my init.vim file? I want the relative lines up and down, but the current line must show the current line number
Have you done yet? Just type in set relativenumber number
same line in the init.vim file
nerdtree always opens twice when pressing ^n and i don't know why
I had this same issue. After checking for how to fix it, I found this SO answer: https://vi.stackexchange.com/questions/22881/nerdtreetoggle-always-opens-up-two-directory-windows-instead-of-one#:~:text=autocmd%20BufRead%20*%20call%20SyncTree()
Changing BufWrite to BufRead like that answer suggests worked for me.
There is a new problem for coc.nvim in 0.0.82 saying:
" coc.nvim has switched to custom popup menu from 0.0.82 you have to change key-mappings for , to make them work. see :h coc-completion-example "
There is a new problem for coc.nvim in 0.0.82 saying:
" coc.nvim has switched to custom popup menu from 0.0.82 you have to change key-mappings for , to make them work. see :h coc-completion-example "
solution
https://www.reddit.com/r/neovim/comments/weydql/cocvim_switched_to_custom_popup_menu_how_to/
[coc.nvim] "node" is not executable, checkout https://nodejs.org/en/download/
Am having this error message when i run Vim
[coc.nvim] "node" is not executable, checkout https://nodejs.org/en/download/
Am having this error message when i run Vim
I believe you need to have node installed on your computer, because if you copied the config files then coc automatically installs tsserver (which requires node), however if you don't want to install it then you can just remove 'coc-tsserver' from the config file.
- Plug.vim content
whenever i click on the download link it doesn't initiate a down. rather it takes me to the file itself on my browser
- ~/.local/share/nvim/site/autoload/plug.vim
i keep getting that directory doesn't exist when i try to copy the plug.vim file to the autoload folder
any help?
I get following errors
line 59:
E492: Not an editor command: PrettierAsync
line 110:
E690: Missing "in" after :for
line 229:
E170: Missing :endfor
Press ENTER or type command to continue```
hi i like it, well done thanks for sharing
How do I install this on my Ubuntu WSL2 terminal?