ctrlp.vimのキーバインドを変えてみる
kien/ctrlp.vim https://github.com/kien/ctrlp.vim
候補の中から任意のファイルを開くときに、sp、vsp、tabでも開くことができる。
デフォルトでは以下のような設定。
:splitで開く :vertical splitで開く :tabで開く
キーマッピングを変えるには
こんな感じで。
例:
let g:ctrlp_prompt_mappings = { \ 'AcceptSelection("t")': ['<c-a>'], \ }
これで、
vundleからneobundleに乗り換える
超絶、楽である。
vundle.vimを使っていたので削除してしまう。
$ cd .vim $ rm -rf bundle $ rm -rf vundle
改めてディレクトリを作成&neobundle.vimをgitでクローンしてくる。
$ mkdir bundle $ cd bundle $ git clone https://github.com/Shougo/neobundle.vim.git
$ vi .vimrc "---------------------------------------------------- " neobundle.vim "---------------------------------------------------- set nocompatible filetype plugin indent off if has('vim_starting') set runtimepath+=~/.vim/bundle/neobundle.vim/ call neobundle#rc(expand('~/.vim/bundle/')) endif NeoBundle 'Shougo/neobundle.vim' NeoBundle 'Shougo/neocomplcache' NeoBundle 'Shougo/unite.vim' NeoBundle 'Shougo/vimproc' NeoBundle 'ujihisa/unite-locate' NeoBundle 'violetyk/cake.vim' NeoBundle 'tpope/vim-surround' NeoBundle 'taglist.vim' NeoBundle 'ZenCoding.vim' NeoBundle 'ref.vim' NeoBundle 'The-NERD-tree' NeoBundle 'The-NERD-Commenter' NeoBundle 'fugitive.vim' NeoBundle 'TwitVim' NeoBundle 'thinca/vim-quickrun' NeoBundle 'thinca/vim-localrc' NeoBundle 'dbext.vim' NeoBundle 'rails.vim' NeoBundle 'Gist.vim' NeoBundle 'motemen/hatena-vim' NeoBundle 'mattn/webapi-vim' NeoBundle 'mattn/unite-advent_calendar' NeoBundle 'open-browser.vim' NeoBundle 'ctrlp.vim' NeoBundle 'jelera/vim-javascript-syntax' " Color Scheme NeoBundle 'altercation/vim-colors-solarized' filetype plugin indent on
.vimrcに設定書いたらvimを再起動してNeoBundleコマンドでインストールしてみる。
:NeoBundleInstall
バッチリ入った。
ついでにUniteからneobundle使いたいので、こちらを参考に
https://github.com/Shougo/vimproc/blob/master/doc/vimproc.jax
vimprocを入れたら以下のようにmakeする。
$ make -f make_gcc.mak
vimporcも入れたのでこれで次から
:Unite neobundle/install:!
とかできちゃう!
やったね。
Apache Solrのインストール、設定
CentOSにApache Solrのインストール、設定をする。
(手順が多少アレだが、とりあえずメモがてら。時間があれば逐次修正する。)
※Jettyのインストール
Jettyのダウンロード&解凍
# wget http://dist.codehaus.org/jetty/jetty-6.1.26/jetty-6.1.26.zip # unzip jetty-6.1.26.zip
シンボリックリンクをはる
# ln -s /usr/local/src/jetty-6.1.26 /usr/local/jetty
jettyのコネクタを編集する
# vi /usr/local/jetty/etc/jetty.xml <Call name="addConnector"> <Arg> <New class="org.mortbay.jetty.nio.SelectChannelConnector"> <Set name="host"><SystemProperty name="jetty.host" /></Set> <!-- こいつをコメントアウト <Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set> --> <!-- ↓追記する --> <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set> <!-- ↑追記する --> <Set name="maxIdleTime">30000</Set> <Set name="Acceptors">2</Set> <Set name="statsOn">false</Set> <Set name="confidentialPort">8443</Set> <Set name="lowResourcesConnections">5000</Set> <Set name="lowResourcesMaxIdleTime">5000</Set> </New> </Arg> </Call> <Call name="addConnector"> <Arg> <New class="org.mortbay.jetty.ajp.Ajp13SocketConnector"> <Set name="port">8984</Set> </New> </Arg> </Call>
ajp_proxyを使ってapacheと連携する
※mod_proxy_ajpを読み込んでいる前提
# vi /usr/local/apache2/conf/httpd.conf LoadModule proxy_ajp_module modules/mod_proxy_ajp.so #有効になっていることを確認。 ProxyPass /jetty/ ajp://localhost:8984/ #最下部あたりに追記
パスを設定する
# vi /etc/default/jetty JAVA_HOME=/usr/local/jdk1.6.0_24/ JAVA_OPTIONS="-Dsolr.solr.home=/usr/local/solr/solr/hoge/solr/ $JAVA_OPTIONS" JETTY_HOME=/usr/local/jetty JETTY_USER=root JETTY_LOGS=/var/log/solr/
※Solrのインストール
Apache Solrのダウンロード&解凍
# wget http://ftp.riken.jp/net/apache//lucene/solr/3.4.0/apache-solr-3.4.0-src.tgz # tar xvzf apache-solr-3.4.0-src.tgz
シンボリックリンクをはる
# ln -s /usr/local/src/apache-solr-3.4.0 /usr/local/solr
exampleフォルダをコピーする
# cd /usr/local/src/apache-solr-3.4.0/solr # cp -r example hoge
lucene-gosenをゲットしてくる
# cd /usr/local/src/apache-solr-3.4.0/solr/hoge/lib # wget http://lucene-gosen.googlecode.com/files/lucene-gosen-1.1.1-ipadic.jar
solr.warをコピーする
# wget http://ftp.riken.jp/net/apache//lucene/solr/3.4.0/apache-solr-3.4.0.tgz # tar xf apache-solr-3.4.0-src.tgz # cp /apache-colr-3.4.0/example/webapps/solr.war /usr/local/src/apache-solr-3.4.0/solr/hoge/webapps/solr.war
※今回はなぜだか、solr.warがsrcの圧縮ファイルには無かった。
少々、面倒だが、上記の場合はsrcじゃないほう(apache-solr-3.4.0.tgz)を解凍してくる。
usr/local/jetty/webapps/solr.warファイルにlucene-gosenファイルを突っ込み、
solr.warファイルを設置して対応
# mv solr.war solr.zip # unzip solr.zip # mv lucene-gosen-1.1.1-ipadic.jar WEB-INF/lib # zip solr_war_in_lucene.zip admin/ favicon.ico index.jsp META-INF/ WEB-INF/ # mv solr_war_in_lucene.zip solr.war # cp /usr/local/src/apache-solr-3.4.0/solr/hoge/webapps/solr.war /usr/local/jetty/webapps/
apache再起動する
# /usr/local/apache2/bin/httpd restart
jettyを起動する
# /usr/local/jetty/bin/jetty.sh restart
ついでにjettyをinit.dに登録しておく
# cp jetty.sh /etc/init.d/jetty # cd /etc/init.d/ # chkconfig jetty on # chkconfig jetty --list # cd rc3.d/ # ll lrwxrwxrwx 1 root root 15 Oct 5 20:04 S99jetty -> ../init.d/jetty
あとは、http://localhost:8983/solr/admin/
にアクセスして管理画面が正常に表示されていれば完了。
お疲れ様でしたー。
Vimで縦分割から横分割へ切り替える
全然、知らなかったので個人的にメモ。
例えば、splitでファイルを2つ開いている時に、
vsplitに切り替えたい時に使える。
もちろん、その逆もいける。
実際にやってみるとよく分かる。
J K L H ※J、K、L、Hは全てLargeです。
これは、便利すぎ!
cake.vimに任意のキーバインドを割り当てる
vim&CakePHPで開発する時に便利なプラグイン。
これを使えば、MVC間の移動の煩わしさから解放されます。
CakePHP用のvimプラグイン、『cake.vim』1.2をリリースしました。 - yuhei.kagaya
CakePHP用のvimプラグイン、『cake.vim』を作ってみた。 - yuhei.kagaya
cake.vimのダウンロードはコチラ。
http://www.vim.org/scripts/script.php?script_id=3589
例えば、vimでhoge_controller.phpを開いている時に
views/hoge/index.ctpを編集したい!と思ったときに、通常だと
:e ../views/hoge/index.ctp
と、いった具合に開きたいファイル名までのパスを指定する必要があります。
そんなときcake.vimを使えば、
:Cview index
で、:e ../views/hoge/index.ctpと同じことが行えます。
もし、/views/hoge配下に複数ファイルがあれば、
:Cview の後にtabを押下すれば/views/hoge配下にある全ファイルをリストアップしてくれます。
また、任意のキーバインドを割り当てておくと、
更に高速に任意のファイルを開き、編集することが可能です。
僕の場合は、スプリットでファイルを開くことが多いので
spとvspもキーバインドを割り当てています。
" バッファで開くキーバインド設定 nnoremap <Space>cc :Ccontroller nnoremap <Space>cm :Cmodel nnoremap <Space>cv :Cview nnoremap <Space>cvw :Ccontrollerview nnoremap <Space>cs :Cshell nnoremap <Space>ct :Ctask nnoremap <Space>ccf :Cconfig nnoremap <Space>ccp :Ccomponent nnoremap <Space>cl :Clog " splitで開くキーバインド設定 nnoremap <Space>ccs :Ccontrollersp nnoremap <Space>cms :Cmodelsp nnoremap <Space>cvs :Cviewsp nnoremap <Space>cvws :Ccontrollerviewsp nnoremap <Space>ccfs :Cconfigsp nnoremap <Space>ccps :Ccomponentsp " vsplitで開くキーバインド設定 nnoremap <Space>ccv :Ccontrollervsp nnoremap <Space>cmv :Cmodelvsp nnoremap <Space>cvv :Cviewvsp nnoremap <Space>cvwv :Ccontrollerviewvsp nnoremap <Space>ccfv :Cconfigvsp nnoremap <Space>ccpv :Ccomponentvsp
ちなみにtabをよく使う人は、以下のような感じで設定しておくと、
使いやすいかもしれません。
" tabで開くキーバインド設定 nnoremap <Space>cct :Ccontrollertab
Vimのplugin管理はVundle.vimで。
Vundle.vimいいですよね。
ということで、今更ですが、Vundleでプラギン管理を始めてみたので
個人的な導入メモ。
まずは、既存の.vimrc、.vimをbkupしておく(ま、削除してもいいけど。。)
$ mv .vimrc .vimrc.bk $ mv .vim .vim.bk
新しく.vimディレクトリを作りvundleをgitでインストール。
$ mkdir .vim $ cd .vim $ git clone git://github.com/gmarik/vundle.git Cloning into vundle... remote: Counting objects: 2058, done. remote: Compressing objects: 100% (1376/1376), done. remote: Total 2058 (delta 669), reused 1982 (delta 595) Receiving objects: 100% (2058/2058), 247.45 KiB | 95 KiB/s, done. Resolving deltas: 100% (669/669), done.
新しく.vimrcを用意
$ vi .vimrc "---------------------------------------------------- " Vundle "---------------------------------------------------- filetype off set rtp+=~/.vim/vundle/ call vundle#rc() filetype plugin on Bundle 'cake.vim' Bundle 'neocomplcache' Bundle 'unite.vim' Bundle 'surround.vim' Bundle 'taglist.vim' Bundle 'ZenCoding.vim' Bundle 'ref.vim' Bundle 'The-NERD-tree' Bundle 'The-NERD-Commenter'
入れたいvimのプラギンは、
cake
neocomplcache
unite
surround
taglist
zencoding
ref
nerdtree
nerdcommenter
てな、感じ。以外と少ないかなぁ。他にオススメあれば教えてください><
ここまで準備できたらあとは、
:BundleInstall
で、おk。
更新するときは
:BundleInstall!
("!"びっくりマークを忘れずに)
snippetsだけは自分で管理するために以下のように指定しているので.vimrcに以下を追記。
let g:neocomplcache_snippets_dir = $HOME.'/.vim/snippets'
.vim/snippets/配下に.vim.bk/snippets/を持ってくれば完了
$ cp -r .vim.bk/snippets/ .vim/ $ ls .vim bundle snippets vundle $ ls snippets/ php.snip vim.snip
おk
※もし、BundleInstallでこんな感じでエラーが出てたら
SSL cetificate problem, verify that CA cert is OK. ・・・
$ vi .gitconfig [http] sslVerify = false
で回避すれば、BundleInstallできます。
詳しいことはこの辺をご参考にいただければと。。
Github のプライベートリポジトリからcloneするときにSSLエラーがでた場合の対応策 - Goodpic
http://www.goodpic.com/mt/archives2/2011/02/github_clonessl.html
gitやcurlやwgetでGitHubにアクセスするとcertification errorになる原因を調べてみた - それ、Gentooだとどうなる?
http://d.hatena.ne.jp/tmatsuu/20110614/1308010044