tern.vimでvimでjavascriptの補完など(vim advent calendar2012, 155日目)

これはvim advent calendar2012の155日目の記事です。

ternについて

tern for vimについて

ternのinstallと使用方法

install

下記の方法でとりあえずwarning無しでinstallできる。 ternはnodejsを用いるのでまずnodejsをinstallする必要がある。

npm install -g typescript
git clone git://github.com/marijnh/tern
cd tern
npm install

確認したのはMac, homebrewの環境でありternは/usr/local/bin/ternに installされていた。 homebrewはinstall時に/usr/local下のpermissionを変更するため上記で installできた、またtern commandにPATHが通っていたが他環境では異なる可能性がある

使用方法

command lineで tern と入力することでtern(server)がstartする

問題無くternがstartしていれば

Listening on port 58355

のように表示される。port番号はその都度変わる。 ある程度通信が無いと下記のようにternは終了する。

Was idle for 5 minutes. Shutting down.

ternをvimで使えるようにする

neobundleなり、pathogenなりで前述のternのためのvim scriptをinstallする。 vimpython supportが有効になっている必要がある。 あとは適当なjs fileを作成後 C-x, C-o と入力することで下記のように補 完が行われる。 bracketsとは異なり、補完だけでなくsyntaxとparameterの情報もpreviewに表 示される。

  • emacsでのtern supportもほぼvimと同様の模様
  • sublimetextは未確認
  • bracketsでは上述のようなternのinstall作業, serverのstartを行う必要は無く、補完が可能だが付加情報をeditor内に表示する機能はまだ備えていないようだった

f:id:kozo2:20130503234157p:plain

このような補完の他

  • cursor下の何かの定義へのjump(:TernDef)
  • cursor下の何かの(MDN)document表示(:TernDoc)
  • cursor下の何かの型情報表示(:TernType)
  • cursor下のvariableもしくpropertyの参照個所の表示(:TernRefs)
  • refactoring(rename)(:TernRename)

といった機能がある。

おわりに

この記事のほとんどは id:kiwanami さんの関西Emacsでの発表のぱくりです http://kiwanami.net/temp/2013-0427-kansai-emacs.html

tern便利