Files
dotfiles/.vimrc
2023-04-06 19:19:36 +02:00

129 lines
3.3 KiB
VimL
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

" Save swap and undo and backup files in separate directory
set directory=$HOME/.vim/swapfiles//
set backupdir=$HOME/.vim/backups//
call plug#begin()
" Language Server Protocol
Plug 'mattn/vim-lsp-settings', { 'commit': '33ad6db' }
Plug 'prabirshrestha/asyncomplete-lsp.vim', { 'commit': 'cc5247b' }
Plug 'prabirshrestha/asyncomplete.vim', { 'commit': '9c76518' }
Plug 'prabirshrestha/vim-lsp', { 'commit': 'e82e73a' }
" Bufferline
Plug 'bling/vim-bufferline', { 'commit': '651fd01' }
" AI autocompletion (codeium)
Plug 'Exafunction/codeium.vim', { 'commit': '41b718e' }
call plug#end()
" Line numbers
set number
" Automatically reload file changes from disk
set autoread
" Disable Ex mode
noremap Q <nop>
" Tab complete
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
inoremap <expr> <cr> pumvisible() ? asyncomplete#close_popup() : "\<cr>"
" Preview Window
" let g:asyncomplete_auto_completeopt = 0 " disable auto popup
set completeopt=menuone,noinsert,noselect,preview
autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif
" File explorer side pane
let g:netrw_winsize = 12
let g:netrw_banner = 0
let g:netrw_liststyle = 3
autocmd VimEnter * Lexplore .
" Terminal bottom pane
" set termwinsize=15x0
" autocmd VimEnter * botright terminal
" ^^ Use ctrl+z from normal mode and go back with 'fg' instead
" Autoload file changes (undo with 'u')
set autoread
" Backspace through anything in insert mode
set backspace=indent,eol,start
" Make buffers behave more like tabs
set hidden
noremap gl :bnext!<CR>
noremap gh :bprevious!<CR>
noremap gd :bdelete!<CR>
" Termdebug
let g:termdebug_popup = 0
let g:termdebug_wide = 163
" The souls of a thousand nerds torment me as I make the mouse more useful
set mouse=a
" Disable compatibility with vi which can cause unexpected issues.
set nocompatible
" Enable type file detection. Vim will be able to try to detect the type of file in use.
filetype on
" Enable plugins and load plugin for the detected file type.
filetype plugin on
" Load an indent file for the detected file type.
filetype indent on
" Turn syntax highlighting on.
syntax on
" Add numbers to each line on the left-hand side.
set number
" Case insensitive search
set ignorecase
" Override the ignorecase option if searching for capital letters.
" This will allow you to search specifically for capital letters.
set smartcase
" Set the commands to save in history default number is 20.
set history=1000
" Enable auto completion menu after pressing TAB.
set wildmenu
" Adjust tab size
set tabstop=4
set shiftwidth=4
" F5 to compile and run simple C programs
autocmd filetype c nnoremap <F5> :w <bar> exec '!gcc '.shellescape('%').' -lm -o '.shellescape('%:r').' && ./'.shellescape('%:r')<CR>
" Color scheme
if &term =~ '256color'
" disable Background Color Erase (BCE) so that color schemes
" render properly when inside 256-color tmux and GNU screen.
" see also https://sunaku.github.io/vim-256color-bce.html
set t_ut=
endif
set t_8f=[38;2;%lu;%lu;%lum " set foreground color
set t_8b=[48;2;%lu;%lu;%lum " set background color
set background=light
set termguicolors
set t_Co=256
colorscheme melange
" Save swap and undo and backup files in separate directory
set directory=$HOME/.vim/swapfiles//
set backupdir=$HOME/.vim/backups//