neovim setup for c/c++/python/bash

sudo pacman -S nvim

 https://github.com/junegunn/vim-plug

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'
 
for vim/ 
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim 
 
mkdir  ~/.config/nvim
vim  ~/.config/nvim/init.vim 
 
 
call plug#begin('~/.vim/plugged')
  "plugin section add Plug '*/*'
 call plug#end() 
"config section 
 
##theme

Plug 'dracula/vim'
config section  
if (has("termguicolors"))
set termguicolors
endif
syntax enable
colorscheme dracula
 $ nvim +PlugInstall 
 
## file browser ##use control+b to toggle nerdtree
Plug 'scrooloose/nerdtree'
Plug 'ryanoasis/vim-devicons'
 
let g:NERDTreeShowHidden = 1
let g:NERDTreeMinimalUI = 1
let g:NERDTreeIgnore = []
let g:NERDTreeStatusline = ''
" Automaticaly close nvim if NERDTree is only thing left open
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" Toggle
nnoremap <silent> <C-b> :NERDTreeToggle<CR>                                         

If you want to open the nerdtree window when opening up Nvim, but put the cursor in the file-editing window, you can use the following setting:

augroup nerdtree_open
    autocmd!
    autocmd VimEnter * NERDTree | wincmd p
augroup END 
  
--on nerdtree
m=open menu, u=parent directory,c=change root to cursor,O,X=open/close child dir recursively,
k/j=move cursor to first/lst node of same level, ctrl+k/j=move cursor to previous/next node of
same level,i=open in new vertical window,s=open in new horizontal window[can also use gi/gs] 
 nvim +PlugInstall
 
How to reveal or show current file in nerdtree window
 
nnoremap <silent> <C-f> :NERDTreeFind<CR>

$ nvim +PlugInstall
 
#git status plugin

Plug 'Xuyuanp/nerdtree-git-plugin' 
let g:NERDTreeGitStatusIndicatorMapCustom = {
                \ 'Modified'  :'',
                \ 'Staged'    :'',
                \ 'Untracked' :'',
                \ 'Renamed'   :'',
                \ 'Unmerged'  :'',
                \ 'Deleted'   :'',
                \ 'Dirty'     :'',
                \ 'Ignored'   :'',
                \ 'Clean'     :'✔︎',
                \ 'Unknown'   :'?',
                \ } 
 
##integrated terminal 
 set splitright
set splitbelow
" turn terminal to normal mode with escape
tnoremap <Esc> <C-\><C-n>
" start terminal in insert mode
au BufEnter * if &buftype == 'terminal' | :startinsert | endif
" open terminal on ctrl+n
function! OpenTerminal()
split term://bash
resize 10
endfunction
nnoremap <c-n> :call OpenTerminal()<CR>
 
CTRL-N. To quit insert mode in the terminal, press Esc.
to switch to the code editor pane, use CTRL+w w
 
" use alt+hjkl to move between split/vsplit panels
tnoremap <A-h> <C-\><C-n><C-w>h
tnoremap <A-j> <C-\><C-n><C-w>j
tnoremap <A-k> <C-\><C-n><C-w>k
tnoremap <A-l> <C-\><C-n><C-w>l
nnoremap <A-h> <C-w>h
nnoremap <A-j> <C-w>j
nnoremap <A-k> <C-w>k
nnoremap <A-l> <C-w>l
move between your terminal and other panels with Alt+H, Alt+J, Alt+K, and Alt+L. 
 
file searching
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
nvim +PlugInstall
nnoremap <C-p> :FZF<CR>
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-s': 'split',
\ 'ctrl-v': 'vsplit'
\}
 
curl -sL install-node.now.sh/release | bash
or sudo pacman -S nodejs npm yarn  
Plug 'neoclide/coc.nvim', {'branch': 'release'}
let g:coc_global_extensions = ['coc-emmet', 'coc-css', 'coc-html', 'coc-json', 'coc-prettier', 'coc-tsserver']
 
  ##tab completion
 inoremap <silent><expr> <TAB>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<TAB>" :
      \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" 
 
##run c file using gcc with f 
 autocmd filetype c nnoremap <F9> :w<CR> :!clear<CR> :!gcc % -o %< && ./%<<CR>
autocmd FileType python map <buffer> <F9> :w<CR>:exec '!python3' shellescape(@%, 1)<CR>
 
for language extension see
https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions
 
  

Comments

Popular posts from this blog

sxhkd volume andbrightness config for dwm on void

fix idm integration on chrome

Hidden Wiki