From ec66fcc0a42f02e0a141dc859d4d8bb562463e39 Mon Sep 17 00:00:00 2001 From: "Harish.K" Date: Fri, 15 May 2020 12:52:00 +0530 Subject: [PATCH] Update nvim config --- home/.config/nvim/init.vim | 83 ++++++++++++++++++++++++++------------ 1 file changed, 58 insertions(+), 25 deletions(-) diff --git a/home/.config/nvim/init.vim b/home/.config/nvim/init.vim index 532cfeb..63ebc34 100644 --- a/home/.config/nvim/init.vim +++ b/home/.config/nvim/init.vim @@ -2,13 +2,19 @@ " My custom commands {{{ -" Grep for a word +imap ; +imap , +imap +" Grep for a word and open the result in errorlist command! -nargs=+ Gr :silent execute 'grep! -nr "" | copen' +" Raw version of Gr command. command! -nargs=* Grc grep -nr -" Add file header to current buffer + +" Add file header to current buffer. Depends on https://github.com/harish2704/file-header command! Header :execute '0r!file-header %' -" Open Terminal in split +" Open Terminal in split window +command! Termw :execute '!konsole -e bash-session &' command! Term :execute 'sp | term' " Cd to current file's directory @@ -25,6 +31,9 @@ command! Rm :execute '!rm %' | bd " Copy current file path to unnamedplus register command! CopyFilename :let @+=@% + +" Open vscode in on current line +command! Code :execute "!code ./ -g %:". ( line('.')+1 ) " }}} @@ -46,10 +55,11 @@ set foldlevel=99 set foldmethod=indent au BufEnter *.js.ejs set ft=javascript.ejs +au BufEnter *.sshconf set ft=sshconfig + " Disable python linting autocmd VimEnter *.py SyntasticToggleMode -let g:NERDSpaceDelims=1 let g:python_host_prog='/usr/bin/python2' let g:python3_host_prog='/usr/bin/python3' @@ -76,6 +86,7 @@ autocmd FileType php unmap % " Add file header automatically for javascript files autocmd BufNewFile *.js :Header +autocmd BufNewFile *.py :Header " }}} @@ -83,15 +94,15 @@ autocmd BufNewFile *.js :Header " for formating {{{ " set nowrap " Wrap long lines set autoindent " Indent at the same level of the previous line -set shiftwidth=2 " Use indents of 4 spaces set expandtab " Tabs are spaces, not tabs set tabstop=2 " An indentation every four columns -set softtabstop=2 " Let backspace delete indent +set shiftwidth=0 " Use indents of 4 spaces +set softtabstop=0 " Let backspace delete indent set wrap set cursorline " Highlight current line set listchars=tab:›\ ,trail:•,extends:#,nbsp:. " Highlight problematic whitespace set nocompatible " be iMproved -syntax on +syntax on " for JavaScript {{{ " if we press 'gf' under require('abc/xyz'), then also sarch for ./abs/xyz.js @@ -152,9 +163,6 @@ set list let g:html_indent_inctags = "html,body,head,tbody" let g:html_indent_script1 = "inc" let g:html_indent_style1 = "inc" - -let b:javascript_fold = 0 - " }}} @@ -178,6 +186,7 @@ let g:nerdtree_tabs_open_on_gui_startup=0 " * Typedoc compatible Sexycomment support for typescript ( '/**' instead of '/*'' ) " * jsdoc3 compatible Sexycomment support for javascript ( '/**' instead of '/*'' ) +let g:NERDSpaceDelims=1 au BufEnter *.ts let b:NERDSexyComMarker='* ' au BufEnter *.js let b:NERDSexyComMarker='* ' au BufEnter *.jsx let b:NERDSexyComMarker='* ' @@ -248,6 +257,7 @@ let nvim_conf_root='~/.config/nvim/' " Enable jsdoc comments Highlight for javascript let g:javascript_plugin_jsdoc = 1 +let g:MacroManagerDir = g:nvim_conf_root . 'macros' call plug#begin( ) Plug 'tpope/vim-fugitive' " For Git repo management. Plug 'brooth/far.vim' " Interactive Fine & replace on multiple files @@ -276,15 +286,15 @@ Plug 'vim-scripts/DoxygenToolkit.vim' " Quickly create Doxygent style comments Plug 'scrooloose/syntastic' " Syntax checking pluin Plug 'rust-lang/rust.vim', { 'for': 'rust'} -Plug 'mxw/vim-jsx' " Plug 'othree/yajs.vim' " Plug 'harish2704/tern_for_vim' , { 'for': 'javascript' } Plug 'harish2704/nerdcommenter' " Code commenting uncommenting +Plug 'tomtom/tlib_vim' " Dependency of Snipmate plugin +Plug 'MarcWeber/vim-addon-mw-utils' " Dependency of Snipmate plugin Plug 'garbas/vim-snipmate' " Snippet management " Plug 'amiorin/vim-project' -Plug 'MarcWeber/vim-addon-mw-utils' " Dependency of Snipmate plugin -" Plug 'tomtom/tlib_vim' " Dependency of Snipmate plugin -Plug 'nathanaelkane/vim-indent-guides' " Show indentation guides +" Plug 'nathanaelkane/vim-indent-guides' " Show indentation guides +Plug 'Yggdroot/indentLine' " Plug 'flazz/vim-colorschemes' Plug 'vim-scripts/sessionman.vim' " Session manager. Manage projects " Plug 'kien/ctrlp.vim' @@ -306,7 +316,11 @@ Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } "Autocompletion Plug 'Shougo/vimproc.vim' " Plug 'Quramy/tsuquyomi' -Plug 'mhartington/nvim-typescript' +Plug 'pangloss/vim-javascript' +Plug 'mxw/vim-jsx' , { 'for': [ 'javascript.jsx'] } +" Plug 'posva/vim-vue' +Plug 'leafOfTree/vim-vue-plugin' , { 'for': ['vue']} +Plug 'mhartington/nvim-typescript' , { 'for': ['javascript.ts'] } Plug 'spf13/vim-autoclose' " Autoclose brackets/quotes etc @@ -322,7 +336,7 @@ Plug 'AndrewRadev/vim-eco', { 'for': [ 'ect', 'eco' ] } " Plug 'mustache/vim-mode' Plug 'mustache/vim-mustache-handlebars', { 'for': 'handlebars' } Plug 'chrisbra/NrrwRgn' " Edit a portion file as different buffer -Plug 'heavenshell/vim-jsdoc', { 'for': 'javascript' } +" Plug 'heavenshell/vim-jsdoc', { 'for': 'javascript' } " Plug 'vim-scripts/JavaScript-Indent' " Plug 'spf13/PIV' " Plug 'joonty/vim-taggatron' @@ -350,15 +364,19 @@ Plug 'junegunn/fzf.vim' Plug 'Glench/Vim-Jinja2-Syntax' " Plug 'kannokanno/previm' Plug 'tyru/open-browser.vim' -Plug 'harish2704/MatchTag' +" Plug 'harish2704/MatchTag' +Plug 'Valloric/MatchTagAlways' " Plug 'leafgarland/typescript-vim' Plug 'bogado/file-line' " Plug 'vim-scripts/marvim' Plug 'dohsimpson/vim-macroeditor' +Plug 'low-ghost/vim-macro-manager' Plug 'tikhomirov/vim-glsl' -Plug 'pangloss/vim-javascript' , { 'for': ['javascript', 'javascript.jsx', 'html', 'vue'] } -Plug 'posva/vim-vue' -" Plug 'HerringtonDarkholme/yats.vim' +Plug 'HerringtonDarkholme/yats.vim' +Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app & yarn install' } +Plug 'ollykel/v-vim' +Plug 'sjl/gundo.vim' +Plug 'evanleck/vim-svelte', { 'for': 'svelte' } " Plug 'zenbro/mirror.vim' " Plug 'kassio/neoterm' call plug#end() @@ -463,13 +481,13 @@ nmap :execute 'Mt' . (tabpagenr() +1) " }}} " \tr Reset shiftwidth to default value 2 -nmap tr :set tabstop=2 | set shiftwidth=2 | set softtabstop=2 +nmap tr :set tabstop=2 " \tt Toggle tab and spaces nmap tt :let &expandtab=!&expandtab " \tj Incraese additional two spaces width for tab -nmap tj :let &shiftwidth=&shiftwidth-2\|let &tabstop=&tabstop-2\|let &softtabstop=&softtabstop-2\|echo 'tabstop=' &tabstop +nmap tj :let &tabstop=&tabstop-2\|echo 'tabstop=' &tabstop " \tj Decreases two spaces width for tab -nmap tk :let &shiftwidth=&shiftwidth+2\|let &tabstop=&tabstop+2\|let &softtabstop=&softtabstop+2\|echo 'tabstop=' &tabstop +nmap tk :let &tabstop=&tabstop+2\|echo 'tabstop=' &tabstop " }}} " Session handling {{{ @@ -576,7 +594,22 @@ vmap "fy:%s#f# vmap "fy/f -set guicursor=n-c:block,i-ci-ve:ver40,r-cr-v:hor20,o:hor50,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor,sm:block-blinkwait175-blinkoff150-blinkon175 +" set guicursor=n-c:block,i-ci-ve:ver40,r-cr-v:hor20,o:hor50,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor,sm:block-blinkwait175-blinkoff150-blinkon175 set termguicolors -hi Visual guibg=#603D3D +" hi Visual guibg=#603D3D + + +function! CopyMatches(reg) + let hits = [] + %s//\=len(add(hits, submatch(0))) ? submatch(0) : ''/gne + let reg = empty(a:reg) ? '+' : a:reg + execute 'let @'.reg.' = join(hits, "\n") . "\n"' +endfunction +command! -register CopyMatches call CopyMatches() + +function! Unretab() range + execute a:firstline . "," . a:lastline . 's/ \{1,' . &tabstop . '}/\t/g' +endfunction +command! -register -range=% Unretab ,call Unretab() +" highlight Comment guifg=#afafb3