Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Vim の開発環境

Haskell Day 2012 で使ったスライドです

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Vim の開発環境

  1. 1. Vim の開発環境 eagletmt 2012/05/27 eagletmt Vim の開発環境
  2. 2. プラグイン 私が使っている Haskell 用プラグイン ghcmod.vim neco-ghc unite-haddock これらの紹介とデモを行います eagletmt Vim の開発環境
  3. 3. ghcmod.vim ghcmod.vim eagletmt Vim の開発環境
  4. 4. ghcmod.vim https://github.com/eagletmt/ghcmod-vim コンパイルエラー・警告を QuickFix に表示 HLint による提案を QuickFix に表示 カーソル下の型を表示 eagletmt Vim の開発環境
  5. 5. ghcmod.vim の導入 まず ghc-mod をインストール cabal install ghc-mod eagletmt Vim の開発環境
  6. 6. ghcmod.vim の導入 vimproc を利用しているので先に vimproc をインストール Vim のプラグイン管理に不慣れな人は neobundle.vim を利用する といいでしょう http://vim-users.jp/2011/10/hack238/ :NeoBundle ’Shougo/vimproc’ cd $HOME/.vim/bundle/vimproc; make -f make unix.mak Windows 向けに、コンパイル済みのバイナリ配布あり https://github.com/Shougo/vimproc/downloads :NeoBundle ’eagletmt/ghcmod-vim’ eagletmt Vim の開発環境
  7. 7. :GhcModCheck :GhcModCheck コマンドで GHC からのコンパイルエラー・警告 を QuickFix に表示 コンパイルエラー・警告がある場合は自動的に QuickFix を開く eagletmt Vim の開発環境
  8. 8. QuickFix Vim に備わっている、主に処理系からのメッセージを表示する 機能 メッセージとそれが示しているファイルと位置 (行番号・列 番号) を表示 メッセージを選択するとその位置へジャンプ などができ、「編集→チェック→修正」のサイクルを快適に行える eagletmt Vim の開発環境
  9. 9. :GhcModCheck 保存時に自動的にチェックしたい! syntastic を利用している人が多いようです https://github.com/scrooloose/syntastic eagletmt Vim の開発環境
  10. 10. :GhcModCheck しかし…… 多くのモジュールをインポートしている Template Haskell を使っている 型レベルプログラミングをしている とき、チェックに時間がかかり、その間すべての Vim の操作がし ばらくブロックされてしまう eagletmt Vim の開発環境
  11. 11. :GhcModCheckAsync :GhcModCheckAsync コマンドは :GhcModCheck を (疑似) 非同期 的に実行 ⇒ 保存時に自動的にチェックしてもストレスが少ない! eagletmt Vim の開発環境
  12. 12. :GhcModLint 同様に :GhcModLint コマンドで HLint からの提案を QuickFix に表示 非同期版の :GhcModLintAsnyc、非同期的に :GhcModCheck と :GhcModLint の両方を行う :GhcModCheckAndLintAsync も eagletmt Vim の開発環境
  13. 13. :GhcModType :GhcModType コマンドでカーソル下の型を表示。型を表示してい る部分はハイライトされる。 ハイライトは :GhcModTypeClear コマンドで消す。 式 パターン 束縛 の型を表示できる eagletmt Vim の開発環境
  14. 14. :GhcModType の使い道 コードリーディング時のサポートに なかなか型が合わない → とりあえず undefined を書いて コンパイルを通して型を見る eagletmt Vim の開発環境
  15. 15. neco-ghc neco-ghc eagletmt Vim の開発環境
  16. 16. neco-ghc オムニ補完を行う関数 necoghc#omnifunc() を提供するプラグ イン。 インポートするモジュール名の補完 インポートしているモジュールを考慮した補完 LANGUAGE プラグマの補完 OPTIONS GHC プラグマの補完 eagletmt Vim の開発環境
  17. 17. neco-ghc eagletmt Vim の開発環境
  18. 18. neco-ghc の導入 https://github.com/ujihisa/neco-ghc cabal install ghc-mod :NeoBundle ’ujihisa/neco-ghc’ eagletmt Vim の開発環境
  19. 19. オムニ補完 Haskell のファイルを開いているバッファでオムニ補完の関数を necoghc#omnifunc に設定 $HOME/.vimrc に autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc を追記 インサートモードで <C-x><C-o> で補完できる eagletmt Vim の開発環境
  20. 20. 自動補完 neocomplcache を導入することで自動補完が可能に https://github.com/Shougo/neocomplcache $HOME/.vimrc に let g:neocomplcache enable at startup = 1 または :NeoComplCacheEnable コマンド によって neocomplcache を有効化すれば、Haskell ファイルを開 いているバッファで neco-ghc による自動補完が有効化 eagletmt Vim の開発環境
  21. 21. unite-haddock unite-haddock eagletmt Vim の開発環境
  22. 22. unite-haddock unite.vim のインターフェイスで、インストール済みのモジュール 名の一覧から絞り込んで選択してドキュメントをブラウザを開く eagletmt Vim の開発環境
  23. 23. unite-haddock の導入 まず unite.vim をインストール https://github.com/Shougo/unite.vim :NeoBundle ’Shougo/unite.vim’ unite-haddock をインストール https://github.com/eagletmt/unite-haddock :NeoBundle ’eagletmt/unite-haddock’ eagletmt Vim の開発環境
  24. 24. :Unite haddock :Unite haddock コマンドでインストール済みのモジュール一覧 を表示 そこからモジュールを選択し、 ローカルのドキュメントを開く (デフォルト) (browse local) リモート (Hackage) のドキュメントを開く (browse remote) eagletmt Vim の開発環境
  25. 25. :Unite hoogle Hoogle をインストールしてあると、さらに :Unite hoogle で Hoogle による検索結果から関数や型のドキュメントを開くことが できる eagletmt Vim の開発環境
  26. 26. Hoogle の導入 cabal install hoogle hoogle data default hoogle data vector vector.hoo を作成 hoogle combine *.hoo *.hoo をまとめて default.hoo を作成 eagletmt Vim の開発環境
  27. 27. デモ デモ eagletmt Vim の開発環境

×