aboutsummaryrefslogtreecommitdiff
path: root/vim/vimrc
blob: 629ac2cf4d00b3318ec210eb142fd790652b85c9 (plain) (blame)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
" Compatibility
set nocompatible

" Plugins
silent! call pathogen#infect()
silent! call pathogen#helptags()

" Filetypes
if has("autocmd")
    filetype on
    filetype indent on
    filetype plugin on
endif

" Backups
set nobackup
if has("writebackup")
    set nowritebackup
endif

" Colors
if has("syntax")
    syntax enable
    set background=dark
    silent! colorscheme sahara
    if has("folding")
        set fillchars=diff:\ ,fold:\ ,vert:\ 
    endif
endif

" Commands
if has("cmdline_info")
    set ruler
    set showcmd
    set showmode
endif

" Encoding
set fileformats=unix,dos,mac
if has("multi_byte")
    set encoding=utf-8
endif

" Formatting
set expandtab
set smarttab
set nojoinspaces
set shiftround
set shiftwidth=4
set softtabstop=4
set tabstop=4

" History
set history=1000

" List
set nolist
nnoremap <leader>l :set list!<CR>

" Matching
silent! runtime macros/matchit.vim

" Messages
set shortmess+=I

" Miscellaneous
set backspace=indent,eol,start
set modelines=0
set report=0

" Numbers
set nonumber
nnoremap <leader>n :set number!<CR>

" Paste
set nopaste
nnoremap <leader>p :set paste!<CR>

" Reading
set autoread

" Scrolling
set scrolloff=0
set sidescrolloff=16

" Search
if has("extra_search")
    set hlsearch
    set incsearch
    nnoremap <leader>h :set hlsearch!<CR>
    nnoremap <leader>i :set incsearch!<CR>
    nnoremap <C-l> :nohlsearch<CR><C-l>
    if has("autocmd")
        augroup vimrc
            autocmd!
            silent! autocmd InsertEnter * setlocal nohlsearch
            silent! autocmd InsertLeave * setlocal hlsearch
        augroup END
    endif
endif

" Spelling
if has("spell")
    set spelllang=en_nz
    nnoremap <leader>s :set spell!<CR>
endif

" Swaps
set noswapfile

" Terminal
set noesckeys
set ttyfast
set visualbell t_vb=

" Typos
if has("user_commands")
    command! -bang -complete=file -nargs=? E e<bang> <args>
    command! -bang -complete=file -nargs=? W w<bang> <args>
    command! -bang -complete=file -nargs=? WQ wq<bang> <args>
    command! -bang -complete=file -nargs=? Wq wq<bang> <args>
    command! -bang Q q<bang>
    command! -bang WA wa<bang>
    command! -bang WQ wq<bang>
    command! -bang Wa wa<bang>
    command! -bang Wq wq<bang>
endif

" Unmaps
noremap <F1> <nop>
nnoremap K <nop>

" Wildmenu
if has("wildmenu")
    set wildmenu
    set wildmode=longest,list
    if has ("wildignore")
        set wildignore+=*.a,*.o
        set wildignore+=*.bmp,*.gif,*.ico,*.jpg,*.png
        set wildignore+=.DS_Store,.git,.hg,.svn
        set wildignore+=*~,*.swp,*.tmp
    endif
endif

" Windows
if has("windows")
    set laststatus=1
    set splitbelow
    if has("vertsplit")
        set splitright
    endif
    if exists("&showtabline")
        set showtabline=1
    endif
endif

" Wrapping
set nowrap
nnoremap j gj
nnoremap k gk
nnoremap <leader>w :set wrap!<CR>
if has("linebreak")
    set linebreak
    set showbreak=...
endif

" Yanking
nnoremap Y y$

" Visual
if has("virtualedit")
    set virtualedit+=block
endif