set nocompatible set backspace=indent,eol,start syntax enable set mouse=a set mousemodel=extend set title let g:airline_theme='term_light' filetype plugin on filetype indent on " Enable spell check for commit messages autocmd FileType gitcommit setlocal spell spelllang=en_gb " Use spaces instead of tabs set expandtab " Be smart when using tabs ;) set smarttab " 1 tab == 4 spaces set shiftwidth=4 set tabstop=4 set wrap "Wrap lines set nobackup set nowb set noswapfile " Set to auto read when a file is changed from the outside set autoread " Leader let mapleader = "," let g:mapleader = "," " Fast saving nmap <leader>w :w!<cr> " Save and start shell nmap <leader># :w!<cr>:te<cr>i "tnoremap <ESC> <C-\><C-n>:buffer #<CR> tnoremap <C-c> <C-\><C-n>:buffer #<CR> "autocmd TermClose * bd! " quit when a terminal closes instead of showing exit code and waiting " Highlight search results set hlsearch " Makes search act like search in modern browsers set incsearch " Smart case when searching set ignorecase set smartcase " Show results of pattern matching/replacing while typing set inccommand=split " When you press <leader>r you can search and replace the selected text vnoremap <silent> <leader>r :call VisualSelection('replace')<CR> " Disable highlight when <leader><cr> is pressed map <silent> <leader><cr> :noh<cr> " For regular expressions turn magic on set magic " Visual mode pressing * or # searches for the current selection " Super useful! From an idea by Michael Naumann vnoremap <silent> * :call VisualSelection('f')<CR> vnoremap <silent> # :call VisualSelection('b')<CR> " Show matching brackets when text indicator is over them set showmatch " How many tenths of a second to blink when matching brackets set mat=2 " Spell checking map <leader>ss :setlocal spell! spelllang=de_20<cr> map <leader>se :setlocal spell! spelllang=en-curly_gb<cr> map <leader>su :setlocal spell! spelllang=en-curly_us<cr> " Treat long lines as break lines (useful when moving around in them) map j gj map k gk " Smart way to move between windows map <C-j> <C-W>j map <C-k> <C-W>k map <C-h> <C-W>h map <C-l> <C-W>l " More natural behaviour when splitting set splitbelow set splitright " Useful mappings for managing tabs map <leader>tn :tabnew<cr> map <leader>to :tabonly<cr> map <leader>tc :tabclose<cr> map <leader>tm :tabmove " Jump to particular tab directly noremap <leader>1 1gt noremap <leader>2 2gt noremap <leader>3 3gt noremap <leader>4 4gt noremap <leader>5 5gt noremap <leader>6 6gt noremap <leader>7 7gt noremap <leader>8 8gt noremap <leader>9 9gt noremap <leader>0 :tablast<cr> " Switch CWD to the directory of the open buffer map <leader>cd :cd %:p:h<cr>:pwd<cr> " Remember info about open buffers on close set viminfo^=% " Toggle paste mode on and off map <leader>pp :setlocal paste!<cr> " Save and make nnoremap <leader>m :wa <BAR> :Make<CR> hi ColorColumn ctermbg=47 let g:vimtex_compiler_enabled = 0 let g:local_vimrc = {'names': ['.local.vimrc'], 'hash_fun': 'LVRHashOfFile'}