]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - vimrc
vimrc: Display a warning when editing auto-generated files.
[config/dotfiles.git] / vimrc
diff --git a/vimrc b/vimrc
index 48f52f335e1deec75a45c1219ae38d4df5978cbd..3b77e8efcab1cf5c6223455b394e036c2f272693 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -75,13 +75,15 @@ if exists('+completeopt')
     set completeopt+=menuone
 endif
 
-" Increase history of executed commands (:).
+" Increase history of executed commands (:) and search patterns (/).
 set history=1000
 
 " Increase number of possible undos.
 set undolevels=1000
 
-" Remember marks (including the last cursor position) for more files.
+" Remember marks (including the last cursor position) for more files. ^= is
+" necessary because 'viminfo' is parsed from the beginning and the first match
+" is used.
 if has('viminfo')
     set viminfo^='1000
 endif
@@ -92,7 +94,7 @@ if exists('+cryptmethod')
 endif
 
 " Clear all vimrc-related autocmds. Has to be done here as the vimrc augroup
-" is used multiple times.
+" is used multiple times. Necessary to support reloading the vimrc.
 if has('autocmd')
     augroup vimrc
         autocmd!
@@ -175,7 +177,7 @@ endif
 set virtualedit=block
 
 " Already display matches while typing the search command. This makes spotting
-" errors easy.
+" typos easy and searching faster.
 set incsearch
 
 " Activate syntax folding.
@@ -205,7 +207,7 @@ endif
 
 " Allow buffers with changes to be hidden. Very important for effective
 " editing with multiple buffers. Prevents the "E37: No write since last change
-" (add ! to override)" warning.
+" (add ! to override)" warning when switching buffers.
 set hidden
 
 
@@ -570,7 +572,7 @@ endif
 
 " In case 'hlsearch' is used disable it with <C-L>. Thanks to frogonwheels and
 " vimgor (bot) in #vim on Freenode (2010-03-30 05:58 CEST).
-noremap <silent> <C-L> :nohlsearch<CR><C-L>
+nnoremap <silent> <C-L> :nohlsearch<CR><C-L>
 
 " <C-U> in insert mode deletes a lot, break undo sequence before deleting the
 " line so the change can be undone. Thanks to the vimrc_example.vim file in
@@ -834,6 +836,23 @@ if has('autocmd')
             autocmd InsertLeave * set   ignorecase
         endif
 
+" Display a warning when editing a file which contains "do not edit" (ignoring
+" the case, \c), for example template files which were preprocessed or
+" auto-generated files. Especially useful when the header is not displayed on
+" the first screen, e.g. when the old position is restored. Not for vimrc
+" though.
+        function! s:SearchForDoNotEditHeader()
+            if search('\cdo not edit', 'n') == 0
+                    \ || expand('<afile>:t') =~# '^.\?vimrc$'
+                return
+            endif
+
+            echohl WarningMsg
+            echo 'Do not edit this file! (Maybe a template file.)'
+            echohl None
+        endfunction
+        autocmd BufRead * call <SID>SearchForDoNotEditHeader()
+
 " AFTER/FTPLUGIN AUTO COMMANDS
 
 " Disable spell checking for files which don't need it.