" for long lines set wrap " tab business set tabstop=8 set softtabstop=4 set shiftwidth=4 set expandtab set autoindent " syntax highlighting syntax on set nohlsearch " try to detect filetypes filetype on " enable loading indent file for filetype filetype plugin indent on " line numbers set number " cursor line set cursorline " enable mouse set mouse=a " set term title set title set titleold= " plugin dependent conf starts call plug#begin('~/.vim/plugged') " git Plug 'tpope/vim-fugitive', { 'tag': 'v3.6' } Plug 'airblade/vim-gitgutter' " tmux Plug 'tmux-plugins/vim-tmux-focus-events' Plug 'roxma/vim-tmux-clipboard' Plug 'wincent/terminus' " life improvements Plug 'folke/tokyonight.nvim', { 'branch': 'main' } Plug 'scrooloose/nerdtree' Plug 'Chiel92/vim-autoformat' Plug 'jsfaint/gen_tags.vim' Plug 'godlygeek/tabular' Plug 'vimwiki/vimwiki' " language support Plug 'plasticboy/vim-markdown' Plug 'samsaga2/vim-z80' Plug 'tomtom/tcomment_vim' if has('nvim-0.5') " status line Plug 'nvim-lualine/lualine.nvim' " general lua Plug 'nvim-lua/popup.nvim' Plug 'nvim-lua/plenary.nvim' " scala Plug 'scalameta/nvim-metals' if has('nvim-0.5.1') Plug 'nvim-telescope/telescope.nvim' end " auto complete Plug 'hrsh7th/nvim-cmp' Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-vsnip' Plug 'hrsh7th/vim-vsnip' " life improvements Plug 'ojroques/nvim-bufdel' " learning Plug 'folke/which-key.nvim' end if has('nvim-0.6.1') " lsp Plug 'neovim/nvim-lspconfig' Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} end call plug#end() if has('nvim-0.5') :lua << EOF -- BufKil require('bufdel').setup { next = 'cycle', quit = false, } -- which-key require("which-key").setup { } EOF end set laststatus=2 " vim-autoformat (C-F5) " noremap :Autoformat au BufWrite *.py,*.c,*.h,*.cpp :Autoformat " enable omnicompletion set omnifunc=syntaxcomplete#Complete " looks nice set termguicolors set background=dark let g:tokyonight_italic_keywords = 0 colorscheme tokyonight " toggle spell check map s :set spell! spelllang=en_gb " show tabs and EOL whitespace :set list listchars=tab:»·,trail:· " for tmux, screen, etc set t_ut= " default is too slow set updatetime=500 " re-read the file if changed (if possible) set autoread au BufEnter,CursorHold,CursorHoldI * silent! checktime " NERDTree " map n :NERDTreeToggle let NERDTreeQuitOnOpen=1 " Telescope " nnoremap f Telescope find_files nnoremap B Telescope buffers "" gen_tags.vim (requires GNU global, aka gtags) " disable ctags completely, use it through gtags plugin let g:loaded_gentags#ctags = 1 " vimwiki " let g:vimwiki_list = [{'path': '~/textfiles/', \ 'syntax': 'markdown', 'ext': '.md'}] let g:vimwiki_global_ext = 0 " vim-markdown " let g:vim_markdown_folding_disabled = 1 let g:vim_markdown_frontmatter = 1 let g:vim_markdown_conceal_code_blocks = 0 autocmd FileType markdown setlocal conceallevel=2 " git gutter to play nice with others " let g:gitgutter_sign_allow_clobber = 0 " Required for operations modifying multiple buffers like rename. set hidden " better for some messages set cmdheight=2 set shortmess+=c " for lsc erros set shortmess-=F " disable preview when doing auto-complete set completeopt-=preview " Set completeopt to have a better completion experience set completeopt=menuone,noinsert,noselect