set runtimepath^=~/.vim runtimepath+=~/.vim/after let &packpath = &runtimepath "/usr/share/vim/vim81/defaults.vim, normally sourced in default arch linux vim source ~/.config/nvim/defaults.vim "https://wiki.archlinux.org/index.php/Neovim "ln -s ~/.vimrc ~/.config/nvim/init.vim "set rtp^=/usr/share/vim/vimfiles/ " change textwidth for mutt mail program text " au BufRead /tmp/mutt-* set tw=72 " Only do this part when compiled with support for autocommands. if has("autocmd") " Put these in an autocmd group, so that we can delete them easily. augroup vimrcEx au! " For all text files set 'textwidth' to 78 characters. autocmd FileType text setlocal textwidth=0 augroup END else set autoindent " always set autoindenting on endif " has("autocmd") "Setup vim-plugin if empty(glob('~/.vim/autoload/plug.vim')) silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif "tmp fix for chriskempson/base16-vim issue197 " https://github.com/chriskempson/base16-vim/issues/197 "can switch to danielwe/base16-vim below... function FixupBase16(info) !sed -i '/Base16hi/\! s/a:\(attr\|guisp\)/l:\1/g' ~/.vim/plugged/base16-vim/colors/*.vim endfunction call plug#begin('~/.vim/plugged') Plug '/usr/bin/fzf' Plug 'junegunn/fzf.vim' Plug 'tpope/vim-sensible' Plug 'chriskempson/base16-vim', { 'do': function('FixupBase16') } " Writing mode toggle `:Goyo` and `:Limelight` Plug 'junegunn/goyo.vim' Plug 'junegunn/limelight.vim' "Comments "use \cc \cl c, \cm \ci for commenting lines blocks in vis, norm modes "use ,c to comment out line(s) Plug 'scrooloose/nerdcommenter' Plug 'majutsushi/tagbar' " Plug 'tpope/vim-commentary' " Plug 'tpope/surround' "Commonly used vim helpers " Plug 'jedi-vim' " Plug 'bling/vim-airline' " Plug 'vim-airline/vim-airline-themes' "Denite, like emacs 'Helm' app " Plug 'Shougo/denite.nvim' "Search " Plug 'ctrlpvim/ctrlp.vim' " Plug 'vim-grepper' " Plug 'vim-netranger' "Git integration " Plug 'tpope/vim-fugitive' " Plug 'airblade/vim-gitgutter' "Linting " Plug 'neomake/neomake' " Plug 'w0rp/ale' "Syntax " Plug 'sheerun/vim-polyglot' " Plug 'matthewbdaly/vim-filetype-settings' " Plug 'rhysd/vim-grammarous' "cmd :GrammarousCheck, req java "External languages " Plug 'Vigemus/iron.nvim' " Plug 'bfredl/nvim-ipy' " Plug 'jpalardy/vim-slime' " Plug 'jalvesaq/Nvim-R' " Plug 'python-mode/python-mode', { 'branch': 'develop' } "latex " Plug 'lervag/vimtex' " Plug 'vim-pandoc' "Markdown " Plug 'vimwiki/vimwiki' " Plug 'suan/vim-instant-markdown' " Markdown preview instant-markdown-d "next one uses a rust lib for fast async md, requires rust/cargo install " Plug 'euclio/vim-markdown-composer' " Plug 'aaren/notedown' "https://github.com/iamcco/markdown-preview.nvim "if have nodejs and yarn, this is markdown-it js lib based " Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app & yarn install' } call plug#end() filetype plugin indent on "Syntax highlighting in Markdown "au BufNewFile,BufReadPost *.md set filetype=markdown "let g:polyglot_disabled = ['markdown'] let g:markdown_fenced_languages = ['html','r', 'javascript', 'python', 'sh', 'bash=sh', 'css', 'js=javascript', 'json=javascript'] "Tagbar config nmap :TagbarToggle let g:tagbar_type_markdown = { \ 'ctagstype' : 'markdown', \ 'kinds' : [ \ 'h:Heading_L1', \ 'i:Heading_L2', \ 'k:Heading_L3' \ ] \ } let g:tagbar_type_bib = { \ 'ctagstype' : 'bib', \ 'kinds' : [ \ 'a:Articles', \ 'b:Books', \ 'L:Booklets', \ 'c:Conferences', \ 'B:Inbook', \ 'C:Incollection', \ 'P:Inproceedings', \ 'm:Manuals', \ 'T:Masterstheses', \ 'M:Misc', \ 't:Phdtheses', \ 'p:Proceedings', \ 'r:Techreports', \ 'u:Unpublished', \ ] \ } "Python repl config let g:python_host_prog = '/usr/bin/python3' let g:loaded_python3_provider = 1 " let g:slime_target = 'neovim' ":vertical terminal ipython "set updatetime=100 "split navigations " nnoremap " nnoremap " nnoremap " nnoremap "nnoremap yr :IronRepl "nmap ,r (iron-send-motion) "xmap ,r (iron-send-motion) "nmap yR V,r "R repl config "" start R with F2 key "" map RStart "" imap RStart "" vmap RStart "" R version can be specified like this: "" let vimrplugin_r_path = '/opt/R/3.1.2-release/bin/R' "" Send selection or line to R with space bar, respectively. " vmap RDSendSelection " nmap RDSendLine "Neomake config " Full config: when writing or reading a buffer, and on changes in insert and " normal mode (after 1s; no delay when writing). "call neomake#configure#automake('nrwi', 500) "General vim config set tabstop=4 set shiftwidth=4 set expandtab " set number " set relativenumber " set hlsearch " set spell " au BufNewFile,BufRead *.js, *.html, *.css " \ set tabstop=2 " \ set softtabstop=2 " \ set shiftwidth=2 " "Mouse/trackpad pointer config " set mouse=a "already set by defaults.vim set mouse=n " OR try set mouse=r mouse=& " Shortcuts for next or prev file like after vim *.py " :map v :n " :map V :N " or just use :n or :N followed by the dot . cmd! "Quick save config imap ;s :update imap jjw :update " vs and running code "Quick mode exit config " Two semicolons are easy to type. The `^ fixes the cursor position. imap ;; `^ inoremap `^ " imap k `^ " Just press Space to enter insert mode while in normal mode. nmap i " On gvim and Linux console Vim, you can also use ctrl-Space. " :imap <> "Clipboard config " copy with ctrl-c in visual highlight mode vmap "+y "use system clipboard: Now yank y, delete d, or paste p work to/from system set clipboard=unnamedplus "Auto fix common spelling errors :ab teh the :ab Teh The :ab adn and :ab Adn And let mapleader = ',' augroup resCur autocmd! autocmd BufReadPost * call setpos(".", getpos("'\"")) augroup END set title "latex settings " let g:tex_flavor="latex" " let g:Tex_DefaultTargetFormat =" pdf" " let g:Tex_IgnoredWarnings ='' "make vimtex work with neovim " let g:vimtex_compiler_progname='nvr' " let g:vimtex_view_use_temp_files=2 " let g:vimtex_view_method='zathura' " let g:vimtex_quickfix_mode=0 " do not open the quickfix window automatically "Allow commenting and inverting empty lines (useful when commenting a region let g:NERDCommentEmptyLines = 1 "Add spaces after comment delimiters by default let g:NERDSpaceDelims = 1 "Use compact syntax for prettified multi-line comments let g:NERDCompactSexyComs = 1 " set background=dark if filereadable(expand("~/.vimrc_background")) let base16colorspace=256 source ~/.vimrc_background endif colorscheme base16-gruvbox-dark-hard "gvim options " if &t_Co > 2 || has("gui_running") if has("gui_running") " Switch on highlighting the last used search pattern. set hlsearch " Set font set gfn=Inconsolata\ 15 " Can toggle gui toolbar with `T` and menu with `m` in guioptions: " default is go=aegimrLtT set go=aegLt ":set go+=m or go-=m to toggle menu colorscheme base16-ocean autocmd VimEnter * Goyo autocmd VimEnter * Limelight0.8 "Switch cursor blink rate to 0msec set guicursor+=a:blinkon0 endif