Vim の開発環境

6,391 views

Published on

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

0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,391
On SlideShare
0
From Embeds
0
Number of Embeds
114
Actions
Shares
0
Downloads
27
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

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 の開発環境

×