-
Star
(293)
You must be signed in to star a gist -
Fork
(127)
You must be signed in to fork a gist
-
-
Save JeffreyWay/6753834 to your computer and use it in GitHub Desktop.
set nocompatible " Disable vi-compatibility | |
set t_Co=256 | |
colorscheme xoria256 | |
set guifont=menlo\ for\ powerline:h16 | |
set guioptions-=T " Removes top toolbar | |
set guioptions-=r " Removes right hand scroll bar | |
set go-=L " Removes left hand scroll bar | |
set linespace=15 | |
set showmode " always show what mode we're currently editing in | |
set nowrap " don't wrap lines | |
set tabstop=4 " a tab is four spaces | |
set smarttab | |
set tags=tags | |
set softtabstop=4 " when hitting <BS>, pretend like a tab is removed, even if spaces | |
set expandtab " expand tabs by default (overloadable per file type later) | |
set shiftwidth=4 " number of spaces to use for autoindenting | |
set shiftround " use multiple of shiftwidth when indenting with '<' and '>' | |
set backspace=indent,eol,start " allow backspacing over everything in insert mode | |
set autoindent " always set autoindenting on | |
set copyindent " copy the previous indentation on autoindenting | |
set number " always show line numbers | |
set ignorecase " ignore case when searching | |
set smartcase " ignore case if search pattern is all lowercase, | |
set timeout timeoutlen=200 ttimeoutlen=100 | |
set visualbell " don't beep | |
set noerrorbells " don't beep | |
set autowrite "Save on buffer switch | |
set mouse=a | |
" With a map leader it's possible to do extra key combinations | |
" like <leader>w saves the current file | |
let mapleader = "," | |
let g:mapleader = "," | |
" Fast saves | |
nmap <leader>w :w!<cr> | |
" Down is really the next line | |
nnoremap j gj | |
nnoremap k gk | |
"Easy escaping to normal model | |
imap jj <esc> | |
"Auto change directory to match current file ,cd | |
nnoremap ,cd :cd %:p:h<CR>:pwd<CR> | |
"easier window navigation | |
nmap <C-h> <C-w>h | |
nmap <C-j> <C-w>j | |
nmap <C-k> <C-w>k | |
nmap <C-l> <C-w>l | |
"Resize vsplit | |
nmap <C-v> :vertical resize +5<cr> | |
nmap 25 :vertical resize 40<cr> | |
nmap 50 <c-w>= | |
nmap 75 :vertical resize 120<cr> | |
nmap <C-b> :NERDTreeToggle<cr> | |
"Load the current buffer in Chrome | |
nmap ,c :!open -a Google\ Chrome<cr> | |
"Show (partial) command in the status line | |
set showcmd | |
" Create split below | |
nmap :sp :rightbelow sp<cr> | |
" Quickly go forward or backward to buffer | |
nmap :bp :BufSurfBack<cr> | |
nmap :bn :BufSurfForward<cr> | |
highlight Search cterm=underline | |
" Swap files out of the project root | |
set backupdir=~/.vim/backup// | |
set directory=~/.vim/swap// | |
" Run PHPUnit tests | |
map <Leader>t :!phpunit %<cr> | |
" Easy motion stuff | |
let g:EasyMotion_leader_key = '<Leader>' | |
" Powerline (Fancy thingy at bottom stuff) | |
let g:Powerline_symbols = 'fancy' | |
set laststatus=2 " Always show the statusline | |
set encoding=utf-8 " Necessary to show Unicode glyphs | |
set noshowmode " Hide the default mode text (e.g. -- INSERT -- below the statusline) | |
autocmd cursorhold * set nohlsearch | |
autocmd cursormoved * set hlsearch | |
" Remove search results | |
command! H let @/="" | |
" If you prefer the Omni-Completion tip window to close when a selection is | |
" made, these lines close it on movement in insert mode or when leaving | |
" insert mode | |
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif | |
autocmd InsertLeave * if pumvisible() == 0|pclose|endif | |
" Abbreviations | |
abbrev pft PHPUnit_Framework_TestCase | |
abbrev gm !php artisan generate:model | |
abbrev gc !php artisan generate:controller | |
abbrev gmig !php artisan generate:migration | |
" Auto-remove trailing spaces | |
autocmd BufWritePre *.php :%s/\s\+$//e | |
" Edit todo list for project | |
nmap ,todo :e todo.txt<cr> | |
" Laravel framework commons | |
nmap <leader>lr :e app/routes.php<cr> | |
nmap <leader>lca :e app/config/app.php<cr>81Gf(%O | |
nmap <leader>lcd :e app/config/database.php<cr> | |
nmap <leader>lc :e composer.json<cr> | |
" Concept - load underlying class for Laravel | |
function! FacadeLookup() | |
let facade = input('Facade Name: ') | |
let classes = { | |
\ 'Form': 'Html/FormBuilder.php', | |
\ 'Html': 'Html/HtmlBuilder.php', | |
\ 'File': 'Filesystem/Filesystem.php', | |
\ 'Eloquent': 'Database/Eloquent/Model.php' | |
\ } | |
execute ":edit vendor/laravel/framework/src/Illuminate/" . classes[facade] | |
endfunction | |
nmap ,lf :call FacadeLookup()<cr> | |
" CtrlP Stuff | |
" Familiar commands for file/symbol browsing | |
map <D-p> :CtrlP<cr> | |
map <C-r> :CtrlPBufTag<cr> | |
" I don't want to pull up these folders/files when calling CtrlP | |
set wildignore+=*/vendor/** | |
set wildignore+=*/public/forum/** | |
" Open splits | |
nmap vs :vsplit<cr> | |
nmap sp :split<cr> | |
" Create/edit file in the current directory | |
nmap :ed :edit %:p:h/ | |
" Prepare a new PHP class | |
function! Class() | |
let name = input('Class name? ') | |
let namespace = input('Any Namespace? ') | |
if strlen(namespace) | |
exec 'normal i<?php namespace ' . namespace . '; | |
else | |
exec 'normal i<?php | |
endif | |
" Open class | |
exec 'normal iclass ' . name . ' {^M}^[O^[' | |
exec 'normal i^M public function __construct()^M{^M ^M}^[' | |
endfunction | |
nmap ,1 :call Class()<cr> | |
" Add a new dependency to a PHP class | |
function! AddDependency() | |
let dependency = input('Var Name: ') | |
let namespace = input('Class Path: ') | |
let segments = split(namespace, '\') | |
let typehint = segments[-1] | |
exec 'normal gg/construct^M:H^Mf)i, ' . typehint . ' $' . dependency . '^[/}^>O$this->^[a' . dependency . ' = $' . dependency . ';^[?{^MkOprotected $' . dependency . ';^M^[?{^MOuse ' . namespace . ';^M^[' | |
" Remove opening comma if there is only one dependency | |
exec 'normal :%s/(, /(/g | |
' | |
endfunction | |
nmap ,2 :call AddDependency()<cr> |
I also made a few changes to make it work on Win7
" Prepare a new PHP class
function! Class()
let name = input('Class name? ')
let namespace = input('Any Namespace? ')
if strlen(namespace)
exec "normal i<?php namespace " . namespace . ";\<C-m>\<C-m>"
else
exec "normal i<?php \<C-m>"
endif
" Open class
exec "normal iclass " . name . " {\<C-m>}\<C-[>O\<C-[>"
exec "normal i\<C-M>public function __construct()\<C-M>{\<C-M>\<C-M>}\<C-[>"
endfunction
nmap ,1 :call Class()
What difference does it make? Tried in Normal and Visual mode, it looks the same.
" Down is really the next line
nnoremap j gj
nnoremap k gk
I got it, it helps when lines are wrapped. http://stackoverflow.com/questions/1585763/vim-delete-display-lines-instead-of-physical-lines
I am in linux and this function reproduce an error. I think there is some related to strange chars..
Is there some reference to learn about this chars:
function! AddDependency()
let dependency = input('Var Name: ')
let namespace = input('Class Path: ')
let segments = split(namespace, '\')
let typehint = segments[-1]
exec 'normal gg/construct^M:H^Mf)i, ' . typehint . ' $' . dependency . '^[/}^>O$this->^[a' . dependency . ' = $' . dependency . ';^[?{^MkOprotected $' . dependency . ';^M^[?{^MOuse ' . namespace . ';^M^['
" Remove opening comma if there is only one dependency
exec 'normal :%s/(, /(/g
'
endfunction
When I try to run this function I get:
Error detected while processing function AddDependency:
line 10:
E115: Missing quote: 'normal :%s/(, /(/g
E15: Invalid expression: 'normal :%s/(, /(/g
Press ENTER or type command to continue
^ There's a typo, the single quote should be at the and of the last exec
, not alone on the line above endfunction
Couldn't understand why this config file has both of them:
...
11| set showmode
...
94| set noshowmode
...
Gives me error
unable to open swap file for .vimrc recovery impossible
On ubuntu 14.04
Fixed unable to open swap file for .vimrc recovery impossible
by creating ~/.vim/backup/
and ~/.vim/swap/
directories.
Thanks for sharing
The C+v
shortcut for Resize vsplit is overwriting Visual Block Mode.
BTW, thank a lot
Thanks but why shift ZZ (save and close) not working after use your .vimrc !!
I made a few changes to make it work
i don't know if there is some way to use "^M" instead of the long version ""