Skip to content

Instantly share code, notes, and snippets.

@summerblue
Forked from JeffreyWay/.vimrc
Last active December 28, 2015 09:19

Revisions

  1. summerblue revised this gist Nov 15, 2013. 1 changed file with 5 additions and 5 deletions.
    10 changes: 5 additions & 5 deletions .vimrc
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    set nocompatible " Disable vi-compatibility
    set nocompatible " 去掉兼容性, 使用新的 vim 的功能
    set t_Co=256

    colorscheme xoria256
    @@ -8,14 +8,14 @@ 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 showmode " 显示当前使用的模式
    set nowrap " 不折行
    set tabstop=4 " 一个 tab 等于 4 个空格
    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 shiftwidth=4 "
    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
  2. @JeffreyWay JeffreyWay revised this gist Sep 29, 2013. 1 changed file with 3 additions and 15 deletions.
    18 changes: 3 additions & 15 deletions .vimrc
    Original file line number Diff line number Diff line change
    @@ -167,14 +167,9 @@ function! Class()
    endif

    " Open class
    exec 'normal iclass ' . name . ' {
    }O'
    exec 'normal iclass ' . name . ' {^M}^[O^['

    exec 'normal i
    public function __construct()
    {

    }'
    exec 'normal i^M public function __construct()^M{^M ^M}^['
    endfunction
    nmap ,1 :call Class()<cr>
    @@ -186,14 +181,7 @@ function! AddDependency()
    let segments = split(namespace, '\')
    let typehint = segments[-1]

    exec 'normal gg/construct
    :H
    f)i, ' . typehint . ' $' . dependency . '/}
    O$this->a' . dependency . ' = $' . dependency . ';?{
    kOprotected $' . dependency . ';
    ?{
    Ouse ' . namespace . ';
    '
    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
  3. @JeffreyWay JeffreyWay revised this gist Sep 29, 2013. 1 changed file with 1 addition and 4 deletions.
    5 changes: 1 addition & 4 deletions .vimrc
    Original file line number Diff line number Diff line change
    @@ -59,6 +59,7 @@ 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
    @@ -161,12 +162,8 @@ function! Class()

    if strlen(namespace)
    exec 'normal i<?php namespace ' . namespace . ';

    '
    else
    exec 'normal i<?php

    '
    endif

    " Open class
  4. @JeffreyWay JeffreyWay created this gist Sep 29, 2013.
    205 changes: 205 additions & 0 deletions .vimrc
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,205 @@
    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 . ' {
    }O'

    exec 'normal i
    public function __construct()
    {

    }'
    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
    :H
    f)i, ' . typehint . ' $' . dependency . '/}
    O$this->a' . dependency . ' = $' . dependency . ';?{
    kOprotected $' . dependency . ';
    ?{
    Ouse ' . namespace . ';
    '

    " Remove opening comma if there is only one dependency
    exec 'normal :%s/(, /(/g
    '
    endfunction
    nmap ,2 :call AddDependency()<cr>