view vim/vimrc @ 55:a7932e0fa961

Enable lawrencium debugging.
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 08 Dec 2011 12:29:57 -0800
parents 966df1f863be
children 6df571869f4a
line wrap: on
line source

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
" Ludovic Chabant's ~/.vimrc
"
" http://ludovic.chabant.com
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" Set a variable that says we already sourced this file, for those few
" settings we don't want to re-apply.
if exists('g:sourced_vimrc')
    let g:resourcing_vimrc = 1
endif
let g:sourced_vimrc = 1

" Set some important system-dependent variables.
if has("win32") || has("win64") || has("dos32")
    let $HOMEVIM = "vimfiles"
    let $PLATFORM = "windows"
else
    let $HOMEVIM = ".vim"
    let $PLATFORM = "unix"
endif

" Disable some plugins.
let g:pathogen_disabled = []
call add(g:pathogen_disabled, 'vimroom')

" Load pathogen.
call pathogen#infect()

" Hide the toolbar in MacVim/gVIM, and set a nice window size.
if has("gui_running") && !exists('g:resourcing_vimrc')
    set guioptions=-t
    set lines=50
    set columns=135
endif

" Disable modelines.
set modelines=0

" Don't unload abandoned buffers.
set hidden

" Show line numbers.
set number

" Show what mode we're in, and what command we're typing.
set showmode
set showcmd

" Keep the cursor off the top/bottom edges.
set scrolloff=3

" Smart auto-indenting.
set autoindent
set smartindent

" Use confirmation dialog.
set confirm

" Remember lots of commands.
set history=1000

" Use incremental search, with highlighting,
" case-insensitive unless we actually type some
" mixed-case stuff.
set incsearch
set hlsearch
set ignorecase
set smartcase

" Always show window status lines.
set laststatus=2

" Enable using the mouse like some everyday guy.
set mouse=a

" Show interesting stuff at the bottom of the window.
set showcmd
set ruler

" Don't pollute the hard-drive with *~ files. Only
" create them in hidden backup/temp directories while
" we edit the file, and then get rid of it.
set nobackup
set writebackup
set backupdir=~/$HOMEVIM/backup
set directory=~/$HOMEVIM/temp

" Better command-line completion, but don't show some
" stuff we don't care about.
set wildmenu
set wildignore+=.DS_Store,Thumbs.db

" Always display the tab-page line.
set showtabline=2

" Show matching braces.
set showmatch

" Set the file-formats.
set ffs=unix,mac,dos

" Tabs and indenting are 4 characters, and tabs behave like
" spaces during editing. They're smart, too, and when you
" press <TAB> it actually inserts a soft-tab so everything's
" indented the same.
set tabstop=4
set shiftwidth=4
set softtabstop=4
set smarttab
set expandtab

" Default encoding
set encoding=utf-8

" Clipboard buffer.
set clipboard=unnamed

" Smoot terminal experience.
set ttyfast

" Allow backspacing over anything.
set backspace=indent,eol,start

" Going left and right let you go to other lines.
set whichwrap+=<,>,h,l

" And now, for some system-dependent settings:
" - font to use
if $PLATFORM == "windows"
    set guifont=Consolas:h12
else
    set guifont=Monaco:h12
endif


" Syntax highlighting.
syntax on

" Change the current directory to the home directory.
if !exists('g:resourcing_vimrc')
    cd ~/
endif

" Default color scheme.
if has('gui_running')
    set background=light
else
    set background=dark
endif
colorscheme solarized

" Enable file type detection.
filetype indent plugin on

" Navigate MiniBufExplorer with CTRL+Tab/CTRL+Shift+Tab.
let g:miniBufExplMapCTabSwitchBufs = 1

" Custom mappings.
let mapleader=","

" Edit & source the VIMRC.
nnoremap <leader>ev :vsplit $MYVIMRC<cr>
nnoremap <leader>sv :source $MYVIMRC<cr>

" MiniBufExplorer mappings.
nnoremap <F2> :TMiniBufExplorer<cr>

" Open NERDtree.
nnoremap <F3> :NERDTreeToggle<cr>

" Switch between FR and US keyboard layouts.
nnoremap <leader>fr :setlocal keymap=french<cr>
nnoremap <leader>us :setlocal keymap=<cr>

" Toggle spell check according to current keyboard layout.
nnoremap <leader>sp :call <SID>ToggleSpellCheck()<cr>

" Simple way to close a buffer without closing the window.
nnoremap <leader>bd :bprevious<cr>:bdelete #<cr>

" Abbreviations
iabbrev @@      ludovic@chabant.com
iabbrev ccopy   Copyright &copy;2011 Ludovic Chabant, all rights reserved.
iabbrev ssig    --<cr>l u d o .<cr>. 8 0 17 80

" Functions {{{

function! s:ToggleSpellCheck() abort
    if &spell ==? 'nospell'
        if &keymap ==? 'french'
            setlocal spell spelllang=fr_fr
        else
            setlocal spell spelllang=en_us,en_ca
        endif
    else
        setlocal spell nospell
    endif
endfunction

" }}}

" Temporary stuff {{{

" Enable debugging Lawrencium
let g:lawrencium_debug = 1
let g:lawrencium_trace = 1

" }}}

"let mapleader=","                                               " Use , as Leader
"let gmapleader=","
"map Y y$                                                        " Yank to the end of the line w/ Y
"map <leader>nt :tabnew<CR>                                      " New tab w/ ,nt
"map <leader>f :FufFile<CR>                                      " Find files with ,f
"nmap <leader>w :w!<cr>
"map <F3> :r !pbpaste<CR>
"map <F4> :setlocal spell spelllang=en_gb<CR>                    " Turn on spellcheck with <F4>
"map <F5> :set nospell<CR>
"set pastetoggle=<F6>
"map <F7> :set complete+=k<CR>
"map <S-F7> :set complete=-k<CR>                                 
"map <F8> :YRShow<CR>                                            " Show the YankRing w/ <F8>
"nnoremap <F3> :GundoToggle<CR>                                  " Show the undo tree w/ <F3>
"nnoremap ; :
"autocmd BufRead,BufNewfile ~/notes/* set filetype=markdown      " All files in ~/notes are Markdown
"au BufWinLeave *.html,*.css mkview	
"au BufWinEnter *.html,*.css silent loadview	
"au FileType mail set tw=65                                      " Thin width when writing mail in mutt 
"au FocusLost * :wa                                              " Saves file when vim loses focus
"if has('statusline')                                            " Status line with git repo info
"  set statusline=%<%f\ 
"  set statusline+=%w%h%m%r 
"  set statusline+=%{fugitive#statusline()}
"  set statusline+=\ [%{&ff}/%Y]  
"  set statusline+=\ [%{getcwd()}]
"  set statusline+=%=%-14.(Line:\ %l\ of\ %L\ [%p%%]\ -\ Col:\ %c%V%)
"endif

" When started as "evim", evim.vim will already have done these settings.
"if v:progname =~? "evim"
"  finish
"endif

" 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

" This is an alternative that also works in block mode, but the deleted
" text is lost and it only works for putting the current register.
"vnoremap p "_dp

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
"if &t_Co > 2 || has("gui_running")
"  syntax on
"  set hlsearch
"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("'\"") > 0 && line("'\"") <= line("$") |
"    \   exe "normal g`\"" |
"    \ endif

"  augroup END

"else

"  set autoindent		" always set autoindenting on

"endif " has("autocmd")

"set fileformats=dos,unix	" set fileformat to DOS by default