Weitere ähnliche Inhalte Ähnlich wie Vim の開発環境 (20) Vim の開発環境1. Vim の開発環境
eagletmt
2012/05/27
eagletmt Vim の開発環境
4. ghcmod.vim
https://github.com/eagletmt/ghcmod-vim
コンパイルエラー・警告を QuickFix に表示
HLint による提案を QuickFix に表示
カーソル下の型を表示
eagletmt Vim の開発環境
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 の開発環境
8. QuickFix
Vim に備わっている、主に処理系からのメッセージを表示する
機能
メッセージとそれが示しているファイルと位置 (行番号・列
番号) を表示
メッセージを選択するとその位置へジャンプ
などができ、「編集→チェック→修正」のサイクルを快適に行える
eagletmt Vim の開発環境
10. :GhcModCheck
しかし……
多くのモジュールをインポートしている
Template Haskell を使っている
型レベルプログラミングをしている
とき、チェックに時間がかかり、その間すべての Vim の操作がし
ばらくブロックされてしまう
eagletmt Vim の開発環境
12. :GhcModLint
同様に :GhcModLint コマンドで HLint からの提案を QuickFix
に表示
非同期版の :GhcModLintAsnyc、非同期的に :GhcModCheck と
:GhcModLint の両方を行う :GhcModCheckAndLintAsync も
eagletmt Vim の開発環境
13. :GhcModType
:GhcModType コマンドでカーソル下の型を表示。型を表示してい
る部分はハイライトされる。
ハイライトは :GhcModTypeClear コマンドで消す。
式
パターン
束縛
の型を表示できる
eagletmt Vim の開発環境
14. :GhcModType の使い道
コードリーディング時のサポートに
なかなか型が合わない → とりあえず undefined を書いて
コンパイルを通して型を見る
eagletmt Vim の開発環境
15. neco-ghc
neco-ghc
eagletmt Vim の開発環境
16. neco-ghc
オムニ補完を行う関数 necoghc#omnifunc() を提供するプラグ
イン。
インポートするモジュール名の補完
インポートしているモジュールを考慮した補完
LANGUAGE プラグマの補完
OPTIONS GHC プラグマの補完
eagletmt Vim の開発環境
18. neco-ghc の導入
https://github.com/ujihisa/neco-ghc
cabal install ghc-mod
:NeoBundle ’ujihisa/neco-ghc’
eagletmt Vim の開発環境
20. 自動補完
neocomplcache を導入することで自動補完が可能に
https://github.com/Shougo/neocomplcache
$HOME/.vimrc に
let g:neocomplcache enable at startup = 1
または :NeoComplCacheEnable コマンド
によって neocomplcache を有効化すれば、Haskell ファイルを開
いているバッファで neco-ghc による自動補完が有効化
eagletmt Vim の開発環境
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. :Unite haddock
:Unite haddock コマンドでインストール済みのモジュール一覧
を表示
そこからモジュールを選択し、
ローカルのドキュメントを開く (デフォルト) (browse local)
リモート (Hackage) のドキュメントを開く (browse remote)
eagletmt Vim の開発環境
25. :Unite hoogle
Hoogle をインストールしてあると、さらに :Unite hoogle で
Hoogle による検索結果から関数や型のドキュメントを開くことが
できる
eagletmt Vim の開発環境
26. Hoogle の導入
cabal install hoogle
hoogle data default
hoogle data vector
vector.hoo を作成
hoogle combine *.hoo
*.hoo をまとめて default.hoo を作成
eagletmt Vim の開発環境
27. デモ
デモ
eagletmt Vim の開発環境