set nocompatible " stops wack stuff set wildmenu " better command line completion set showmode " show editing mode set showcmd " show partial commands set encoding=UTF-8 set title " spellcheck set spelllang=en,fr,de,cjk set spellsuggest=best,9 nnoremap :set spell! inoremap :set spell! " use case-insensitive search except when using capitals set ignorecase set smartcase set backspace=indent,eol,start " Allow backspacing over autoindent, line breaks and start of insert action set nostartofline " stop certain things from going to first character in line set ruler " display cursor position set confirm " ask to save stuff before failed command set visualbell " visual indicator instead of beep set t_vb= " reset terminal code for visual bell set cmdheight=2 " set command window height to 2 lines set number " display line numbers set notimeout ttimeout ttimeoutlen=200 " timeout on keycodes but not mappings " Indentation Stuff set shiftwidth=4 set tabstop=4 set autoindent " keep indent of file or smth " Use and to navigate through pop-up menu inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" nnoremap f CHADopen set lazyredraw " auto-indenting if has('filetype') filetype indent plugin on endif " syntax highlighting if has('syntax') syntax on endif " latex config let g:tex_flavor = 'latex' let g:tex_conceal = '' "let g:vimtex_fold_manual = 1 "let g:vimtex_latexmk_continuous = 1 "let g:vimtex_compiler_progname = 'nvr' " Plugins will be downloaded under the specified directory. call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged') " Declare the list of plugins. " Theme Plug 'catppuccin/nvim', {'as': 'catppuccin'} " Statusline plugin Plug 'feline-nvim/feline.nvim', { 'branch': 'develop' } " Misc Plug 'glepnir/dashboard-nvim' " startup dashboard Plug 'kyazdani42/nvim-web-devicons' " icons! Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} " better syntax highlighting Plug 'lewis6991/spellsitter.nvim' " treesitter for spelling Plug 'alaviss/nim.nvim' " nim language support Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " searching Plug 'junegunn/fzf.vim' Plug 'tpope/vim-commentary' " commenting tool Plug 'rrethy/vim-hexokinase', { 'do': 'make hexokinase' } " show colours "Plug 'folke/trouble.nvim' " git signs Plug 'nvim-lua/plenary.nvim' Plug 'lewis6991/gitsigns.nvim' " LaTeX "Plug 'lervag/vimtex' Plug 'Konfekt/FastFold' " speeds or folding or smth Plug 'matze/vim-tex-fold' " rust-lsp configuration Plug 'neovim/nvim-lspconfig' Plug 'hrsh7th/nvim-cmp' " completion framework Plug 'hrsh7th/cmp-nvim-lsp' " LSP completion source for nvim-cmp Plug 'hrsh7th/cmp-vsnip' " snippet completion source for nvim-cmp Plug 'hrsh7th/cmp-path' " other usefull completion sources Plug 'hrsh7th/cmp-buffer' Plug 'simrat39/rust-tools.nvim' Plug 'hrsh7th/vim-vsnip' " snippet engine " Plug 'nvim-lua/lsp_extensions.nvim' " File tree Plug 'ms-jpq/chadtree', {'branch': 'chad', 'do': 'python3 -m chadtree deps'} " Optional dependencies Plug 'nvim-lua/popup.nvim' " Plug 'nvim-telescope/telescope.nvim' call plug#end() " Set colour scheme autocmd vimenter * ++nested colorscheme catppuccin colorscheme catppuccin let g:Hexokinase_highlighters = ['sign_column'] " Setup plugins lua require('feline').setup({components = require('catppuccin.core.integrations.feline'),}) lua require('gitsigns').setup() lua require('spellsitter').setup() " Default value is clap let g:dashboard_default_executive ='fzf' let g:dashboard_custom_header=[ \'', \'⡆⣐⢕⢕⢕⢕⢕⢕⢕⢕⠅⢗⢕⢕⢕⢕⢕⢕⢕⠕⠕⢕⢕⢕⢕⢕⢕⢕⢕⢕', \'⢐⢕⢕⢕⢕⢕⣕⢕⢕⠕⠁⢕⢕⢕⢕⢕⢕⢕⢕⠅⡄⢕⢕⢕⢕⢕⢕⢕⢕⢕', \'⢕⢕⢕⢕⢕⠅⢗⢕⠕⣠⠄⣗⢕⢕⠕⢕⢕⢕⠕⢠⣿⠐⢕⢕⢕⠑⢕⢕⠵⢕', \'⢕⢕⢕⢕⠁⢜⠕⢁⣴⣿⡇⢓⢕⢵⢐⢕⢕⠕⢁⣾⢿⣧⠑⢕⢕⠄⢑⢕⠅⢕', \'⢕⢕⠵⢁⠔⢁⣤⣤⣶⣶⣶⡐⣕⢽⠐⢕⠕⣡⣾⣶⣶⣶⣤⡁⢓⢕⠄⢑⢅⢑', \'⠍⣧⠄⣶⣾⣿⣿⣿⣿⣿⣿⣷⣔⢕⢄⢡⣾⣿⣿⣿⣿⣿⣿⣿⣦⡑⢕⢤⠱⢐', \'⢠⢕⠅⣾⣿⠋⢿⣿⣿⣿⠉⣿⣿⣷⣦⣶⣽⣿⣿⠈⣿⣿⣿⣿⠏⢹⣷⣷⡅⢐', \'⣔⢕⢥⢻⣿⡀⠈⠛⠛⠁⢠⣿⣿⣿⣿⣿⣿⣿⣿⡀⠈⠛⠛⠁⠄⣼⣿⣿⡇⢔', \'⢕⢕⢽⢸⢟⢟⢖⢖⢤⣶⡟⢻⣿⡿⠻⣿⣿⡟⢀⣿⣦⢤⢤⢔⢞⢿⢿⣿⠁⢕', \'⢕⢕⠅⣐⢕⢕⢕⢕⢕⣿⣿⡄⠛⢀⣦⠈⠛⢁⣼⣿⢗⢕⢕⢕⢕⢕⢕⡏⣘⢕', \'⢕⢕⠅⢓⣕⣕⣕⣕⣵⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣷⣕⢕⢕⢕⢕⡵⢀⢕⢕', \'⢑⢕⠃⡈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢃⢕⢕⢕', \'⣆⢕⠄⢱⣄⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⢁⢕⢕⠕⢁', \'⣿⣦⡀⣿⣿⣷⣶⣬⣍⣛⣛⣛⡛⠿⠿⠿⠛⠛⢛⣛⣉⣭⣤⣂⢜⠕⢑⣡⣴⣿', \'', \] " trouble config " seems to be broken rn? " lua require("trouble").setup() lua <'] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.select_next_item(), -- Add tab support [''] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.select_next_item(), [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), [''] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true, }) }, -- Installed sources sources = { { name = 'nvim_lsp' }, { name = 'vsnip' }, { name = 'path' }, { name = 'buffer' }, }, }) EOF " Code navigation shortcuts nnoremap lua vim.lsp.buf.definition() nnoremap K lua vim.lsp.buf.hover() nnoremap gD lua vim.lsp.buf.implementation() nnoremap lua vim.lsp.buf.signature_help() nnoremap 1gD lua vim.lsp.buf.type_definition() nnoremap gr lua vim.lsp.buf.references() nnoremap g0 lua vim.lsp.buf.document_symbol() nnoremap gW lua vim.lsp.buf.workspace_symbol() nnoremap gd lua vim.lsp.buf.definition()