Skip to content

Instantly share code, notes, and snippets.

@simonista
Last active April 9, 2026 18:02
Show Gist options
  • Select an option

  • Save simonista/8703722 to your computer and use it in GitHub Desktop.

Select an option

Save simonista/8703722 to your computer and use it in GitHub Desktop.
A basic .vimrc file that will serve as a good template on which to build.
" Don't try to be vi compatible
set nocompatible
" Helps force plugins to load correctly when it is turned back on below
filetype off
" TODO: Load plugins here (pathogen or vundle)
" Turn on syntax highlighting
syntax on
" For plugins to load correctly
filetype plugin indent on
" TODO: Pick a leader key
" let mapleader = ","
" Security
set modelines=0
" Show line numbers
set number
" Show file stats
set ruler
" Blink cursor on error instead of beeping (grr)
set visualbell
" Encoding
set encoding=utf-8
" Whitespace
set wrap
set textwidth=79
set formatoptions=tcqrn1
set tabstop=2
set shiftwidth=2
set softtabstop=2
set expandtab
set noshiftround
" Cursor motion
set scrolloff=3
set backspace=indent,eol,start
set matchpairs+=<:> " use % to jump between pairs
runtime! macros/matchit.vim
" Move up/down editor lines
nnoremap j gj
nnoremap k gk
" Allow hidden buffers
set hidden
" Rendering
set ttyfast
" Status bar
set laststatus=2
" Last line
set showmode
set showcmd
" Searching
nnoremap / /\v
vnoremap / /\v
set hlsearch
set incsearch
set ignorecase
set smartcase
set showmatch
map <leader><space> :let @/=''<cr> " clear search
" Remap help key.
inoremap <F1> <ESC>:set invfullscreen<CR>a
nnoremap <F1> :set invfullscreen<CR>
vnoremap <F1> :set invfullscreen<CR>
" Textmate holdouts
" Formatting
map <leader>q gqip
" Visualize tabs and newlines
set listchars=tab:โ–ธ\ ,eol:ยฌ
" Uncomment this to enable by default:
" set list " To enable by default
" Or use your leader key + l to toggle on/off
map <leader>l :set list!<CR> " Toggle tabs and EOL
" Color scheme (terminal)
set t_Co=256
set background=dark
let g:solarized_termcolors=256
let g:solarized_termtrans=1
" put https://raw.github.com/altercation/vim-colors-solarized/master/colors/solarized.vim
" in ~/.vim/colors/ and uncomment:
" colorscheme solarized
@0x5448
Copy link
Copy Markdown

0x5448 commented Oct 5, 2018

There is this white flash on the screen if the cursor can't go further, what part of the code does it, I don't want that.

@raudraroop Line 28: set visualbell does this

@Olimejj
Copy link
Copy Markdown

Olimejj commented Mar 21, 2019

Thanks, I finally figured out the vimrc file :) This template is what finally did it for me.

@Blithe-Chiang
Copy link
Copy Markdown

Thanks

Copy link
Copy Markdown

ghost commented Jun 8, 2019

Thank you! It looks good and easy to amend and update :)

@xxzelatron
Copy link
Copy Markdown

if I use :set paste while pasting some lines, it is also modifying existing lines in file.how to avoid this?
If I paste without paste mode i.e. in insert mode then it is adding indentation for every line

@almokhtarbr
Copy link
Copy Markdown

thanks

@mfrlinux
Copy link
Copy Markdown

Thank you! Very good!

@1800newfunk
Copy link
Copy Markdown

Thanks.Again.

@banditelol
Copy link
Copy Markdown

banditelol commented Nov 5, 2019

Thanks You :)
btw can anyone tell me what the "rn1" part of formatoptions does?

EDIT
nvm, just found out the options exist in fo-table

@MoatazAbdAlmageed
Copy link
Copy Markdown

Thanks, I will try

@jerry-peng
Copy link
Copy Markdown

Thnx m8

@haphamdev
Copy link
Copy Markdown

Thank you a lot for this nice file.

@LowProKill
Copy link
Copy Markdown

Looks good mate. Thanks

@davivcgarcia
Copy link
Copy Markdown

Perfect! ;-)

Copy link
Copy Markdown

ghost commented Apr 26, 2020

super nice, thanks.
On Firefox C-a selects all text (useful to copy on the raw file for the color scheme)

@hugowan
Copy link
Copy Markdown

hugowan commented May 13, 2020

nice work

@liam102
Copy link
Copy Markdown

liam102 commented May 29, 2020

Could someone please explain why does the keymap adds \v before search terms?

@oantolin
Copy link
Copy Markdown

Could someone please explain why does the keymap adds \v before search terms?

It enables "very magic" regex syntax, which roughly means that characters that have a special meaning in regexes need not be escaped to have that special meaning. For example, normally to group a subregex you need to escape the parenthesis with a backslash: \(this is grouped\). With very magic syntax unescaped parenthesis have that function. Similarly alternation is usually \|, and with very magic syntax it is just |. But don't take my word for it, ask Vim: :help \v.

@damog
Copy link
Copy Markdown

damog commented Nov 9, 2020

Thanks a lot ๐Ÿ‘

@cesarGTZtapia
Copy link
Copy Markdown

Thanks!

Copy link
Copy Markdown

ghost commented Feb 5, 2021

thanks.. really helpful ๐Ÿ‘

@sriashi
Copy link
Copy Markdown

sriashi commented Mar 7, 2021

Thank you!

@SubhamShaww
Copy link
Copy Markdown

This is great and super helpful. thanks

@HsuChiChen
Copy link
Copy Markdown

thx

@o-az
Copy link
Copy Markdown

o-az commented Sep 17, 2021

Thank you sir

@AlexWilkinsonnn
Copy link
Copy Markdown

AlexWilkinsonnn commented Apr 6, 2022

Thanks! I had to change map <leader><space> :let @/=''<cr> " clear search -> map <leader><space> :let @/=''<cr> to prevent the visual bell going off. Also had to do the same to L91.

@jgalva
Copy link
Copy Markdown

jgalva commented Nov 8, 2022

Good stuff, thank you! :-)

@julianlg92
Copy link
Copy Markdown

Thank you!!!!

@dazza26
Copy link
Copy Markdown

dazza26 commented Oct 20, 2023

I installed and uncommented colorscheme solarized but imo it looks much better without that coloscheme enabled

@RandellBrianKnight
Copy link
Copy Markdown

I used most, but not all, of these settings for my vimrc file. Thank you so much for putting this up to help others. ๐Ÿ˜Ž

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment