" Function that returns the type of system. You need to " change this to the correct type: linux, mac, windows fun! MySys() return 'mac' endfun " Pathogen plugin configuration "call pathogen#runtime_append_all_bundles() " Makes Vim not compatible with vi set nocompatible " No lines are checked for set commands. Prevent security exploits. set modelines=0 " Sets how many lines of history Vim has to remember set history=300 " Enable filetype plugin and indent for specific file types filetype plugin on filetype indent on " Auto read a file if it is changed from the outside set autoread " Set numbers for lines set number " Number of spaces that a in the file counts for. set tabstop=4 " Number of spaces to use for each step of (auto)indent. set shiftwidth=4 " Number of spaces that a counts for while performing " editing operations, like inserting a or using . set softtabstop=4 " Use the appropriate number of spaces to insert a . " If linecharstring:tab is used tab marks will not be shown " because they have been converted into spaces. set expandtab " List mode: Show tabs as CTRL-I is displayed, display $ after " end of line. Useful to see the difference between tabs and " spaces and for trailing blanks. set list " Strings to use in 'list' mode and for the :list command. " It is a comma separated list of string settings. " tab:xy - Two chars to be used to show a tab. First used one " second is repeated to fill the space of the tab " eol:c - Char to show at the end of each line set listchars=tab:»\ ,eol:← " Sets the character enconding to Unicode UTF8 set encoding=utf-8 if has("gui_running") set mouse=a " enable the mouse set guioptions-=T " remove the toolbar set t_Co=256 " number of colors colorscheme murphy " set a colorscheme else colorscheme slate endif " Try to set the language to Spanish try language es_ES catch endtry " This gives the end-of-line () formats that will be tried " when starting to edit a new buffer and when reading a file " into an existing buffer set fileformats=unix,dos,mac " Minimal number of screen lines to keep above and below the cursor. set scrolloff=4 " Copy indent from current line when starting a new line ( " in Insert mode or when using the "o" or "O" command). set autoindent " Do smart autoindenting when starting a new line. Works for " C-like programs, but can also be used for other languages. set smartindent " Enables automatic C program indenting. When you don't like " the way 'cindent' works, try the 'smartindent' set cindent " If in Insert, Replace or Visual mode put a message on " the last line. set showmode " Indicates when a line is wrapped by prefixing wrapped lie " with the choosen character. :set showbreak=>\ " When off a buffer is unloaded when it is |abandon|ed. " When on a buffer becomes hidden when it is |abandon|ed. set hidden " When is on, command-line completion operates in an " enhanced mode. set wildmenu " No error beeps on errors set noerrorbells " Use visual bell instead of beeping. set novisualbell " No visual flashes on the display set vb t_vb= " Completion mode that is used for the character specified with " 'wildchar'. It is a comma separated list of up to four parts. " list:longest - When more than one match, list all matches and " complete till longest common string. " set wildmode=list:longest " Highlight the screen line of the cursor with CursorLine " set cursorline " Indicates a fast terminal connection. More characters will " be sent to the screen for redrawing, instead of using " insert/delete line commands. set ttyfast " Show the line and column number of the cursor position, " separated by a comma. " set ruler " Sets a ruler with a steroid format. " set rulerformat=%30(%=\:b%n%y%m%r%w\ %l,%c%V\ %P%) " Show (partial) command in the last line of the screen. set showcmd " The value of this option influences when the last window will " have a status line: 0: never 1: only if there are at least " two windows 2: always if has('statusline') set laststatus=2 " Broken down into easily includeable segments set statusline=%<%f\ " Filename set statusline+=%w%h%m%r " Options "set statusline+=%{fugitive#statusline()} " Git Hotness set statusline+=\ [%{&ff}/%Y] " filetype set statusline+=\ [%{getcwd()}] " current dir set statusline+=\ [A=\%03.3b/H=\%02.2B] " ASCII / Hex value of char set statusline+=%=%-14.(%l,%c%V%)\ %p%% " Right aligned file nav info endif " Influences the working of , , CTRL-W and CTRL-U in " Insert mode. This is a list of items, separated by commas set backspace=indent,eol,start " Do not redraw while executing macros set nolazyredraw " Enable highlighting of text depending on filetype syntax enable " Set font according to system if MySys() == "mac" set guifont=Menlo:h14 set shell=/bin/bash elseif MySys() == "windows" set guifont=Bitstream\ Vera\ Sans\ Mono:h10 elseif MySys() == "linux" set guifont=Monospace\ 10 set shell=/bin/bash endif " COLORS " " Highlighting used for eol, extends and precedes highlight NonText ctermfg=lightgray guifg=lightgray " Highlighting used for nbsp, tab and trail highlight SpecialKey ctermfg=lightgray guifg=lightgray " Change the key from the default "\" to "," (comma) let mapleader = "," let g:mapleader = "," " MANAGE LONG LINES OF TEXT " " Lines longer than the width of the window will wrap and " displaying continues on the next line set wrap " Maximum width of text that is being inserted. A longer line " will be broken after white space to get this width set textwidth=79 " This is a sequence of letters which describes how automatic " formatting is to be done. " q = Allow formatting of comments with "gq". " r = Auto insert the current comment leader after hitting " in Insert mode. " n = When formatting text, recognize numbered lists. " 1 = Don't break a line after a one-letter word. It's " broken before it instead (if possible). set formatoptions=qrn1 " Comma separated list of screen columns that are highlighted " with ColorColumn 'hl-ColorColumn' " NEW in Vim 7.3 " set colorcolumn=85 " SEARCHING AND MOVING " " Ignore case in search patterns. Also used when searching " in the tags file. set ignorecase " Override the 'ignorecase' option if the search pattern " contains upper case characters. set smartcase " When on, the ":substitute" flag 'g' is default on. " This means that all matches in a line are substituted instead " of one. When a 'g' flag is given to a ":substitute" command, " this will toggle the substitution to one match. set gdefault " While typing a search command, show where the pattern, as it " was typed so far, matches. The matched string is highlighted. set incsearch " When a bracket is inserted, briefly jump to the matching one. " The jump is only done if the match can be seen on the screen. set showmatch " When there is a previous search pattern, highlight all " its matches. set hlsearch " MAPPINGS " " Insert a character in normal mode in the current char position :nnoremap s :exec "normal i".nr2char(getchar())."\e" " Insert a character in normal mode in the next char position :nnoremap S :exec "normal a".nr2char(getchar())."\e" " Fix Vim’s horribly broken default regex “handling” by " automatically inserting a \v before any string you search for. " This makes Vim regex work like Perl/Python regex formatting. nnoremap / /\v vnoremap / /\v " Map the key to the "%" key to make the key match " bracket pairs. Which makes a lot easier to move in source code. nnoremap % noremap % " This mapping makes it easy to clear the highlighting of a " previous search noremap :noh " Remap the F1 key to ESC. This will avoid getting the help " when trying aiming for escape. inoremap nnoremap vnoremap " Remap the ';' key to do the same thing as the ':' key. " Will save one less key to type. nnoremap ; : " Save the file on losing focus autocmd FocusLost * :wa " Source changes to vimrc immediately autocmd BufWritePost ~/.vimrc :source ~/.vimrc " Add file extensions so they are handled with the " correct filetype autocmd BufRead,BufNewFile *.module set filetype=php autocmd BufRead,BufNewFile *.install set filetype=php autocmd BufRead,BufNewFile *.inc set filetype=php " Activate code completion for a programming language. autocmd FileType php set omnifunc=phpcomplete#CompletePHP " LEADER COMMANDS " " Strip all trailing whitespaces on the current file nnoremap W :%s/\s\+$//:let @/='' " Fold tag function to fold a section of text that is " between a pair of HTML tags nnoremap ft Vatzf " Re-hardwrap paragraphs of text. nnoremap q gqip " Reselect the text that was just pasted so you can " perform commands (like indentation) on it nnoremap v V`] " Open your ˜/.vimrc file in a vertically split window so " you can add new settings on the fly nnoremap ev :e $MYVIMRC " Fast save a file nnoremap w :w! " WINDOW MAPPINGS " " Mapping to open a new vertical split and switch " over to it. nnoremap w vl " Mappings to facilitate moving around your splits. nnoremap h nnoremap j nnoremap k nnoremap l