2011/06/24 (Fri)
現在の環境と.vimrcと
参加したからには、記しておくのが礼儀でしょう。
というわけで、
【Vim7.3】 こちらhttp://sites.google.com/site/fudist/Home/vim-nihongo-banからダウンロードしたものを利用しています。
香り屋版でない理由は、単に、ポータブルなものを使いたかったため。
【Vim歴】 おおよそ1年ほど?ただし、開発に使ったことがないので腕は未熟。
【使用中のプラギン】
- pathogen
- utl
- ファイル中のURLやファイル名を開くことができる。
- vimwiki
- scrooloose-nerdcommenter
- <Leader>c<Space>で現在行をコメントアウトできる。
- unite
- あらゆるものをアイテムとして選択・管理する。
- neocomplcache
- 高度な補完を実現する。
- quickrun
- yankring
- ペースト後、<C-n><C-p>でヤンク履歴をさかのぼって貼り替えることができる。
- speeddating
- ファイル上に書かれている日付の記述を<C-a><C-x>で増減できる。
- smartword
- w,b,e(単語移動)の移動幅を大雑把な挙動に修正。
- ank_cc
- 現在バッファの文字数をカウントする。
- Rename
- savevers
- ファイルの世代バックアップを作る。
- smooth_scroll
- <C-d><C-u><C-f><C-b>のスクロールをスムーズにする。
- buftabs
- ステータスラインやモードラインにバッファリストを表示する。
【.vimrc】
以下、私の.vimrcです。
Vimの取得元のfudistさんの設定を元にしたものが多いです。
" スタートアップ "============== " scriptencodingと、このファイルのエンコードが一致するよう注意! " scriptencodingは、vimの内部エンコードと同じにすると問題が起きにくい。 " 改行コードは set fileformat=unix に設定するとunixでも使えます。 scriptencoding cp932 " システム設定 "============= "\.vimや\vimfilesを$CFGHOMEと定義する "unix,win32でのpathの違いを吸収 "$CFGHOMEはユーザーランタイムディレクトリを示す。 "ランタイムパスを通す必要のあるプラグインを使用する場合、 "$CFGHOMEを使用すると Windows/Linuxで切り分ける必要が無くなる。 "例) vimfiles/qfixapp (Linuxでは~/.vim/qfixapp)にランタイムパスを通す場合。 "set runtimepath+=$CFGHOME/qfixapp if has('unix') let $CFGHOME=$HOME.'/.vim' else let $CFGHOME=$VIM.'\vimfiles' "let $CFGHOME=$VIM.'\.vim' endif " 環境変数HOMEがないときは$VIM/HOMEを$HOMEにする if !exists("$HOME") let $HOME=$VIM/HOME endif " UTF-8化を_vimrcで行う場合以下を有効にしてね。 "source $CFGHOME/pluginjp/encode.vim " _vimrcでscriptencodingと異なる内部エンコーディングに変更する場合、変更後に改めてscriptencodingを指定しておくと問題が起きにくくなります。 "scriptencoding cp932 " マウスを有効にする。 if has('mouse') set mouse=a endif " バックアップ関係 " ファイルの上書きの前にバックアップを作る/作らない " set writebackupを指定してもオプション 'backup' がオンでない限り、バックアップは上書きに成功した後に削除される。 set nowritebackup " バックアップ/スワップファイルを作成する/しない。 set nobackup "set noswapfile "set backup " バックアップを有効にする set backupext=.bcu " バックアップファイルの拡張子 " バックアップファイルを作るディレクトリ set backupdir=~/auBcu/,. "バックアップを/auBcuかまたは編集されたファイルと同じディレクトリに取る let &directory = &backupdir " スワップファイル(クラッシュ時に復元用)をバックアップディレクトリに作成 if version >= 703 "再読込、vim終了後も継続するアンドゥ(7.3) set undofile "アンドゥの保存場所(7.3) set undodir=~/auBcu/,. endif " viminfoを作成しない。 " set viminfo= " ※フラグ解説:'マーク,<レジスタ行,sレジスタ(kb),h'hlsearch'無効,rリムーバルメディア,%バッファリストの保存復元 set viminfo='20,<50,s10,h,ra:,rb:,% "viminfo-fileに保存される内容 set viminfo+=n$VIM/.viminfo "viminfoを作成する場所 " 環境・入力 "========= " 設定 set winaltkeys =no "メニューバーと<M->が被ったときに、メニューバーにアクセスしない set virtualedit=block "Visual blockモードでフリーカーソル(仮想編集:文字のない場所にもカーソルを置ける)を有効にする set nrformats-=octal "+ 8進数を無効にする。<C-a>,<C-x>(加算と減算)などに影響する。 "set clipboard+=unnamed "+クリップボードを共有。 set modeline "モードライン(ファイルのヘッダ、フッタに書かれたvi用オプション)を有効にする set formatoptions+=mM "日本語の行の連結時には空白を入力しない。テキスト挿入中の自動折り返しを日本語に対応させる set completeopt=menu,menuone,longest,preview " 補完機能を有効にする set browsedir=buffer " ファイルブラウザ開始時の初期ディレクトリ (last 前回にファイルブラウザでファイルを選択したディレクトリ buffer バッファで開いているファイルのディレクトリ current カレントディレクトリ) "set wildmode=list:full " コマンドラインで、リスト表示,最長マッチモード(要wildchr) " イベントハンドラ set confirm " バッファへの変更を保存しないで終了するとき、確認する set autoread " 他で書き換えられたら自動で読み直す " windows版gvimで、勝手にimeがon状態で始まるのを是正 "set iminsert=0 "set imsearch=-1 " エンコーディング setglobal fileencoding=cp932 " +新規作成されるファイルエンコードをcp932にしたい set fileencodings=iso-2022-jp,utf-8,cp932,euc-jp,default,latin "読み込みで文字コード認識間違いをなるべく減らす set fileformats=dos,unix,mac " +改行コードの自動認識(新規作成されるファイルフォーマットをdosにしたい) " タブ文字や空白文字、インデントの扱い set expandtab "タブを使わず、空白で代行(タブを入力するときはc-v<TAB>) set foldmethod=marker "+折り畳みの種類 set tabstop=4 " いわゆる^Iの見かけのタブ幅。ファイル内の <tab> "set shiftwidth=2 "cindentやautoindent時や>>をタイプしたときに挿入されるタブの幅(tabstopと揃えておくといい) set shiftwidth=4 "cindentやautoindent時や>>をタイプしたときに挿入されるタブの幅(tabstopと揃えておくといい) "set softtabstop=2 "<Tab>の挿入や<BS>の使用などの編集操作をするときの<Tab>が対応する空白の数 set softtabstop=4 "<Tab>の挿入や<BS>の使用などの編集操作をするときの<Tab>が対応する空白の数 set autoindent " 新しい行を挿入したとき、現在行と同じインデントを適用する(noautoindent:インデントしない) set cindent " cプログラムファイルの自動インデントを行う set cinoptions+=:0 "Cインデントの設定(:h cinoptions-values参照) set timeoutlen=3500 "キーコードやマッピングされたキー列が完了するのを待つ時間(ミリ秒)。キータイプのタイムアウト時間 set history=50 " : によるコマンドと以前に使った検索パターンの履歴ヒストリの保存数 " ここにカンマ区切りで登録されたパスに置かれたファイルは、ファイル名のみでアクセスできる。 ""let &path +=$VIM/siic/settings,$VIMRUNTIME/plugin/myinstallplugin set path +=$VIM/siic/settings/,$VIMRUNTIME/plugin/myinstallplugin/ set whichwrap=b,s,[,],<,>,l "以下のフラグで指定した移動コマンドでキャレットが行の端まで来たら次/前の行に " <Leader>および、<LocalLeader>に使うキーを決める "let mapleader = "^Q" let mapleader = "," let maplocalleader = "-" " 表示設定 "========= " ※gvimの色テーマは.gvimrcで指定する。 " 基本設定 set wrap " 行を折り返す " マクロ実行中などの画面再描画を行わない。 "set lazyredraw " ウィンドウサイズ・レイアウト set lines=40 " ウィンドウサイズ縦幅 デフォルトは24 set columns=100 " ウィンドウサイズ横幅 デフォルトは80 set helpheight=30 "ヘルプファイルを開いたときのウィンドウの高さ(デフォルト値=20) set scrolloff=2 " カーソルの上または下には、最低でもこのオプションに指定した数の行が表示される set winwidth=83 "ウィンドウ分割時カレントウィンドウのデフォルト幅 " 情報表示(インフォメーション) set shm=filmnrwxToO "<C-g>などで、表示される情報のフォーマット set foldcolumn=3 "左端に折り畳みの階層を表示 " ステータスライン set statusline=%n-%t\ %m%R%H%W%y\ %17([%{&fenc}][%{&ff}]%)%=%(%l(/%L),%v%)\ %<%12P " 視覚情報 set list "不可視文字(Tabや空白)を表示する。 set listchars=tab:>-,trail:_,extends:>,precedes:< " 不可視文字の表示方法 set showmatch matchtime=1 "括弧の対応表示時間 " 全角スペースを表示 if has('syntax') " コメント以外で全角スペースを指定しているので、scriptencodingと、 " このファイルのエンコードが一致するよう注意! " 強調表示されない場合、ここでscriptencodingを指定するとうまくいく事があります。 "scriptencoding cp932 syntax on function! ActivateInvisibleIndicator() highlight ZenkakuSpace cterm=underline ctermfg=darkgrey gui=underline guifg=darkgrey " 全角スペースを明示的に表示する。 silent! match ZenkakuSpace / / endfunction augroup InvisibleIndicator autocmd! autocmd VimEnter,BufEnter * call ActivateInvisibleIndicator() augroup END endif " 挿入モード時、ステータスラインのカラー変更 let g:hi_insert = 'highlight StatusLine guifg=darkblue guibg=darkyellow gui=none ctermfg=blue ctermbg=yellow cterm=none' if has('syntax') syntax on augroup InsertHook autocmd! autocmd InsertEnter * call s:StatusLine('Enter') autocmd InsertLeave * call s:StatusLine('Leave') augroup END endif let s:slhlcmd = '' function! s:StatusLine(mode) if a:mode == 'Enter' silent! let s:slhlcmd = 'highlight ' . s:GetHighlight('StatusLine') silent exec g:hi_insert else highlight clear StatusLine silent exec s:slhlcmd endif endfunction function! s:GetHighlight(hi) redir => hl exec 'highlight '.a:hi redir END let hl = substitute(hl, '[\r\n]', '', 'g') let hl = substitute(hl, 'xxx', '', '') return hl endfunction " 検索 "======= set wrapscan "検索時にファイルの最後まで行ったら最初に戻る (nowrapscan:戻らない) set hlsearch "検索文字の強調(ハイライト)表示 set tags=./tags,tags,../tags "tagsファイルの読み込み先 " Esc連打でハイライト消す nmap <silent> <Esc><Esc> :nohlsearch<cr><Esc> " w,bの移動で認識する文字 "set iskeyword=a-z,A-Z,48-57,_,.,-,> " vimgrep をデフォルトのgrepとする場合internal set grepprg=internal " diffの設定 if has('win32') || has('win64') set diffexpr=MyDiff() function! MyDiff() let opt = '-a --binary ' if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif let arg1 = v:fname_in if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif let arg2 = v:fname_new if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif let arg3 = v:fname_out if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif let eq = '' if $VIMRUNTIME =~ ' ' if &sh =~ '\<cmd' let cmd = '""' . $VIMRUNTIME . '\diff"' let eq = '"' else let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"' endif else let cmd = $VIMRUNTIME . '\diff' endif silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq endfunction endif " difforig(バッファと元ファイルでの更新を比較・変更箇所表示)を使用可能にする。 command! DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis " ファイルまたはバッファ番号を指定して差分表示。#なら裏バッファと比較 command! -nargs=? -complete=file Diff if '<args>'=='' | browse vertical diffsplit|else| vertical diffsplit <args>|endif " パッチコマンド set patchexpr=MyPatch() function! MyPatch() :call system($VIM."\\'.'patch -o " . v:fname_out . " " . v:fname_in . " < " . v:fname_diff) endfunction " キーマップ "========== " 特定キーの無効化 " インサートモードで間違って出してほしくないキーを無効にする nnoremap <F1> <Nop> noremap <F13> <Nop> inoremap <F13> <Nop> cnoremap <F13> <Nop> noremap <F15> <Nop> inoremap <F15> <Nop> cnoremap <F15> <Nop> noremap <F16> <Nop> inoremap <F16> <Nop> cnoremap <F16> <Nop> inoremap <M-j> <Nop> " 強制全保存終了を無効化。 nnoremap ZZ <Nop> " 設定・fixに近い "ノーマルモード "カーソル移動を直感的なgjgkに変える nnoremap j gj|nnoremap k gk|vnoremap j gj|vnoremap k gk nnoremap gj j|nnoremap gk k|vnoremap gj j|vnoremap gk k " hが越えられない壁があるのを是正 nnoremap h <Left> vnoremap h <Left> "インサートモード "インサートモードでの削除コマンドにundoを有効化させる inoremap <c-h> <c-g>u<c-h> inoremap <c-u> <c-g>u<c-u> "inoremap <c-w> <c-g>u<c-w> " ノーマルモードで入力をする " 改行を挿入する noremap <C-j> :a<CR><CR>.<CR> noremap <C-k> :i<CR><CR>.<CR> "空白を一つ挿入する nnoremap <M-SPACE> i<SPACE><ESC><Right> " 既存キーマップを楽なキーマップに割り当て換える "<Space>でも折り畳み開閉 noremap <Space> za "使いづらいキーの再配置 "使いづらい':'と、使用頻度が低い';'','の処理 noremap ; : noremap t ; noremap T , "'+'や<F4>でクリップボードアクセス noremap + "+ noremap <F4> "+ "ノーマルモードでのTipsを追加する "現在地をVimに覚えさせる noremap <C-@> m` ".vimrcをすぐに開くコマンド noremap <Leader>ev :e $VIM/.vimrc<CR> " <C-g>で、表示される情報を自分好みにする noremap <C-g> :echo bufname("%")'['&fenc']['&ff']'(strftime("%Y-%m-%d %X",getftime(bufname("%")))) "["b:charCounterCount"字]" "0x"FencB()"\n[CD:"getcwd()"]"<CR> "window/buffer操作 "ウィンドウやバッファやタブを閉じる "レイアウトを保持してバッファを閉じるコマンド com! Kwbd let kwbd_bn= bufnr("%")|bn|exe "bdel ".kwbd_bn|unlet kwbd_bn|"ウィンドウレイアウトを保持したままバッファを閉じるコマンド nmap dc :bd<CR>|"バッファを閉じる nmap dr :Kwbd<cr>|"レイアウトを保持してバッファを閉じる nmap d<C-w> <C-w>c|"窓を閉じる nmap dz :tabc<CR>|"タブを閉じる nmap cd :bd<CR>|"バッファを閉じる "nmap cd :Kwbd<cr>|"レイアウトを保持してバッファを閉じる "emacs風の窓操作 noremap <C-w>0 <C-w>c noremap <c-w>1 <c-w>o noremap <C-w>3 <C-w>v noremap <C-w>2 <C-w>s "次/前のバッファおよび次/前タブへナビゲート noremap <M-h> :bp<CR> noremap <M-l> :bn<CR> noremap <M-i> <C-^> noremap <M-[> gT noremap <M-]> gt " 縦分割のwindowの幅を操作 noremap <C-w>a 5<C-w>> noremap <C-w>A 5<C-w><lt> "windowの高さを操作 noremap <C-w>e 5<C-w>+ noremap <C-w>E 5<C-w>- "アプリケーション窓を最大化する/元に戻す noremap <M-w>x :simalt ~x<CR> noremap <M-w><M-x> :simalt ~x<CR> noremap <M-w>r :simalt ~r<CR> noremap <M-w><M-r> :simalt ~r<CR> " カーソル移動コマンド "一つ下の他窓をスクロールさせる noremap <S-A-f> <C-w>w<C-f><C-w>W noremap <S-A-b> <C-w>w<C-b><C-w>W noremap <S-A-j> <C-w>w<C-e><C-w>W noremap <S-A-k> <C-w>w<C-y><C-w>W "ビジュアルモード時vで行末まで選択 vnoremap v $h "インサートモードで移動コマンド inoremap <C-g>h <Left> inoremap <C-g>l <Right> inoremap <C-g><C-e> <Esc><C-e>a inoremap <C-g><C-y> <Esc><C-y>a inoremap <C-g><C-f> <Esc><C-f>a inoremap <C-g><C-b> <Esc><C-b>a " インサートモードでの編集 "インサートモードで<C-d>デリート機能 inoremap <C-d> <Del> "C-Tabでタブ挿入(Tab単独押しで補完を実行するときの代替キー) inoremap <C-Tab> <Tab> "インデントレベルを上げる(タブを消す) inoremap <C-g><C-d> <C-d> "undoフラグはctrlを押しっぱなしでも有効 inoremap <c-g><c-u> <c-g>u "インサートモードでキル&ペースト inoremap <c-g><C-k> <ESC>d$i inoremap <F4> <ESC>"+pa "i_<C-w>でも窓を渡る(本来は単語削除) inoremap <C-w> <Esc><C-w> inoremap <C-b> <C-g>u<C-w> "コマンドモードでのTips "編集中のファイルの場所をカレントディレクトリに設定する cnoremap <C-x> %:h "コマンドモードでクリップボード内容をペースト cnoremap <F4> <C-r>+ "ビジュアルモードでのTips "0,0,0などの並んだ数字を選択して連番にするコマンドhttp://d.hatena.ne.jp/fuenor/20090907/1252315621 vnoremap <silent> <F4><C-a> :ContinuousNumber <C-a><CR> vnoremap <silent> <F4><C-x> :ContinuousNumber <C-x><CR> command! -count -nargs=1 ContinuousNumber let c = col('.')|for n in range(1, <count>?<count>-line('.'):1)|exec 'normal! j' . n . <q-args>|call cursor('.', c)|endfor " 関数 "===== "FencB() : <C-g>で使用;カーソル上の文字コードのエンコードに応じた表現を返す function! FencB() let c = matchstr(getline('.'), '.', col('.') - 1) let c = iconv(c, &enc, &fenc) return s:Byte2hex(s:Str2byte(c)) endfunction function! s:Str2byte(str) return map(range(len(a:str)), 'char2nr(a:str[v:val])') endfunction function! s:Byte2hex(bytes) return join(map(copy(a:bytes), 'printf("%02X", v:val)'), '') endfunction " 単純なスクリプト "============== " ファイルを開いたら前回のカーソル位置へ移動 augroup vimrcEx autocmd! autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line('$') | \ exe "normal! g`\"" | \ endif augroup END " 各種プラグイン設定 "=================== " 各種syntax有効化 " 単純に、グローバル変数だけを設定したもの "チェンジログでエントリ作成時に表示されるユーザ名 let g:changelog_username ="leafcage <hoge@xxx.com>" "vimball.vimでインストールするプラグインのインストール先を変更する "let g:vimball_home = "$CFGHOME/bundle/vba" "vimwiki.vimで使うwikiのリスト let g:vimwiki_list = [{'path':'~/dc/stgmemwk/','index':'stgmemwk' },{'path':'~/dc/siicwk/','index':'siicwk' },{'path':'~/dc/yukokwk/','index':'yukokwk' },{'path':'~/dc/kywrd/','index':'kywrd' },] "buftabs.vim(ステータスラインにバッファリストを表示) let g:buftabs_only_basename=1 "バッファタブにパスを省略してファイル名のみ表示する "yankring.vim "グローバル変数 let g:yankring_max_history = 50 let g:yankring_history_dir = '$VIM' let g:yankring_clipboard_monitor = 1 "マッピング noremap <Leader>y :YRShow<CR> "utl.vim(リンクやファイルを開いたり別プログラムに渡す) "Enterでリンク先を開く nnoremap <silent> <cr> :silent exe 'Utl'<cr> "URL を Firefox で開く(URLが含まれる行で \gu ) "let g:utl_rc_app_browser = 'silent !start C:\Program Files\Mozilla Firefox\firefox.exe %u' "ディレクトリをあふで開く( :Gu . でカレントディレクトリを開ける) "let g:utl_mt_text_directory = ':!start C:\Program Files\afx\AFXCMD.EXE -L"%P\"' "pathogen.vimを有効化する filetype off "一度ファイル判定をoffにしないとftdetectをロードしてくれないので。 call pathogen#runtime_append_all_bundles() call pathogen#helptags() filetype plugin indent on "ファイル判定をonにする "savevers.vimで世代別バックアップを取る "バックアップファイルの設定" savevers.vimのためにパッチモードにします set patchmode=.vbcu "カンマで区切られたバックアップを作成するファイル名です "*.c,*.h,*.vim" let savevers_types = "*" "バックアップファイルが書き込まれるディレクトリです ここでは、オプション"backupdir"と同じディレクトリにしています let savevers_dirs = &backupdir "バックアップファイルとの比較でウィンドウのサイズを変更する場合は0 let versdiff_no_resize=1 "ウィンドウのサイズを変更する場合にどれだけの幅までを許可するか "let versdiff_no_resize=80 "migemo.vim if has('migemo') set migemo set migemodict=/opt/local/share/migemo/utf-8/migemo-dict endif "unite.vim "入力モードで開始する "let g:unite_enable_start_insert=1 "バッファ一覧・ファイル一覧・レジスタ一覧・mru(最近利用したファイル)一覧・全て一覧 nnoremap <silent> <Leader>b :<C-u>Unite buffer<CR> nnoremap <silent> <Leader>g :<C-u>Unite buffer file_mru<CR> nnoremap <silent> <Leader>f :<C-u>UniteWithBufferDir -buffer-name=files file<CR> nnoremap <silent> <Leader>r :<C-u>Unite -buffer-name=register register<CR> nnoremap <silent> <Leader>m :<C-u>Unite file_mru<CR> nnoremap <silent> <Leader>a :<C-u>UniteWithBufferDir -buffer-name=files buffer file_mru bookmark file<CR> "Uniteのソースその他 "unite-outline nnoremap <silent> <Leader>uo :<C-u>Unite outline<CR> "unite-font nnoremap <silent> <Leader>uf :<C-u>Unite font<CR> "ウィンドウを分割して開く au FileType unite nnoremap <silent> <buffer> <expr> <C-k> unite#do_action('split') au FileType unite inoremap <silent> <buffer> <expr> <C-k> unite#do_action('split') "ウィンドウを縦に分割して開く au FileType unite nnoremap <silent> <buffer> <expr> <C-l> unite#do_action('vsplit') au FileType unite inoremap <silent> <buffer> <expr> <C-l> unite#do_action('vsplit') "ESCキーを2回押すと終了する au FileType unite nnoremap <silent> <buffer> <ESC><ESC> :q<CR> "確定を<c-j>でも "au FileType unite noremap <silent> <buffer> <expr> <C-j> unite#do_action('open') au FileType unite nmap <silent><buffer> <C-j> <Plug>(unite_do_default_action) au FileType unite imap <silent><buffer> <C-j> <Plug>(unite_do_default_action) "neocomplcache.vim "グローバル変数 let g:neocomplcache_enable_at_startup = 1 "ネオコン有効化 "let g:neocomplcache_disable_auto_complete = 1 "自動補完を無効にする let g:neocomplcache_enable_smart_case = 1 "スマートケィス(大文字が含まれている場合は区別する) let g:neocomplcache_enable_underbar_completion = 1 "アンダーバー_を区切りとした曖昧検索 "let g:neocomplcache_enable_camel_case_completion = 1 "大文字を区切りとした曖昧検索 "let g:neocomplcache_enable_auto_select = 1 "ポップアップを出すとき自動的に一番上の候補を選択状態 let g:neocomplcache_min_syntax_length = 3 "シンタックス最小キャッシュ文字数 let g:neocomplcache_snippets_dir = $VIM.'/settings/neocon_snippets' "スニペットプラグインディレクトリ let g:neocomplcache_temporary_dir = $VIM.'/settings/.neocon' "ネオコンの一時情報を書き出すディレクトリ let g:neocomplcache_enable_quick_match = 1 "-を押すと補完の横に省入力英数字を表示 "ネオコンが未対応のファイルタイプでのキーワード収集パターン(ファイルタイプ別に指定) if !exists('g:neocomplcache_keyword_patterns') let g:neocomplcache_keyword_patterns = {} endif let g:neocomplcache_keyword_patterns['default'] = '\h\w*' "単語のヘッド\単語を構成する文字(数字やアルファベット)* " ファイルタイプに辞書ファイルパスを関連づけるディクショナリ(sfdのタグファイル保管に役立つかも) let g:neocomplcache_dictionary_filetype_lists = { \ 'default' : '', \ } "マッピング "Vim標準の補完をネオコンに置き換える "ファイル名補完 inoremap <expr><C-x><C-f> neocomplcache#manual_filename_complete() "オムニ補完 inoremap <expr><C-x><C-o> neocomplcache#manual_filename_complete() "キーワード補完 inoremap <expr><C-n> pumvisible() ? "\<C-n>" : neocomplcache#manual_keyword_complete() "ネオコン基本操作 "imap <expr><TAB> neocomplcache#sources#snippets_complete#expandable() ? “\<Plug>(neocomplcache_snippets_expand)” : pumvisible() ? “\<C-n>” : “\<TAB>” "カーソル前の文字列がスニペットのトリガであるなら、スニペットを展開する imap <expr><C-k> neocomplcache#sources#snippets_complete#expandable() ? "\<Plug>(neocomplcache_snippets_expand)" : "\<C-n>" "候補の共通箇所まで補完する inoremap <expr><C-l> neocomplcache#complete_common_string() "決定してポップアップを閉じる inoremap <expr><C-y> neocomplcache#close_popup() "キャンセルしてポップアップを閉じる inoremap <expr><C-e> neocomplcache#cancel_popup() "ネオコンによって挿入した補完を元に戻す inoremap <expr><C-x><C-g> neocomplcache#undo_completion() inoremap <expr><C-x>g neocomplcache#undo_completion() "ポップアップが出ているときの挙動を快適にする "バックスペースしたときポップアップを閉じる inoremap <expr><C-h> neocomplcache#smart_close_popup()."\<C-h>" "ネオコン設定変更操作 "スニペットを編集する noremap <Leader>es :<C-u>vertical belowright NeoComplCacheEditSnippets
コメント
Lilly2011/07/09 14:53Your article pefreclty shows what I needed to know, thanks!
dffotajh2011/07/10 00:09VaBT7h <a href="http://fkcleeyfxcha.com/">fkcleeyfxcha</a>
fetfkcnv2011/07/11 20:08cMj3yn <a href="http://xoztczqxteyr.com/">xoztczqxteyr</a>
ysxejrsdodp2011/07/12 22:58yBFkbk , [url=http://yflvvzqyerae.com/]yflvvzqyerae[/url], [link=http://hqqfcthcgcfx.com/]hqqfcthcgcfx[/link], http://vniifooqvwvo.com/