Skip to content

Instantly share code, notes, and snippets.

@vince06fr
Last active December 18, 2020 07:55
Show Gist options
  • Save vince06fr/e8742413b8c45d5e05c707833918f4e6 to your computer and use it in GitHub Desktop.
Save vince06fr/e8742413b8c45d5e05c707833918f4e6 to your computer and use it in GitHub Desktop.
neovim ide configuration
" nvim config from https://medium.com/better-programming/setting-up-neovim-for-web-development-in-2020-d800de3efacd
" https://www.vimfromscratch.com/articles/vim-for-python/
" http://nerditya.com/code/guide-to-neovim/
" https://medium.com/@hanspinckaers/setting-up-vim-as-an-ide-for-python-773722142d1d
call plug#begin("~/.vim/plugged")
" Plugin Section
Plug 'dracula/vim'
Plug 'scrooloose/nerdtree'
Plug 'ryanoasis/vim-devicons'
" fuzzy finder vs ctrl-p ???
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
" status/tabline
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
" IntelliSense and Syntax Highlighting
Plug 'neoclide/coc.nvim', {'branch': 'release'}
let g:coc_global_extensions = ['coc-emmet', 'coc-css', 'coc-html', 'coc-json', 'coc-python', 'coc-prettier', 'coc-tsserver']
" TypeScript and TSX support
Plug 'leafgarland/typescript-vim'
Plug 'peitalin/vim-jsx-typescript'
" Tag navigation
Plug 'majutsushi/tagbar'
nmap <F8> :TagbarToggle<CR>
" Automatic quote and bracket completion
Plug 'jiangmiao/auto-pairs'
" Comment
Plug 'scrooloose/nerdcommenter'
" Folding
Plug 'tmhedberg/SimpylFold'
" zo: Open fold in current cursor postion
" zO: Open fold and sub-fold in current cursor postion recursively
" zc: Close the fold in current cursor position
" zC: Close the fold and sub-fold in current cursor position recursively
" zM : close all folds
" zm : close all folds level by level (if nested)
" zR: open all folds
" zr open all folds level by level (if nested)
" kv language for kivy
Plug 'farfanoide/vim-kivy'
" generator for Python docstrings
Plug 'heavenshell/vim-pydocstring', { 'do': 'make install' }
" Todo manager
Plug 'wsdjeg/vim-todo'
" A Vim Automatic Window Resizing Plugin
" Plug 'camspiers/animate.vim'
" Plug 'camspiers/lens.vim'
" all about surroundings: parentheses, brackets, quotes, XML tags, and more.
Plug 'tpope/vim-surround'
" Visually select text to be surrounded
" Type S" to surround the text with double quotes
" Mardown Preview
"We can use grip for render a mardownfile
" or
Plug 'JamshedVesuna/vim-markdown-preview'
"Plug 'suan/vim-instant-markdown', {'for': 'markdown'}
" Simple color picker
Plug 'KabbAmine/vCoolor.vim'
" <Alt-C> : To insert a color anywhere & modify the current hex, rgb, rgba or hsl color.
" <Alt-R> you can insert a rgb color anywhere (NORMAL and INSERT modes).
" <Alt-V> you can insert a hsl color anywhere (NORMAL and INSERT modes).
" <Alt-W> you can insert a rgba color anywhere (NORMAL and INSERT modes
Plug 'ap/vim-css-color'
Plug 'Yggdroot/indentLine'
"char: ¦, ┆, │, ⎸, or ▏
let g:indentLine_char = ' ⎸'
" let g:indentLine_char_list = ['|', '¦', '┆', '┊']
" :IndentLinesToggle toggles lines on and off.
" set cursorcolumn
" set cursorline
call plug#end()"Config Section
"set indentation for python
autocmd Filetype python setlocal ts=4 sw=4 sts=0 expandtab
" or set tabstop=4
" or
" :set tabstop=4 shiftwidth=4 expandtab
" for fix inentation:
" :retab
" for turn-on white space:
" :set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:·
if (has("termguicolors"))
set termguicolors
endif
syntax enable
colorscheme dracula
set mouse=a
"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-n> :NERDTreeToggle<CR>
" open new split panes to right and below
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 <M-t> :call OpenTerminal()<CR>
" use alt+hjkl to move between split/vsplit panels
tnoremap <M-h> <C-\><C-n><C-w>h
tnoremap <M-j> <C-\><C-n><C-w>j
tnoremap <M-k> <C-\><C-n><C-w>k
tnoremap <M-l> <C-\><C-n><C-w>l
nnoremap <M-h> <C-w>h
nnoremap <M-j> <C-w>j
nnoremap <M-k> <C-w>k
nnoremap <M-l> <C-w>l
" config of FZF plugin
nnoremap <C-p> :FZF<CR>
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-s': 'split',
\ 'ctrl-v': 'vsplit'
\}
let $FZF_DEFAULT_COMMAND = 'ag -g ""'
" Limit char guideline
" https://vi.stackexchange.com/questions/356/how-can-i-set-up-a-ruler-at-a-specific-column
set colorcolumn=80,100
highlight ColorColumn ctermbg=darkgrey guibg=grey20
" Line numbering
set nu
" activation french dictionnary via F6
" `z`= sur un mot souligné affiche une liste de corrections possibles
" `zg` rajoute un mot dans le dictionnaire
" `zug` pour annuler l’ajout au dictionnaire
" `]s` pour aller au prochain mot mal orthographié
" `[s` pour le précédent
" Activer le correcteur orthographique français avec F6
map <silent> <F6> "<Esc>:silent setlocal spell! spelllang=fr<CR>"
" copier du texte dans le clipboard avec ctrl-c grace à xclip
" https://hunden.linuxkompis.se/2020/06/30/how-to-copy-text-to-clipboard-in-neovim.html
vmap <C-c> y:call system("xclip -i -selection clipboard", getreg("\""))<CR>:call system("xclip -i", getreg("\""))<CR>
" vim_mardown_preview
let vim_markdown_preview_github=1
" Clear search pattern register
map <Leader><Space> :noh<CR>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment