about summary refs log tree commit diff stats
path: root/linux/conf/skel/.vimrc
blob: fb4445f4d9598f73af34af420a41af095fab0797 (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
" Use Vim settings, rather than Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

"" allow backspacing over everything in insert mode
"set backspace=indent,eol,start
"
if has("vms")
  set nobackup		" do not keep a backup file, use versions instead
else
  set backup		" keep a backup file (restore to previous version)
  set undofile		" keep an undo file (undo changes after closing)
endif

set history=50		" keep 50 lines of command line history
set ruler		" show the cursor position all the time
set showcmd		" display incomplete commands
set incsearch		" do incremental searching

"" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
"" let &guioptions = substitute(&guioptions, "t", "", "g")
"
"" Don't use Ex mode, use Q for formatting
"map Q gq
"
"" CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
"" so that you can undo CTRL-U after inserting a line break.
"inoremap <C-U> <C-G>u<C-U>
"
"" In many terminal emulators the mouse works just fine, thus enable it.
"if has('mouse')
"  set mouse=a
"endif
"
"" Switch syntax highlighting on, when the terminal has colors
"" Also switch on highlighting the last used search pattern.

" colorscheme desert
set t_Co=256
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
  set background=dark
  colorscheme wombat256mod
  " colorscheme desert
  :hi SpellBad ctermfg=Black guifg=Black
endif


"" Only do this part when compiled with support for autocommands.
if has("autocmd")
"
"  " Enable file type detection.
"  " Use the default filetype settings, so that mail gets 'tw' set to 72,
"  " 'cindent' is on in C files, etc.
"  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on
"
"  " Put these in an autocmd group, so that we can delete them easily.
  augroup vimrcEx
  au!
"
"  " For all text files set 'textwidth' to 78 characters.
"  autocmd FileType text setlocal textwidth=78
"
"  " When editing a file, always jump to the last known cursor position.
"  " Don't do it when the position is invalid or when inside an event handler
"  " (happens when dropping a file on gvim).
  autocmd BufReadPost *
    \ if line("'\"") >= 1 && line("'\"") <= line("$") |
    \   exe "normal! g`\"" |
    \ endif

  augroup END

else
  set autoindent		" always set autoindenting on

endif " has("autocmd")

"" Convenient command to see the difference between the current buffer and the
"" file it was loaded from, thus the changes you made.
"" Only define it when not defined already.
"if !exists(":DiffOrig")
"  command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
"		  \ | wincmd p | diffthis
"endif
"
"if has('langmap') && exists('+langnoremap')
"  " Prevent that the langmap option applies to characters that result from a
"  " mapping.  If unset (default), this may break plugins (but it's backward
"  " compatible).
"  set langnoremap
"endif

" Search down into subfolders
" Provides tab-completion for all file-related tasks
set path+=**

" Display all matching files when we tab complete
set wildmenu

" Better file browsing
let g:netrw_banner=0        " disable annoying banner
let g:netrw_browse_split=4  " open in prior window
let g:netrw_altv=1          " open splits to the right
let g:netrw_liststyle=3     " tree view
let g:netrw_list_hide=netrw_gitignore#Hide()
let g:netrw_list_hide.=',\(^\|\s\s\)\zs\.\S\+'


map <F2> :tabnew
map <F3> :tabprevious<CR>
map <F4> :tabnext<CR>
"
"" Show Line Numbers
set relativenumber
set complete=.,b,u,]
set wildmode=longest,list:longest
set completeopt=menu,preview
"
"" Directories
set backupdir=~/.vim/backup
set undodir=~/.vim/undodir
set viewdir=~/.vim/views
set directory=~/.vim/swap
"
"" Spell Check
set spell spelllang=en_us
"
"" Strips whitespace
nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR>
"
"" Whitespace fixes
highlight ExtraWhitespace ctermbg=red guibg=red

match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()
"
"
"" For tab characters that appear 4-spaces-wide
"set tabstop=4
"" If you're using actual tab character in your source code you probably also 
"" want these settings (these are actually the defaults,set them defensively):
"set softtabstop=0 noexpandtab
"" Finally, if you want an indent to correspond to a single tab, you should also use:
""set shiftwidth=4
"" For indents that consist of 4 space characters but are entered with the tab key:
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
"set list
"" set past gives problems with tabs
"" set paste
""