Skip to content
Snippets Groups Projects
Select Git revision
1 result Searching

vimrc

Blame
  • vimrc 3.39 KiB
    "
    " .vimrc
    "
    " Vim configuration resource file. Specifies desired behavior for the vim editor
    "
    set nocompatible        " Forget compatibility with Vi. Who cares about Vi?
    set showmode            " Show which mode you're in
    set ruler               " Display cursor position in the lower right corner
    "set number              " Line numbers. ruler makes this redundant
    set showmatch           " Show matching [] () {} etc...
    set smartindent         " Let vim help with indentation
    set nowrap              " Do not wrap lines longer than the window
    set scrolloff=5         " Minimum number of lines to keep above/below the cursor
    syntax enable           " Syntax highlighting
    set backspace=2         " Make Backspace work like you expect
    set formatoptions+=ro   " Automatically insert the comment character when you
                            " hit <Enter> (r) or o/O (o) in a comment block
    
    
    " Tab options
    set expandtab           " Soft tabs, changes tabs to spaces
    set tabstop=4           " Number of spaces in a tab
    set softtabstop=4       " Number of spaces in a soft tab
    set shiftwidth=4        " Number of spaces in an indentation level.
    
    
    " Searching options
    set nowrapscan          " Do not wrap to the top of the file while searching
    set ignorecase          " Case insensitive searching
    set smartcase           " Except when the query includes an uppercase character
    set incsearch           " Begin matching query as you type it
    set hlsearch            " Highlight search matches
    
    
    " Use solarized colorscheme
    set background=dark
    colorscheme solarized
    
    
    " Allow saving of files as sudo when I forget to start vim using sudo
    cmap w!! q !sudo tee > /dev/null %
    
    
    " Show invisible characters with `:set list!` or <F10>
    set nolist
    set listchars=tab:»-,trail:·,extends:>,precedes:<,eol:¬
    noremap <F10> :set list!<CR>
    
    
    " Filetype specific indentation
    " Put a vertical ruler in columns 81 and 121
    highlight ColorColumn ctermbg=magenta
    noremap <F9> :call ToggleColorColumn()<CR>
    function! ToggleColorColumn()
        if &colorcolumn
            setlocal colorcolumn&
        else
            setlocal colorcolumn=81,121
        endif
    endfunction
    
    
    " Code folding
    "set foldmethod=indent
    "set foldenable
    
    
    " Make vim turn *off* expandtab for files named Makefile or makefile
    " We need the tab literal
    autocmd BufNewFile,BufRead [Mm]akefile* setlocal noexpandtab
    
    
    " Set the terminal title to reflect the open file. Even works with Vim tabs.
    autocmd BufEnter * let &titlestring = expand("%:t") . " - %{$USER}@" . hostname() | set title
    autocmd VimLeave * let &titleold = $USER . "@" . hostname() | set title
    
    
    "filetype plugin indent on
    "autocmd FileType html setlocal shiftwidth=2 softtabstop=2   " HTML
    "autocmd FileType php setlocal shiftwidth=4 softtabstop=4    " PHP
    
    " Map numpad keys in insert and command-line mode
    "noremap! <Esc>Oq 1
    "noremap! <Esc>Or 2
    "noremap! <Esc>Os 3
    "noremap! <Esc>Ot 4
    "noremap! <Esc>Ou 5
    "noremap! <Esc>Ov 6
    "noremap! <Esc>Ow 7
    "noremap! <Esc>Ox 8
    "noremap! <Esc>Oy 9
    "noremap! <Esc>Op 0
    "noremap! <Esc>On .
    "noremap! <Esc>OQ /
    "noremap! <Esc>OR *
    "noremap! <Esc>Ol +
    "noremap! <Esc>OS -
    "noremap! <Esc>OM <Enter>
    
    " Map numpad keys in all other modes
    "noremap <Esc>Oq 1
    "noremap <Esc>Or 2
    "noremap <Esc>Os 3
    "noremap <Esc>Ot 4
    "noremap <Esc>Ou 5
    "noremap <Esc>Ov 6
    "noremap <Esc>Ow 7
    "noremap <Esc>Ox 8
    "noremap <Esc>Oy 9
    "noremap <Esc>Op 0
    "noremap <Esc>On .
    "noremap <Esc>OQ /
    "noremap <Esc>OR *
    "noremap <Esc>Ol +
    "noremap <Esc>OS -
    "noremap <Esc>OM <Enter>