Feed

maedana's watching list

  • [1879] autocomplpop.vim

    Comment たまに重い(マシンのせいかも)
  • [2386] endwise.vim

    Comment rubyでendを勝手につけてくれる。
  • [1890] LustyExplorer

    Comment minibufexpl.vimを卒業してこれにした。
  • [69] project.tar.gz

    Comment rails.vimがあれば:RProjectが便利
  • [1567] rails.vim

    Comment RoRでの開発には必須
  • [1697] surround.vim

    Comment あまり活用してない
  • [273] taglist.vim

    Comment ctagsを入れるとソースコードのアウトラインをvimで表示できるように。
  • [1234] YankRing.vim

    Comment これでyankが劇的に使いやすくなった
  • [1598] yanktmp.vim

    Comment あったら便利くらい

Profile

JavaからRubyで仕事するようになったプログラマ。
vim暦は1年くらいになった。
相変わらずmouse mode使ってるけど最近マウスに触る頻度は減ってきた。

http://d.hatena.ne.jp/maedana/

.vimrc

"==<etc>======================================================================
" vi互換機能オフ
set nocompatible
" バックアップを作らない
set nobackup
" vim開始時の挨拶を表示しない
set shortmess+=I
" 行番号表示
set number
" メッセージ表示に使う行数
set cmdheight=1
" バッファ放棄時にhidden状態になる
set hidden
" コマンド保存数
set history=100
" backspaceキーを使えるようにする
set backspace=indent,eol,start
" mouse mode
set mouse=a
set ttymouse=xterm2
" folding
set foldmethod=indent
set foldlevel=1
" via http://d.hatena.ne.jp/ns9tks/20080318/1205851539
" 行頭で h を押すと折畳を閉じる。
nnoremap <expr> h col('.') == 1 && foldlevel(line('.')) > 0 ? 'zc' : 'h'
" 折畳上で l を押すと折畳を開く。
nnoremap <expr> l foldclosed(line('.')) != -1 ? 'zo0' : 'l'
" 行頭で h を押すと選択範囲に含まれる折畳を閉じる。
vnoremap <expr> h col('.') == 1 && foldlevel(line('.')) > 0 ? 'zcgv' : 'h'
" 折畳上で l を押すと選択範囲に含まれる折畳を開く。
vnoremap <expr> l foldclosed(line('.')) != -1 ? 'zogv0' : 'l'

"helptags ~/.vim/doc
"set tags=~/tags

" ソースコードハイライト
syntax on

filetype plugin on
filetype indent on

"==<tabkey>===================================================================
set cindent
set expandtab

autocmd BufEnter * call SetTab()

function! SetTab()
if &syntax == 'ruby' || &syntax == 'python' || &syntax == 'html' || &syntax == 'xhtml' || &syntax == 'css' || &syntax == 'eruby' || &syntax == 'yaml' || &syntax == 'vim'
execute 'set softtabstop=2 | set shiftwidth=2 | set tabstop=2'
else
execute 'set softtabstop=4 | set shiftwidth=4 | set tabstop=4'
endif
endfunction

"==<search>===================================================================
" .が何か一文字という意味になる
set magic
" 大文字が含まれている時のみ、大文字と小文字が区別される
set ignorecase smartcase
" 検索結果の強調表示する
set hlsearch
" インクリメンタルサーチする
set incsearch

"==<status line>==============================================================
" ステータスラインを常に表示
set laststatus=2
" ステータスラインに文字コードと改行コードを表示させる
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
" コマンドライン補完を拡張モードにする
set wildmenu
set wildmode=list:longest,full
" 現在のカーソル位置(行、桁)を右下に常に表示
set ruler
" 入力途中のコマンドを表示
set showcmd

"==<color>====================================================================
"colorscheme candy
"autocmd VimEnter * :GuiColorScheme candy
autocmd VimEnter * :GuiColorScheme xoria256
set listchars=tab:>_
"set list
"highlight SpecialKey guifg=#555555
"
highlight Pmenu ctermbg=8 guibg=#808080
highlight PmenuSel ctermbg=12 guibg=#8080ff
highlight PmenuSbar ctermbg=0 guibg=#000000

"==<encode>===================================================================
set encoding=utf-8
set fileencoding=utf-8

if has('iconv')
let s:enc_euc = 'euc-jp'
let s:enc_jis = 'iso-2022-jp'

if iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
let s:enc_euc = 'euc-jisx0213'
let s:enc_jis = 'iso-2022-jp-3'
endif

let &fileencodings = &fileencodings .','. s:enc_jis
set fileencodings+=utf-8,ucs-2le,ucs-2
if &encoding =~# '^euc-\%(jp\|jisx0213\)$'
set fileencodings+=cp932
set fileencodings-=euc-jp
set fileencodings-=euc-jisx0213
let &encoding = s:enc_euc
else
let &fileencodings = &fileencodings .','. s:enc_euc
endif

unlet s:enc_euc
unlet s:enc_jis
endif

autocmd FileType cvs :set fileencoding=euc-jp
autocmd FileType svn :set fileencoding=utf-8

"==<svk>======================================================================
au BufNewFile,BufRead svk-commit*.tmp setf svk

"==<comlete>==================================================================
" omni complete
"autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType html :set filetype=xhtml
autocmd Filetype html :set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS

"Rubyのオムニ補完を設定(ft-ruby-omni)
"let g:rubycomplete_buffer_loading = 1
"let g:rubycomplete_classes_in_global = 1
"let g:rubycomplete_rails = 1

" omni completeをTabキーで出来るようにする
function! InsertTabWrapper()
if pumvisible()
return "\<C-N>"
endif

let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k\|<\|/'
return "\<TAB>"
elseif &omnifunc == ''
return "\<C-P>"
else
return "\<C-X>\<C-O>"
endif
endfunction

inoremap <TAB> <C-R>=InsertTabWrapper()<CR>

"==<head comment>=============================================================
"iab papp <ESC>:r ~/.vim/templates/perl_application.pl<CR>
"iab ppkg <ESC>:r ~/.vim/templates/perl_package.pl<CR>
"iab pcls <ESC>:r ~/.vim/templates/perl_class.pl<CR>
"iab psub <ESC>:r ~/.vim/templates/perl_subroutine.pl<CR>

"==<buffer>===================================================================
map <LEFT> :bp!<CR>
map <RIGHT> :bn!<CR>
map <UP> :ls<CR>
map <DOWN> :b!<SPACE>

"==<move>=====================================================================
nnoremap j gj
nnoremap k gk

"==<pair>=====================================================================
set showmatch

"==<plugin>=================================================================
"==rails.vim
let g:rails_level = 4
let g:rails_defalut_database = 'sqlite3'
let g:rails_syntax=1
let g:rails_gnu_screen=1

"==surroud.vim
autocmd Syntax htmldjango let g:surround_37 = "{% \r %}"

"==yanktmp.vim(via id:secondlife
if v:version >= 700
let g:yanktmp_file = $HOME . '/.vimyanktmp'
map <silent> sy :call YanktmpYank()<CR>
map <silent> sp :call YanktmpPaste_p()<CR>
map <silent> sP :call YanktmpPaste_P()<CR>
endif

"YankRing.vim (ver3.0) via http://www.graphact.com/memo/2007/12/13/168
:set viminfo+=!

"autocomlpop.vim
"let g:AutoComplPop_BehaviorCssOmniPropertyLength = 3