filetype plugin indent on
set encoding=utf-8
set termencoding=utf-8
set fileencodings=ucs-bom,euc-jp,cp932,iso-2022-jp
set fileformats=unix,dos,mac
set ignorecase
set smartcase
set number
set ruler
set autoindent
set nosmartindent
set nocindent
set shiftwidth=2
set tabstop=2
set expandtab
set hlsearch
set splitbelow
set splitright
set switchbuf=useopen
set background=dark
syntax on
set wildmode=list:longest
set list
set listchars=tab:>-,trail:-,extends:>,precedes:<
set hidden
set autoread
set title
set backspace=indent,eol,start
set modeline
set noequalalways
nnoremap <Esc><Esc> :<C-u>set nohlsearch<Return>
nnoremap / :<C-u>set hlsearch<Return>/
nnoremap ? :<C-u>set hlsearch<Return>?
nnoremap * :<C-u>set hlsearch<Return>*
nnoremap # :<C-u>set hlsearch<Return>#
nnoremap O :<C-u>call append(expand('.'), '')<Cr>j
omap <Space>p %
nmap <Space>p %
nnoremap vv <C-v>
nnoremap ]p p`[=`]
nnoremap sh <C-w>h:call <SID>good_width()<Cr>
nnoremap sj <C-w>j
nnoremap sk <C-w>k
nnoremap sl <C-w>l:call <SID>good_width()<Cr>
nnoremap sH <C-w>H:call <SID>good_width()<Cr>
nnoremap sJ <C-w>J
nnoremap sK <C-w>K
nnoremap sL <C-w>L:call <SID>good_width()<Cr>
function! s:good_width()
if winwidth(0) < 84
vertical resize 84
endif
endfunction
nnoremap <Space>w :<C-u>write<Return>
nnoremap <Space>q :<C-u>quit<Return>
nnoremap <Space>Q :<C-u>quit!<Return>
nnoremap <Space>. :<C-u>OpenVimrcTab<Cr>
nnoremap <Space>ort :<C-u>OpenRubyspecTab<Cr>
nnoremap <Space>cz :<C-u>new ~/git/config/_zshrc<Cr>
nnoremap <Space>ct :<C-u>new ~/git/config/_termtter.erb<Cr>
nnoremap <Space>] <C-w>]
noremap <Space>j <C-f>
noremap <Space>k <C-b>
inoremap <C-t> ?֡?<left>
inoremap <C-t><C-t> ?ڡ?<left>
inoremap <C-h> <left>
inoremap <C-l> <right>
cnoremap <C-h> <Left>
cnoremap <C-l> <Right>
cnoremap <C-p> <Up>
cnoremap <C-n> <Down>
inoremap <C-u> <C-g>u<C-u>
inoremap <C-w> <C-g>u<C-w>
nnoremap <Space>an :<C-u>tabnew<CR>:CD ~/<Cr>
nnoremap <Space>aj :<C-u>execute 'tabnext' 1 + (tabpagenr() +
v:count1 - 1) % tabpagenr('$')<CR>:redraw<CR>
nnoremap <Space>ak gT
nnoremap Y y$
nnoremap co zo
nnoremap cc zc
inoremap <Tab> <C-n>
nnoremap <Space>s :setfiletype<Space>
nnoremap <Space>b :w blogger:create
nnoremap <Space>v :new ~/git/config/vim/
nnoremap <Space>I $i
nnoremap <Space>C $C
nnoremap X ^x
nnoremap cp Pjdd
nnoremap Q <nop>
nnoremap // /^
nnoremap <expr> s* ':%substitute/\<' . expand('<cword>') . '\>/'
vnoremap < <gv
vnoremap > >gv
autocmd FileType *
\ if &l:omnifunc == ''
\ | setlocal omnifunc=syntaxcomplete#Complete
\ | endif
let g:NeoComplCache_EnableAtStartup = 0
command! -nargs=0 OpenVimrcTab tabnew ~/git/config/_vimrc | TabpageCD
~/git/config
command! -nargs=0 OpenRubyspecTab tabnew
~/git/ruby-trunk/spec/rubyspec/ | TabpageCD
~/git/ruby-trunk/spec/rubyspec/
command! -nargs=0 OpenMarkdown !open ~/Documents/markdown.webarchive
command! -nargs=1 OpenRubydoc new ~/rubydoc/doctree/refm/api/src/<args>.rd
command! -nargs=* AlternateCommand call s:cmd_AlternateCommand([<f-args>])
function! s:cmd_AlternateCommand(args)
let buffer_p = (a:args[0] ==? '<buffer>')
let original_name = a:args[buffer_p ? 1 : 0]
let alternate_name = a:args[buffer_p ? 2 : 1]
if original_name =~ '\['
let [original_name_head, original_name_tail] = split(original_name, '[')
let original_name_tail = substitute(original_name_tail, '\]', '', '')
else
let original_name_head = original_name
let original_name_tail = ''
endif
let original_name_tail = ' ' . original_name_tail
for i in range(len(original_name_tail))
let lhs = original_name_head . original_name_tail[1:i]
execute 'cnoreabbrev <expr>' lhs
\ '(getcmdtype() == ":" && getcmdline() ==# "' . lhs . '")'
\ '?' ('"' . alternate_name . '"')
\ ':' ('"' . lhs . '"')
endfor
endfunction
command! SplitNicely call s:split_nicely()
function! s:split_nicely()
if 80*2 * 15/16 <= winwidth(0)
vsplit
else
split
endif
endfunction
AlternateCommand sp SplitNicely
AlternateCommand vsp SplitNicely
augroup MyVim
autocmd!
autocmd FileType vim nnoremap <buffer> gs :<C-u>source %<Cr>
augroup END
command! Big wincmd _ | wincmd |
AlternateCommand big Big
AlternateCommand man Man
nnoremap <silent> <Space>ff :<C-u>FuzzyFinderFile<Cr>
nnoremap <silent> <Space>fm :<C-u>FuzzyFinderMruFile<Cr>
nnoremap <silent> <Space>fr :<C-u>FuzzyFinderBuffer<Cr>
if !exists('g:FuzzyFinderOptions')
let g:FuzzyFinderOptions = { 'Base':{}, 'Buffer':{}, 'File':{},
'Dir':{}, 'MruFile':{}, 'MruCmd':{}, 'Bookmark':{}, 'Tag':{},
'TaggedFile':{}}
let g:FuzzyFinderOptions.Base.key_open = '<C-j>'
let g:FuzzyFinderOptions.Base.key_open_split = '<Space>'
let g:FuzzyFinderOptions.Base.key_open_vsplit = '<CR>'
endif
augroup MySmartchr
autocmd!
autocmd FileType javascript inoremap <buffer> <expr> \
smartchr#one_of('function(', '\')
augroup END
if has('mac')
set <xRight>=eOC
set <xLeft>=eOD
set <xUp>=eOA
set <xDown>=eOB
nnoremap <xRight> <C-w>>
nnoremap <xLeft> <C-w><LT>
nnoremap <xUp> <C-w>+
nnoremap <xDown> <C-w>-
nnoremap e[C ^Wl
nnoremap e[D ^Wh
nnoremap e[A <C-b>
nnoremap e[B <C-f>
nnoremap eO2C :bn<Cr>
nnoremap eO2D :bp<Cr>
nnoremap eO2A i??<Esc>
nnoremap eO2B i??<Esc>
nnoremap e[Be[B <C-w>j
nnoremap e[Ae[A <C-w>k
endif
command! -range=% Source split `=tempname()` | call append(0,
getbufline('#', <line1>, <line2>)) | write | source % | bwipeout
augroup MyGit
autocmd!
autocmd BufWinEnter,BufNewFile COMMIT_EDITMSG set filetype=git
augroup END
let g:git_diff_spawn_mode = 2
command! GitGol call s:git_gol()
function! s:git_gol()
vnew
read!for i in $(git log --pretty=oneline | head -n 10 | cut -d ' '
-f 1); do git show $i --color-words; done
endfunction
function! HighlightConsoleCodes()
0
let register_save = @"
while search('^[\[[0-9;]*m', 'c')
normal! dfm
let [lnum, col] = getpos('.')[1:2]
if len(getline('.')) == col
let col += 1
endif
let syntax_name = 'ConsoleCodeAt_' . bufnr('%') . '_' . lnum . '_' . col
execute 'syntax region' syntax_name 'start=+\%' . lnum . 'l\%'
. col . 'c+ end=+\%$+' 'contains=ALL'
let highlight = ''
for color_code in split(matchstr(@", '[0-9;]\+'), ';')
if color_code == 0
let highlight .= ' ctermfg=NONE ctermbg=NONE'
elseif color_code == 1
let highlight .= ' cterm=bold'
elseif 30 <= color_code && color_code <= 37
let highlight .= ' ctermfg=' . (color_code - 30)
elseif color_code == 38
elseif color_code == 39
elseif 40 <= color_code && color_code <= 47
let highlight .= ' ctermbg=' . (color_code - 40)
elseif color_code == 49
endif
endfor
if len(highlight)
execute 'highlight' syntax_name highlight
endif
endwhile
let @" = register_save
0
endfunction
autocmd BufRead,StdinReadPost * if search('^[[\d*m', 'n') | call
HighlightConsoleCodes() | set buftype=nofile nomodifiable | endif
augroup MySomething
autocmd!
autocmd BufWinEnter,BufNewFile *.io setfiletype io
autocmd BufWinEnter,BufNewFile *_spec.rb setl filetype=ruby.rspec
autocmd BufWinEnter,BufNewFile *.tex.erb setl filetype=tex.eruby
autocmd FileType twitter inoremap <buffer> <silent> <Cr>
<Esc>:execute '!twitter post "' . escape(getline('.'), '"!#%') . '"
>&/dev/null &'<Cr>o
<Esc>2GdG:<C-u>MixiEchoGet<Cr>ddO
<Esc>:execute '!twitter post "' . escape(getline('.'), '"!#') . '"
>&/dev/null &'<Cr>:<C-u>MixiEcho<Cr>o
augroup END
augroup RubyTrunk
autocmd!
autocmd BufWinEnter,BufNewFile ~/git/ruby-trunk/*.c setl ts=8 noexpandtab
autocmd BufWinEnter,BufNewFile ~/git/ruby-trunk/*.y setl ts=8 noexpandtab
autocmd BufWinEnter,BufNewFile ~/rubies/src/**/*.c setl ts=8 noexpandtab
augroup END
augroup RubySpec
autocmd!
autocmd BufWinEnter,BufNewFile ~/git/ruby-trunk/spec/rubyspec/*.rb
\ let b:quickrun_command =
\ '/usr/bin/ruby ~/git/ruby-trunk/spec/mspec/bin/mspec -t
~/rubies/bin/ruby192'
~/git/ruby-trunk/ruby19/bin/ruby'
augroup END
augroup MyIRB
autocmd!
autocmd FileType irb inoremap <buffer> <silent> <Cr> <Esc>:<C-u>ruby
v=VIM::Buffer.current;v.append(v.line_number, '#=> ' +
eval(v[v.line_number]).inspect)<Cr>jo
augroup END
nnoremap <Space>irb :<C-u>vnew<Cr>:setfiletype irb<Cr>
let g:quickrun_direction = 'rightbelow vertical'
let g:quickrun_no_default_key_mappings = 0
map <Space>r <Plug>(quickrun)
"normal <Plug>(quickrun)"
"normal <C-w>H<C-w>7_"
"normal <C-w>p"
nmap <Space>r :<C-u>QuickRun<Cr>
if !exists('g:quickrun_config')
let g:quickrun_config = {}
endif
let g:quickrun_config.haskell = {'command': 'runhugs'}
let g:git_command_edit = 'rightbelow vnew'
nnoremap <Space>gd :<C-u>GitDiff --cached<Enter>
nnoremap <Space>gD :<C-u>GitDiff<Enter>
nnoremap <Space>gs :<C-u>GitStatus<Enter>
nnoremap <Space>gl :<C-u>GitLog<Enter>
nnoremap <Space>gL :<C-u>GitLog -u \| head -10000<Enter>
nnoremap <Space>ga :<C-u>GitAdd<Enter>
nnoremap <Space>gA :<C-u>GitAdd <cfile><Enter>
nnoremap <Space>gc :<C-u>GitCommit<Enter>
nnoremap <Space>gC :<C-u>GitCommit --amend<Enter>
nnoremap <Space>gp :<C-u>Git push
let g:Tex_SmartKeyQuote = 0
let g:Tex_FoldedSections = 'part,chapter,section,%%fakesection,frame,'
\. 'subsection,subsubsection,paragraph'
let g:Tex_DefaultTargetFormat = 'pdf'
let g:Tex_FormatDependency_pdf = 'bib,dvi'
let g:Tex_CompileRule_bib = 'bibtex $*.aux'
let g:Tex_CompileRule_pdf = 'dvipdfmx $*.dvi'
if has('mac')
let g:Tex_CompileRule_dvi = 'platex -kanji=utf8 -interaction=nonstopmode $*'
let g:Tex_ViewRule_pdf = 'open'
else
let g:Tex_CompileRule_dvi = '/opt/ptexlive/bin/platex -kanji=utf8
-interaction=nonstopmode $*'
let g:Tex_ViewRule_pdf = 'acroread'
endif
augroup MyKeywordprg
autocmd!
autocmd FileType twitter setl keywordprg=dictionary
augroup END
-m '[write] %' >&/dev/null<Return>:echo expand('%')<Return>
>&/dev/null<Return>:<C-u>quit<Return>
function! s:HtmlEscape()
silent s/&/\&/eg
silent s/</\</eg
silent s/>/\>/eg
endfunction
function! s:HtmlUnEscape()
silent s/</</eg
silent s/>/>/eg
silent s/&/\&/eg
endfunction
vnoremap <silent> <space>e :call <SID>HtmlEscape()<CR>
vnoremap <silent> <space>ue :call <SID>HtmlUnEscape()<CR>
let g:quicklaunch_commands = [
\ 'ls',
\ 'ls -a',
\ 'ls -l',
\ 'ruby check_gmail.rb',
\ 'twitter timeline',
\ 'port outdated',
\ '',
\ '',
\ '',
\ 'tail -n 30 ~/.zsh_history'
\ ]
for i in range(10)
execute "silent! nmap <unique> <Space>" . i . "
<Plug>(quicklaunch-" . i . ")"
endfor
silent! nmap <unique> <Space>l <Plug>(quicklaunch-list)
function! s:move_window_into_tab_page(target_tabpagenr)
if a:target_tabpagenr < 0
return
endif
let original_tabnr = tabpagenr()
let target_bufnr = bufnr('')
let window_view = winsaveview()
if a:target_tabpagenr == 0
tabnew
tabmove
execute target_bufnr 'buffer'
let target_tabpagenr = tabpagenr()
else
execute a:target_tabpagenr 'tabnext'
let target_tabpagenr = a:target_tabpagenr
topleft new
execute target_bufnr 'buffer'
endif
call winrestview(window_view)
execute original_tabnr 'tabnext'
if 1 < winnr('$')
close
else
enew
endif
execute target_tabpagenr 'tabnext'
endfunction
nnoremap <silent> <Space>ao :<C-u>call <SID>move_window_into_tab_page(0)<Cr>
":lcd "
command! CD call CD()
function! CD()
let b:old_dir = getcwd()
execute "lcd " . expand("%:p:h")
endfunction
command! CDB call CDB()
function! CDB()
let tmp = getcwd()
execute "lcd " . b:old_dir
let b:old_dir = tmp
endfunction
let s:TRUE = 1
augroup MyAutoCmd
autocmd!
augroup END
command! -complete=customlist,s:complete_cdpath -nargs=+ CD TabpageCD <args>
function! s:complete_cdpath(arglead, cmdline, cursorpos)
return split(globpath(&cdpath,
\ join(split(a:cmdline, '\s', s:TRUE)[1:], ' ') . '*/'),
\ "\n")
endfunction
AlternateCommand cd CD
command! -nargs=? TabpageCD
\ execute 'cd' fnameescape(<q-args>)
\ | let t:cwd = getcwd()
autocmd MyAutoCmd TabEnter *
\ if !exists('t:cwd')
\ | let t:cwd = getcwd()
\ | endif
\ | execute 'cd' fnameescape(t:cwd)
command! -nargs=1 Lib call s:open_lib_and_corresponding_test(<f-args>)
AlternateCommand lib Lib
function! s:open_lib_and_corresponding_test(fname)
execute 'tabnew lib/' . a:fname . '.rb'
execute 'vnew spec/' . a:fname . '_test.rb'
execute "normal \<Plug>(quickrun)\<C-w>J\<C-w>7_"
endfunction
omap ii ii<C-o>
let g:gist_clip_command = 'pbcopy'
colorscheme desert
highlight Cursor ctermbg=black
highlight Pmenu cterm=standout ctermfg=2 ctermbg=black
highlight PmenuSel cterm=bold ctermfg=2 ctermbg=black
highlight PmenuSbar ctermbg=0
highlight StatusLine term=standout cterm=underline ctermfg=2
highlight StatusLineNC cterm=underline
highlight VertSplit cterm=NONE
highlight LineNr ctermfg=2
highlight TabLineFill ctermfg=0
command! LeftSpace call s:left_space()
function! s:left_space()
let bufname = printf('[leftspace:%s]', tabpagenr())
let bufnr = bufnr(bufname)
let winnr = bufwinnr(bufnr)
if winnr == -1
execute "topleft 20vnew " . bufname
setlocal nomodifiable
wincmd p
else
execute winnr "wincmd w"
wincmd c
wincmd p
endif
endfunction
AlternateCommand leftspace LeftSpace
command! Say silent execute '!say "' . escape(getline('.'), '"') . '"
&>/dev/null &'
augroup SayCurrentLine
autocmd!
autocmd FileType say nnoremap <buffer> j j:Say<Cr>
autocmd FileType say nnoremap <buffer> k k:Say<Cr>
augroup END
command! -nargs=0 LeadUnderscores %s/^\s*/\=repeat('_', strlen(submatch(0)))/g
vnoremap p :<C-u>call <SID>yank_paste_without_yanking()<CR>
function! s:yank_paste_without_yanking()
let a = @"
normal! gvp
let @" = a
endfunction
map w <Plug>(smartword-w)
map b <Plug>(smartword-b)
map e <Plug>(smartword-e)
map ge <Plug>(smartword-ge)
noremap W w
noremap B b
noremap E e
noremap gE ge
source ~/.vimrc_secret
augroup MyXML
autocmd!
autocmd Filetype xml inoremap <buffer> </ </<C-x><C-o>
autocmd Filetype html inoremap <buffer> </ </<C-x><C-o>
augroup END
command! -nargs=1 -complete=file Rename f <args>|call delete(expand('#'))
function! s:smartsemicolon()
let s = getline('.')
if s != "" && match(s, '#.*\|.*//.*\|/\*\|\*/\|\s*$\|.*[;({},]$')
normal! a;
endif
endfunction
augroup MyCSemicolon
autocmd!
<SID>smartsemicolon()<Cr><Cr>
<SID>smartsemicolon()<Cr><Cr>
autocmd FileType c inoremap <buffer> : ;
autocmd FileType c inoremap <buffer> ; :
autocmd FileType cpp inoremap <buffer> : ;
autocmd FileType cpp inoremap <buffer> ; :
augroup END
augroup MyCompiler
autocmd!
autocmd Filetype c compiler gcc
autocmd Filetype cpp compiler gcc
autocmd Filetype c setl makeprg=gcc\ -Wall\ %\ -o\ %:r.o
autocmd Filetype cpp setl makeprg=g++\ -Wall\ %\ -o\ %:r.o
autocmd Filetype c nmap <buffer> <Space>m :<C-u>w<Cr>:make<Cr>
autocmd Filetype cpp nmap <buffer> <Space>m :<C-u>w<Cr>:make<Cr>
autocmd Filetype c nmap <buffer> <Space>M :<C-u>!splint %<Cr>
autocmd Filetype cpp nmap <buffer> <Space>M :<C-u>!splint %<Cr>
augroup END
let g:VimShell_EnableInteractive = 1
let g:Interactive_EscapeColors = [
\'#3c3c3c', '#ff6666', '#66ff66', '#ffd30a', '#1e95fd',
'#ff13ff', '#1bc8c8', '#C0C0C0',
\'#686868', '#ff6666', '#66ff66', '#ffd30a', '#6699ff',
'#f820ff', '#4ae2e2', '#ffffff'
\]
function! DoMspec()
new
read! /usr/bin/ruby ~/git/ruby-trunk/spec/mspec/bin/mspec -t
~/git/ruby-trunk/ruby19/bin/ruby #
call append(line('$'),
'--------------------------------------------------------------')
normal G
read! /usr/bin/ruby ~/git/ruby-trunk/spec/mspec/bin/mspec -t
~/rubies/bin/ruby191 #
call append(line('$'),
'--------------------------------------------------------------')
normal G
read! /usr/bin/ruby ~/git/ruby-trunk/spec/mspec/bin/mspec -t
~/rubies/bin/ruby187 #
call append(line('$'),
'--------------------------------------------------------------')
normal G
read! /usr/bin/ruby ~/git/ruby-trunk/spec/mspec/bin/mspec -t
/opt/local/bin/ruby #
call append(line('$'),
'--------------------------------------------------------------')
normal G
read! /usr/bin/ruby ~/git/ruby-trunk/spec/mspec/bin/mspec -t /usr/bin/ruby #
endfunction
let g:VimShell_UsePopen2 = 0
imap <C-a> <C-O><Plug>CapsLockToggle