タグ

ブックマーク / osyo-manga.hatenadiary.org (12)

  • libclang の Python binding を使用する 〜導入編〜 - C++でゲームプログラミング

    最近 libclang の Python binding を使用をしようた Vim プラグインを作成しているのでその覚書としてポツポツ書いていこうかと思います。 ibclang とは Clang が提供している構文解析ツールになります。 この構文解析器は Clang から提供されている Python binding を使用することで比較的簡単に使用することができます。 諸事情により LLVM 3.3 で動作確認していますが、LLVM 3.4 でも基的な使い方は変わらないはずです。 あと Python はあまり慣れていないので書き方など間違っている箇所があったらすみません。 [Python binding を導入する] Python binding は Clang のソースコードに付属しています。 ソースファイルはここや svn などから落としてくるとよいでしょう。 この Python b

    libclang の Python binding を使用する 〜導入編〜 - C++でゲームプログラミング
  • Vim Advent Calendar 2013 167日目: 任意の正規表現パターンにマッチする textobj を書いた - C++でゲームプログラミング

    [追記] 指摘されて初めて気づいたんですが textobj が operator になっていたので修正しました…。 素で間違えて恥ずかしい。 この記事は Vim Advent Calendar 2013 167日目の記事になります。 Vim Advent Calendar 書きたい人募集中です。 興味のある方は気軽にご参加ください。 さて、今回は任意の正規表現パターンにマッチする textobj プラグインをつくりました。 もともと『任意の正規表現パターンにマッチする textobj』は vim-textobj-user の機能として備わっているんですが、それをラップして から呼び出せるようにしました。 [プラグイン] kana/vim-textobj-user osyo-manga/vim-textobj-from_regexp [使い方] textobj#from_regexp#map

    Vim Advent Calendar 2013 167日目: 任意の正規表現パターンにマッチする textobj を書いた - C++でゲームプログラミング
    tokorom
    tokorom 2014/05/21
    めも
  • Vim Advent Calendar 2013 97日目:モモンガでもわかるテキストオブジェクトとオペレータ - C++でゲームプログラミング

    この記事は Vim Advent Calendar 2013 97日目の記事になります。 Twitter 見ていると『テキストオブジェクトわからん』というツイートをたまに見かけるので自分が理解している範囲で簡単に解説してみるなど。 まぁこういう記事は大量にあると思うけど わたし自身も少し前までは『テキストブジェクよくわからない』状態だったんですが、どういうものか理解してからはテキストオブジェクトが中心となって Vim を操作するようになりました。 他のエディタでは見かけない癖のある機能だと思いますが、Vim を使用しているのであればテキストオブジェクトとオペレータの関係は覚えておいた方がよいと思います。 [テキストオブジェクトとは] テキストオブジェクトを一言でいうと『任意の範囲』になります。 例えば normal モードで diw を入力すると『カーソル下の単語』が削除され、yi( で『

    Vim Advent Calendar 2013 97日目:モモンガでもわかるテキストオブジェクトとオペレータ - C++でゲームプログラミング
    tokorom
    tokorom 2014/03/15
    vim-textobj-function は早く導入すべきだった。。。Objective-Cでも快適に使える。
  • watchdogs.vim つくりました - C++でゲームプログラミング

    前々から言っていた watchdogs.vim ですが、そろそろ煮詰まってきたのでまとめ記事にしようかと。 ちなみにこれとは関係ありません。 [追記] watchdogs.vim で quickfix ウィンドウが開かない場合の対処方法 watchdogs.vim でハイライト(hier.vim)が更新されない不具合を修正 watchdogs.vimerrorformat が反映されなかった不具合を改善 quickrun.vim で無名バッファでも quickfix に出力されるようにしてみた [概要] Vim でシンタックスチェックを行うためのプラグインです。 類似プラグインでいえば、syntastic があります。 syntastic - github syntastic との最大の違いはバックエンドに quickrun.vim を使用する事で、 quickrun-module

    watchdogs.vim つくりました - C++でゲームプログラミング
  • Vim の textobj プラグインをまとめた - C++でゲームプログラミング

    この記事は Vim Advent Calendar 2012 229日目の記事になります。 最近やっと textobj を利用し始めた情弱な Vimmer なんですが、どんな textobj があるのか知らなかったので調べられる範囲でまとめてみました。 基的に kana さんの vim-textobj-user を使用しているプラグインを上げてあります。 ご覧の通り量が多いので typo などがあったらごめんなさい(・ω<) [textobj 一覧] プラグイン 範囲 マッピング 備考 user entire バッファ全体 ae, ie line カーソル行 al, il 参照 function 関数内 af, if syntax シンタックス ay, iy jabraces 「foo」 or 【bar】など ajb, ijb lastpat 最後に検索されたパターン a/, i/ in

    Vim の textobj プラグインをまとめた - C++でゲームプログラミング
    tokorom
    tokorom 2013/07/18
    めも
  • Vim のプラグインを作る時に注意すべきことや便利なプラグイン - C++でゲームプログラミング

    この記事は Vim Advent Calendar 2012 216日目の記事になります。 さて、Vim Advent Calendar 2012 の1日目にも似たような内容の記事を書いたのですが、今回はもう少し Vim script よりの内容になっています。 普段、Vimプラグインを作る際に注意している事や便利なプラグインなんかを紹介してみたいと思います。 [グローバル変数のオプションの初期化に get(g:) を使用する] プラグインのオプションでグローバル変数を使用する場合、 " g:hoge_flag がない場合、変数を初期化する if !exists("g:hoge_flag") let g:hoge_flag = 0 endif のように exists() を使用するのではなくて " g: は辞書なので get を使用する事が出来る " キー "hoge_flag" を取得し

    Vim のプラグインを作る時に注意すべきことや便利なプラグイン - C++でゲームプログラミング
    tokorom
    tokorom 2013/07/06
  • unite-source を作成する流れをまとめてみた - C++でゲームプログラミング

    この記事は Vim Advent Calendar 2012 171日目の記事になります。 さて、前回の Vim Advent Calendar で iTunes のプレイリストを操作する euphoric_player.vim を公開したんですがその時に作成した unite-source の書き方なんかをまとめてみたいと思います。 [欲しい機能] トラック一覧の表示 選択したトラックの再生 並び順の変更 表示形式の変更 今回は euphoric_player.vim を利用して上記の機能を実装した unite-source のコードを載せっていってみたいと思います。 [トラック一覧の表示] unite.vim でトラック一覧の表示を行います。 この機能は unite-source を使用して定義します。 " unite-source の設定を定義する " " 詳しい設定オプションは "

    unite-source を作成する流れをまとめてみた - C++でゲームプログラミング
    tokorom
    tokorom 2013/05/23
  • 【Vim Advent Calendar 2012】Vim プラグインを github で公開するまで【1日目】 - C++でゲームプログラミング

    Vim Advent Calendar 2012 1日目の記事になります。 [宣伝] 毎週土曜日 23時から vimrc 読書会を開催しています。 次回は 12月1日(今日!!)の 23時から行います。 内容はだいぶ緩い感じなので、気になる方は覗いてみるといいと思います。 Vim で分からないことを質問するいい機会でもあるので( thinca さんが答えてくれる!)お待ちしていますー!! 概要 さて、今回はわたしが実際にプラグインを作成するときの注意点や流れなんかを簡単にまとめてみたいと思います。 『github で公開』と書いてありますが、git 成分は少なめです。 予め用意しておくといいもの git github のアカウント neobundle neocomplcache neosnippet git は最低限 push commit が操作出来れば問題ないかと思います。 neobu

    【Vim Advent Calendar 2012】Vim プラグインを github で公開するまで【1日目】 - C++でゲームプログラミング
    tokorom
    tokorom 2012/12/01
  • Vim で言語に関係なくコメントアウト行う - C++でゲームプログラミング

    さて、各言語によっていコメントアウトの方法は違うので、複数の言語を扱っている場合にコメントアウトの方法を間違えてしまうことがあると思います。 そんな時に caw.vim プラグインを使用することで言語を意識せずにコメントアウトを行うことが出来ます。 [プラグイン] caw.vim - github NeoBundle "git://github.com/tyru/caw.vim.git" [キーマッピング] gci 文の頭からコメントアウト gcI 行頭からコメントアウト gca 行末にコメントアウト gco カーソル行の下にコメントアウト gcO カーソル行の上にコメントアウト gco と gcO 以外はビジュアルモードでもマッピングされているので複数行のコメントアウトもスムーズに行うことが出来ます。 詳細は :help caw-introduction や :help caw-keym

    Vim で言語に関係なくコメントアウト行う - C++でゲームプログラミング
    tokorom
    tokorom 2012/01/23
    いまはThe-NERD-Commenterってのを使ってるけど後からこっちも試してみる
  • neocomplcache-clang_complete - C++でゲームプログラミング

    neocomplcache と clang_complete を併用して使用する事が出来る、neocomplcache-clang_complete というプラグインをつくりました。 [注意] 現在この問題は解決されました。 詳しくはこちらを参照下さい。 名前が安直なのは仕様です。 [問題点] 両プラグインを導入すると neocomplcache で補完ができなくなる これは、両プラグインで 'completefunc' の設定を行なっている為です。 特に設定していなければ neocomplcache が警告を出力して、neocomplcache の補完が行われなくなると思います。 [解決策1] neocomplcache から呼び出せるようにした clang_complete を使用する [プラグイン] neocomplcache Shougo / clang_complete プラグイ

    neocomplcache-clang_complete - C++でゲームプログラミング
  • Quickrun で、非同期コンパイル/実行が出来る設定を書いた - C++でゲームプログラミング

    Quickrun の製作者である、id:thinca さんに Quickfix へ出力を追加して頂いたので、真面目に Quickrun の設定をしました。 使用している、Quickrun は、v0.5.0 dev です。 詳しくは、ここら辺を参照してください。 とりあえず、現状はこんな感じ。 わかりやすくまとめようと思ったら、逆にわかりづらくなって、ぐぬぬ……。 Vim が難しくてハゲる。 [_vimrc] " デフォルトの設定 let g:quickrun_config["_"] = { \ "runner/vimproc/updatetime" : 100, \ "split": "{'rightbelow 8sp'}" \ } " 実行 let g:quickrun_config["run/vimproc"] = { \ "exec": "%s:p:r %a", \ "output_

    Quickrun で、非同期コンパイル/実行が出来る設定を書いた - C++でゲームプログラミング
    tokorom
    tokorom 2011/06/19
    quickrun
  • clang_complete 〜高速化への道〜 - C++でゲームプログラミング

    さて、以前、vim でコード解析を行うプラグインとして、clang_complete を紹介しました。 補完の精度は優秀ですが、普通に使用すると補完に時間がかかってしまい、ストレスが溜まってしまいます。 clang_complete では、高速にコード解析を行う方法がいくつあるので、今回はそれの検証と結果をまとめたいと思います。 ★高速化する方法 1.pch(プリコンパイル済みヘッダー)ファイルを使用する その名の通り、使用するヘッダーをプリコンパイルして、clang のコード解析時に使用します。 予め、プリコンパイルしておかないとダメなので、ちょっとめんどいかも? 2.libclang libclangは、llvm に付属しているツールの1つで、コード解析を行います。 (Windows であれば、llvm のビルドを行うと libclang.dll が生成される) clang_compl

    clang_complete 〜高速化への道〜 - C++でゲームプログラミング
  • 1