lua << EOF vim.g.loaded = 1 vim.g.loaded_netrwPlugin = 1 EOF let plug_install = 0 let autoload_plug_path = stdpath('config') . '/autoload/plug.vim' if !filereadable(autoload_plug_path) silent exe '!curl -fL --create-dirs -o ' . autoload_plug_path . \ ' https://raw.github.com/junegunn/vim-plug/master/plug.vim' execute 'source ' . fnameescape(autoload_plug_path) let plug_install = 1 endif unlet autoload_plug_path call plug#begin('~/.config/nvim/plugins') " Code development helpers {{{ "Plug 'nvim-treesitter/nvim-treesitter-textobjects' "Plug 'nvim-treesitter/playground' "Plug 'p00f/nvim-ts-rainbow' "Plug 'vim-test/vim-test' "Plug 'RRethy/vim-illuminate' Plug 'Saecki/crates.nvim' | Plug 'jose-elias-alvarez/null-ls.nvim' Plug 'andrewferrier/debugprint.nvim' Plug 'Civitasv/cmake-tools.nvim' Plug 'danymat/neogen' Plug 'ftilde/vim-ugdb' Plug 'jubnzv/virtual-types.nvim' Plug 'krady21/compiler-explorer.nvim' Plug 'mizlan/iswap.nvim' Plug 'neovim/nvim-lspconfig' Plug 'numToStr/Comment.nvim' Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} Plug 'p00f/clangd_extensions.nvim' Plug 'ray-x/lsp_signature.nvim' Plug 'romgrk/nvim-treesitter-context' Plug 'ftilde/vim-ugdb' " }}} " Completion {{{ Plug 'hrsh7th/cmp-buffer' Plug 'hrsh7th/cmp-cmdline' Plug 'petertriho/cmp-git' Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-path' Plug 'hrsh7th/nvim-cmp' " }}} " Snippets {{{ "Plug 'fhill2/telescope-ultisnips.nvim' Plug 'dcampos/cmp-snippy' Plug 'dcampos/nvim-snippy' Plug 'honza/vim-snippets' " }}} " Files switch, jump and grep-like tools {{{ "Plug 'inside/vim-search-pulse' Plug 'MunifTanjim/nui.nvim' Plug 'ggandor/leap.nvim' Plug 'kyazdani42/nvim-tree.lua' Plug 'kyazdani42/nvim-web-devicons' Plug 'numToStr/FTerm.nvim' Plug 'nvim-lua/plenary.nvim' Plug 'nvim-lua/popup.nvim' Plug 'nvim-telescope/telescope.nvim' Plug 'wellle/targets.vim' " }}} " Git integration {{{ Plug 'lewis6991/gitsigns.nvim' Plug 'tpope/vim-fugitive' " }}} " Support for random filetypes {{{ "Plug 'chrisbra/csv.vim' "Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']} "Plug 'vim-pandoc/vim-pandoc' "Plug 'weirongxu/plantuml-previewer.vim' | Plug 'aklt/plantuml-syntax' Plug 'kergoth/vim-bitbake' " Bitbake templates and syntax Plug 'toppair/peek.nvim', {'do': ':!deno task --quiet build:fast'} " }}} " Other plugins (external tools, etc) {{{ "Plug 'JMcKiern/vim-shoot' "Plug 'MortenStabenau/matlab-vim' "Plug 'junegunn/goyo.vim' Plug 'folke/which-key.nvim' Plug 'nvim-lualine/lualine.nvim' Plug 'protex/better-digraphs.nvim' " }}} " Note taking {{{ Plug 'nvim-neorg/neorg' Plug 'jakewvincent/mkdnflow.nvim' Plug 'AckslD/nvim-FeMaco.lua' " }}} " Appearance {{{ "Plug 'jaredgorski/spacecamp' "Plug 'lifepillar/vim-gruvbox8' "Plug 'marko-cerovac/material.nvim' "Plug 'srcery-colors/srcery-vim' "Plug 'tanvirtin/monokai.nvim' Plug 'anuvyklack/fold-preview.nvim' | Plug 'anuvyklack/keymap-amend.nvim' Plug 'anuvyklack/pretty-fold.nvim' Plug 'anuvyklack/windows.nvim' | Plug 'anuvyklack/middleclass' | Plug 'anuvyklack/animation.nvim' Plug 'lukas-reineke/virt-column.nvim' Plug 'stevearc/dressing.nvim' Plug 'wuelnerdotexe/vim-enfocado' Plug 'fenetikm/falcon' " }}} " Testing phase {{{ "Plug 'RRethy/vim-hexokinase', { 'do': 'make hexokinase' } "Plug 'euclio/vim-markdown-composer', {'do': ':!cargo build --release --locked'} "Plug 'https://git.sr.ht/%7Ewhynothugo/lsp_lines.nvim' "Plug 'kevinhwang91/nvim-ufo' | Plug 'kevinhwang91/promise-async' "Plug 'mfussenegger/nvim-dap' "Plug 'narutoxy/silicon.lua' "Plug 'nguyenvukhang/nvim-toggler' "Plug 'rgroli/other.nvim' " Currently doesn't support C/C++ "Plug 'smolovk/projector.nvim' Plug 'Pocco81/true-zen.nvim' Plug 'frabjous/knap' Plug 'gorbit99/codewindow.nvim' Plug 'krivahtoo/silicon.nvim', { 'do': './install.sh' } Plug 'nat-418/boole.nvim' Plug 'nullchilly/fsread.nvim' Plug 'nyngwang/murmur.lua' Plug 'samodostal/image.nvim' Plug 'simrat39/symbols-outline.nvim' Plug 'ziontee113/icon-picker.nvim' Plug 'cbochs/grapple.nvim' Plug 'shortcuts/no-neck-pain.nvim' Plug 'debugloop/telescope-undo.nvim' " }}} call plug#end() set termguicolors set shell=/bin/bash if plug_install PlugInstall --sync endif unlet plug_install set number set relativenumber set numberwidth=1 set clipboard+=unnamedplus set noshowmode set laststatus=2 lua << EOF require("virt-column").setup { } require('compiler-explorer').setup() require("symbols-outline").setup() EOF set colorcolumn=80 set background=dark "colorscheme enfocado "lua require('lualine').setup { options = { theme = 'enfocado' } } colorscheme falcon lua require('lualine').setup { options = { theme = 'falcon' } } "highlight MatchParen cterm=underline ctermbg=black ctermfg=NONE "highlight VirtColumn ctermfg=DarkGrey ctermbg=NONE set listchars=tab:▸\ ,trail:¬ set list "hi clear SpellBad "hi SpellBad cterm=underline set tabstop=2 set shiftwidth=2 set softtabstop=2 set expandtab set ignorecase set smartcase set gdefault set textwidth=80 set formatoptions+=tlo/qj set scrolloff=10 set nowrap set sidescroll=5 set inccommand="split" set lazyredraw " space one line, home,end globally increase/decrease nnoremap zc nnoremap zo " Ctags {{{ if isdirectory($HOME . '/.cache/nvim/tags') == 0 :silent !mkdir -p ~/.cache/nvim/tags > /dev/null 2>&1 endif let g:gutentags_cache_dir='~/.cache/nvim/tags' "let g:gutentags_ctags_extra_args=['--fields=+l'] if isdirectory($HOME . '/.cache/nvim/undo') == 0 :silent !mkdir -p ~/.cache/nvim/undo > /dev/null 2>&1 endif set undodir=~/.cache/nvim/undo/ set undofile "let mapleader = "\\" nmap tnoremap inoremap jj inoremap jk "inoremap :w :w nnoremap Q q " Reselect visual block after incrementing/decrementing vnoremap gv vnoremap gv nnoremap 2 :set tabstop=2 softtabstop=2 shiftwidth=2 nnoremap 4 :set tabstop=4 softtabstop=4 shiftwidth=4 nnoremap 8 :set tabstop=8 softtabstop=8 shiftwidth=8 nnoremap :nohlsearch " TextEdit might fail if hidden is not set. set hidden " Some servers have issues with backup files, see #649. set nobackup set nowritebackup " New dynamic window height "set cmdheight=0 set cmdheight=1 " Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable " delays and poor user experience. set updatetime=300 " Don't pass messages to |ins-completion-menu|. set shortmess+=c set shortmess-=F set signcolumn=auto set wildmode=longest,list,full set completeopt=menu,menuone,noselect set mouse= "match Error /\s\+$\|DU\cPA/ setglobal virtualedit=block setglobal shiftround let g:vimwiki_list = [{'path': '~/vimwiki/', \ 'syntax': 'markdown', 'ext': '.md'}] """""""""""""""""" " gui settings " """""""""""""""""" set guifont=IBM\ Plex\ Mono\ Text:h9:e-subpixelantyalias let g:neovide_cursor_vfx_mode = "pixiedust" let g:neovide_refresh_rate = 120 let g:neovide_refresh_rate_idle = 5 let g:neovide_remember_window_size = v:false lua << EOF vim.o.splitbelow = true vim.o.splitright = true require('pretty-fold').setup() require('pretty-fold').ft_setup('cpp', { process_comment_signs = false, --comment_signs = { -- '//', -- C++ Doxygen comments --}, }) require('fold-preview').setup() --require('lsp_lines').setup() require('image').setup { render = { min_padding = 5, show_label = true, use_dither = true, }, events = { update_on_nvim_resize = true, }, } EOF