• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Vim の開発環境
 

Vim の開発環境

on

  • 5,163 views

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

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

Statistics

Views

Total Views
5,163
Views on SlideShare
5,130
Embed Views
33

Actions

Likes
9
Downloads
20
Comments
0

5 Embeds 33

http://slideshare.yuza.net 20
http://s.deeeki.com 5
http://slideshare.yuzar.net 5
https://twimg0-a.akamaihd.net 2
https://si0.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Vim の開発環境 Vim の開発環境 Presentation Transcript

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