blob: a383a2b046834740ea0b74969776a0f939ce811b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
---
title: "Personal sane Vim defaults"
permalink: /apersonal-sane-vim-defaults.html
date: 2023-11-07T01:04:28+02:00
layout: post
type: note
draft: false
---
I have found many "sane" default configs on the net and this is my favorite
personal list. This is how my `.vimrc` file looks like.
```vimrc
" General sane defaults.
syntax enable
colorscheme sorbet
set nocompatible
set relativenumber
set nohlsearch
set smartcase
set ignorecase
set incsearch
set autoindent
set nowrap
set nobackup
set noswapfile
set autoread
set wildmenu
set encoding=utf8
set backspace=2
set tabstop=2
set shiftwidth=2
set expandtab
set autoread
set scrolloff=4
set spelllang=en_us
nnoremap q: <nop>
" Status Line enhancements.
" https://tomdaly.dev/projects/vim-statusline-generator/
set laststatus=2
set statusline=%f%m%=%y\ %{strlen(&fenc)?&fenc:'none'}\ %l:%c\ %L\ %P
hi StatusLine cterm=NONE ctermbg=black ctermfg=brown
hi StatusLineNC cterm=NONE ctermbg=black ctermfg=darkgray
" Commenting blocks of code.
augroup commenting_blocks_of_code
autocmd!
autocmd FileType c,cpp,go,scala let b:comment_leader = '// '
autocmd FileType sh,ruby,python let b:comment_leader = '# '
autocmd FileType conf,fstab let b:comment_leader = '# '
autocmd FileType lua let b:comment_leader = '-- '
autocmd FileType vim let b:comment_leader = '" '
augroup END
noremap <silent> ,cc :<C-B>silent <C-E>s/^/<C-R>=escape(b:comment_leader,'\/')<CR>/<CR>:nohlsearch<CR>
noremap <silent> ,cu :<C-B>silent <C-E>s/^\V<C-R>=escape(b:comment_leader,'\/')<CR>//e<CR>:nohlsearch<CR>
```
I keep it pretty vanilla so this is about everything I have in the file.
|