プロフィール

島田圭二

Author:島田圭二
Follow shimanp on Twitter

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
読断と変見内検索
訪問ありがとうございます
最近のコメント
最近のトラックバック
関連リンク
カテゴリー
月別アーカイブ


スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)
vi 文字補完メモ - PHP
viには文字の補完がいくつかあるけど、オムニ補完と辞書補完のメモ。主にPHP。

まずはオムニ補完


オムニ補完はインテリセンス的なやつ。
PHPの場合vim7以降はオムニ補完に対応しているので、
autocmd FileType php set omnifunc=phpcomplete#CompletePHP

をvimrcに追加するだけでOK。
あとctagsで生成されたデータベースもオムニ補完の対象となるらしい。
ちなみにctagsはフォルダ内にあるファイルを読み込んで、
クラス名や関数名などをインデックス化してくれるツールのこと。
windowsの場合はctagsが入ってないので、インストールする必要がある。
ここからダウンロード
ダウンロードして解凍したら、中のexeをパスの通っているフォルダにおく。
僕はvimの直下に置いたけど、system32とかでもいいと思う。
あとはプロンプトでタグりたいディレクトリに移動して
ctags -R

を実行もしくはvimを開いて、カレントをタグりたいディレクトリに移動して、ツールからタグを作成する。

参考URL
http://nanasi.jp/articles/others/ctags.html

設定が完了したら、エディタを開いて、補完したいときにCtrl + X, Ctrl + o を入力する。
ちなみにvimrcでautocmd FileType phpと指定しているので拡張子がphpのファイルでしか補完されない。

次は辞書補完


オムニ補完と似てるけど、自前で辞書を用意してその辞書を参照して補完するのが辞書補完。
まず辞書を用意する。方法は二つある。
まず古いけどvimのサーバーからダウンロードする。
vim online
もう一つはインストールしたPHPのライブラリから自分で作成する。
linux、macなら
php -r '$f=get_defined_functions();echo join("\n",$f["internal"]);'|sort > PHP.dict

windowsだとたぶんエラーになる。少し変えればできるようになるかも。

辞書ファイルを作成したら、適当なとこにおく。
一般的にはたぶん
windowsならホーム/vimfiles/dictionary/
macならホーム/.vim/dictionary/
あたりだと思うdictionaryディレクトリがなければ作成する。
配置したら、vimが辞書ファイルを認識するよう設定擦る必要がある。
vimrcに以下を追加
windows
autocmd FileType php set dictionary=%homepath%/vimfiles/dictionary/PHP.dict

mac
autocmd FileType php set dictionary=~/.vim/dictionary/PHP.dict

別の場所に置いた場合は適宜変更。てかフルパスでないと認識しなかった。

これで設定は完了。
phpファイルを開いて、Ctrl + x, Ctrl + k で文字補完ができる。
ちなみになぜかWindowsでKaoriyaさんからダウンロードしたやつだとコマンドを入力しなくても
自動で補完されたなんでだろう?
通常自動補完したい場合は、ここからダウンロードして、
そのフォルダ構成のままvimのruntimeに置く。
そしてvimrcに
autocmd Filetype php let g:AutoComplPop_CompleteOption='.,w,b,u,t,i,k~/.vim/dictionay/PHP.dict

を設定する必要があると思う。

スポンサーサイト
vi | 【2010-04-21(Wed) 11:30:35】 | Trackback:(0) | Comments:(0)
vimでZen-Coding - HTML入力を効率化する
zen-codingなるものを知った。
マークアップ効率化 - zen-codingでコーディングを倍速に

これはHTMLの入力を簡単にするものらしい。
viでもこの入力方式に準拠したプラグインがあるみたいなので、入れてみた。

1.プラグインダウンロード


以下よりzencoding.vimをダウンロード
ZenCoding.vim

2.ダウンロードしたファイルをプラグインフォルダに配置


ダウンロードしたzencoding.vimを以下に置く
・windows:ホームディレクトリ/vimfiles/plugin
・mac:ホームディレクトリ/.vim/plugin

3.プラグインが認識されてるかチェック


vimを起動して
:scriptnames
を入力してちゃんとzencoding.vimが認識されているかチェック

4.試す


div
とvim上で入力し、<C-y>,(Ctrl + y の後にカンマ)を入力する
<div></div>
となれば成功
このバージョンから補完時の入力が<C-z>から<C-y>,に変更したらしい。
てかはじめカンマを入力し忘れて、ちょっと悩んだ。。。

てかすごい便利!これは効率が上がる。

vi | 【2010-03-17(Wed) 15:46:08】 | Trackback:(0) | Comments:(2)
viでホームポジションを死守するためのショートカットメモ
エディタで文章やプログラムを書いているときに一番嫌なのがホームポジションを
乱されることだ。
個人的にEnterやバックスペースは遠いので極力打ちたくない。。。
ってことで、いくつショートカットをメモしておく

・Ctrl+m 文字確定、改行、てかほとんどEnter代わり
・Ctrl+h 文字削除
・Ctrl+c,Ctrl+[ 挿入モード解除。
・Ctrl+^ 日本語入力ON/OFF。

ただ日本語入力の切り替えは普通に切り替えキーを押したほうがいいような気がするので
独自で割り当てたほうがいい気がする。
_vimrcを開いて適当なところに以下を追加
inoremap <silent> <C-j> <C-^>

とりあえずCtrl+jに割り振ってみた。
一応Ctrl+jは挿入モードで改行みたいな動作するけど、Ctrl+mがあるからいらいない
ということで割り振った。

あと挿入モードでノーマル時のhjklで上下左右移動したいけど、
割り当てる場合、Ctrl+hは削除でよく使うからな。。。
やっぱりある程度独自の設定にしないと気分よく使えないのかも。
挿入モードで矢印を割り当てる設定
inoremap <C-j> <DOWN>
inoremap <C-k> <UP>
inoremap <C-l> <RIGHT>
inoremap <C-h> <LEFT>


追記:
結局vimrcは以下のようにした
"キーマップ
"入力モード
inoremap <C-a> <Home>
inoremap <C-e> <End>
inoremap <C-d> <DEL>
inoremap <C-b> <BS>
inoremap <C-q> <C-^>
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
"日付挿入
inoremap <C-d>d <C-R>=strftime('%Y/%m/%d (%a)')<CR>
"括弧入力補助
inoremap { {}<LEFT>
inoremap [ []<LEFT>
inoremap ( ()<LEFT>
inoremap " ""<LEFT>
inoremap ' ''<LEFT>
inoremap < <><LEFT>

"コマンドモード
cnoremap <C-a> <Home>
cnoremap <C-e> <End>
cnoremap <C-d> <DEL>
cnoremap <C-b> <BS>
cnoremap <C-q> <C-^>
cnoremap <C-h> <Left>
cnoremap <C-j> <Down>
cnoremap <C-k> <Up>
cnoremap <C-l> <Right>

"ヴィジュアルモード
vmap <Tab> :s/^/\t/<CR>gv
vmap <S-Tab> :s/^\t//<CR>gv
vmap / :s/^/\/\//<CR>


vi | 【2009-08-02(Sun) 20:03:47】 | Trackback:(0) | Comments:(0)
vi設定メモ
たいした設定してないけど、忘れるのでメモ
vimrc
" 行番号表示
set nu
"バックアップとらない
set nobk
"クリップボード
set clipboard=unnamed
"タブ数
set tabstop=4
"タブをスペースにする
set expandtab
"自動インデント時の空白の数
set shiftwidth=4
"tabキーを押したときの空白の数
set softtabstop=0
"改行時に自動インデントを行う
set smartindent
"インクリメントサーチを行う
set incsearch

gvimrc
"背景 カラー設定:
colorscheme darkblue
"横スクロール
set guioptions+=b
"ラップしない
set nowrap


vi | 【2009-02-10(Tue) 12:00:29】 | Trackback:(0) | Comments:(0)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。