タグ

ブックマーク / thinca.hatenablog.com (13)

  • neobundle をコマンドラインから実行するスクリプト書いてみた - 永遠に未完成

    絶賛叩き台版。 https://gist.github.com/3421512 shell script用とWindowsのcmd.exe用。まず gist 内にある sample のような :NeoBundle を列挙したファイルを用意する。そしてコマンドラインからおもむろに neobundle bundle.vimとすると neobundle で管理しているプラグインのインストール/更新が実行される。 設定ファイルを独立させることで、最小構成で Vim を起動して neobundle を実行させられる。 そしてコマンドラインからの実行なので、例えば cron から叩いたりもできるはず。試してないけど。 また、初回インストール時にプラグインが入ってない状態でも、vimrc を読まないので vimrc のプラグイン固有設定の箇所でエラー出まくり、ってことがなくなる。まあ初回のみだけど。vi

    neobundle をコマンドラインから実行するスクリプト書いてみた - 永遠に未完成
  • Windows で Vim をソースコードからビルドする - 永遠に未完成

    7.3 の開発も始まり今もアツい Vim。先日スナップショット版のWindows用のインストーラも公開されたが、それ以降の最新の機能を試したい場合や好みの機能を入れるには、自分でソースコードからビルドする必要がある。 ただソースコードからのビルドは中々にハードルが高いので、自分へのメモの意味も込めてちょっと手順をまとめてみることにした。 開発環境を用意する ソースコードをビルドするためには、まず開発環境が必要です。 Visual C++ か MinGW をインストールしておきます。インストール方法についてはここでは省略します。 ソースコードを取得する Mercurial をインストールする 現在 Vim の最新版は Mercurial リポジトリで管理されています。なので、まずは Mercurial をインストールする必要があります。 Mercurial SCM インストールは省略。Win

    Windows で Vim をソースコードからビルドする - 永遠に未完成
  • KaoriYa 版で追加される機能まとめ - 永遠に未完成

    KaoriYa 版 Vim では日語を使う際に便利な patch が多数当てられている。patch 自体は体に付属しているが、そこ以外で体との差分をまとめたものが見当たらなかったので、patch を参考に家からの変更点をまとめてみた。 足りない部分や勘違いしている部分がある可能性があるので、突っ込み歓迎。 確認に使ったバージョン Vim 7.2-20090321 香り屋版 runtime syntax/memo.vim 新規に追加。どんなものかは README_w32j.txt を開いてみればわかる(このファイルが ft=memo に設定されている)。 syntax/java.vim javadoc コメント内の最初の一文は専用の色でハイライトされるが、"." だけでなく "。" で終わる部分も文として認識するように修正されている。 syntax/2html.vim ftp://~

    KaoriYa 版で追加される機能まとめ - 永遠に未完成
  • JScript で動く CoffeeScript コンパイラのラッパ書いた - 永遠に未完成

    Windows でも CoffeeScript 使いたいけど、Cygwin なんて意地でも入れたくない、そんなあなた*1へ。 それっぽいの見当たらなかったので書いてみた。 https://github.com/thinca/coffee-script-on-jscript 特徴 体 (coffee.bat) と CoffeeScript コンパイラ (coffee-script.js) だけあれば動く。 Cygwin 要らない。 (←重要) JScript として動作する。 node.js 周りの関数とか使えないので注意。 とりあえずコンパイルと実行くらいはできる。 使える機能 今のところ以下。 Usage: coffee [options] path/to/script.coffee -c, --compile compile to JavaScript and save as .js

    JScript で動く CoffeeScript コンパイラのラッパ書いた - 永遠に未完成
  • vital.vim 開発中 - 永遠に未完成

    現在、チームで vital.vim と言うのを開発しています。ある程度形になってきたので、簡単に紹介。 vital.vim とは? Vim プラグイン作者をサポートするための組み込み式のライブラリです。よって、プラグインを作らない人は知る必要はまったくないです。 Vim プラグインを書くとき、似たような関数を何度も書いたりしていませんか? vital.vim は、このようなよく使う処理をライブラリ化し、自作したプラグインに簡単に組み込めるような仕組みを提供します。 ライブラリはプラグインに同梱されるので、ユーザにライブラリを入れてもらう必要がありません。 使い方 以下から最新版が取得できます。 https://github.com/ujihisa/vital.vim 取得は必ず git clone で行ってください。git 必須です。 vital を入手したら、中にある vitalize.

    vital.vim 開発中 - 永遠に未完成
  • pathogen.vim みたいなことをする rtputil.vim ってのを作った - 永遠に未完成

    pathogen.vim は便利なんだけど、私に必要な機能が足りなかったので、vimrc に独自のものを書いていた。 で、折角なのでその部分をプラグイン化してみようと思い立ったのが先月の中旬。すでにあるものを移すだけだしサクッっと終わるだろ、と思ってたんだけど、あちこちいじっていたらかなり時間をってしまい、結果、完全に別物の変態的な機能を持ったスクリプトになってしまった。 最初に言っておくと、pathogen.vim で困ってない人は使う必要まったくないです。むしろこんなの使わない方がいいに違いない。 https://github.com/thinca/vim-rtputil どんなことができるのか 面倒なので Vim スクリプトで書きます。網羅的ではないので全部知りたい人は help を参照。 " pathogen みたいに bundle を runtimepath に追加する cal

    pathogen.vim みたいなことをする rtputil.vim ってのを作った - 永遠に未完成
  • unite.vim の設定を一部晒してみる - 永遠に未完成

    Shougo さんの unite.vim がかなり便利。 unite 自体に関する説明は省略するとして*1、特に unite#set_substitute_pattern() を使うといろいろできる。ので、私の unite の設定の中にある unite#set_substitute_pattern() に関する部分を晒してみる。 unite#set_substitute_pattern() について簡単に説明 フィルタリングのための入力文字列を内部で置換するための設定。 これはバッファ名毎に設定できる。バッファ名は :Unite で起動するときに指定できる。 例えば、デフォルトではバッファ名 "files" には先頭の ~ を $HOME に置換する設定がされている。なので、 :Unite -buffer-name=files file のように起動して ~ と入力すると、内部的には $H

    unite.vim の設定を一部晒してみる - 永遠に未完成
  • 簡単な unite の source の作り方 - 永遠に未完成

    と言うわけで、unite の source の作り方を紹介します。格的に作って配布したい場合は専用のファイルに書くのがいいのですが、今回は手軽に作ろう、ということで vimrc に書きます。そう。unite の source は vimrc でも書けます。 今回作るもの サンプルってことで、実用性とか無視して、lines という source を作ることにします。これは、現在のバッファの各行を候補とした source です。 source となるオブジェクトを用意する 当はオブジェクトなんて呼び方ではなくて辞書(Dictionary)なんだけど、この場合扱い的にもオブジェクトと呼んだ方がわかりやすいと思ったのであえてこう呼んでみます。 let s:unite_source = { \ 'name': 'lines', \ } 名前は必須です。他に指定できる属性については、:help u

    簡単な unite の source の作り方 - 永遠に未完成
  • unite で複数のファイルを新しいタブにまとめて縦分割で開く - 永遠に未完成

    個人的にそういうことをよくやるので、action を定義した。こういうのが簡単にできて unite は素晴らしい。 let s:unite_action = { \ 'is_selectable': 1, \ } function! s:unite_action.func(candidates) " {{{ tabnew `=a:candidates[0].action__path` for c in a:candidates[1 :] vsplit `=c.action__path` endfor endfunction " }}} call unite#custom_action('openable', 'tabvsplit', s:unite_action) unlet! s:unite_action この手のは応用が効きやすいと思うので、よくやる操作があれば登録しておくといいと思う

    unite で複数のファイルを新しいタブにまとめて縦分割で開く - 永遠に未完成
  • 勝手にプラグインを比較してみるテスト - 永遠に未完成

    今使ってるVimプラグインで、似たような機能を提供するもの同士を比較してみるテスト。あくまで個人的な比較なので参考程度に。と言いたいけど細かい説明相当端折ってるので参考にもならないかも。 ここで挙げている特徴はもう一方に対する特徴であり、もう一方にはないと言う意味。細かい機能を全部列挙してると大変なので、有名どころ、個人的に重要な機能を中心にピックアップ。 ちなみに私の環境には以下で比較してるプラグインは全て入っていて、たまに気まぐれに使う方を切り替えたりしてる*1。 fuzzyfinder.vim vs ku.vim バッファやファイルなどを曖昧に選択できるプラグイン。 どちらも起動すると上部分に小さな選択用ウィンドウが開かれ、選択候補がポップアップで表示される。 両者の違い fuzzyfinder.vim ku.vim 比較バージョン 2.19 0.1.9 候補選択用ウィンドウの開かれ

    勝手にプラグインを比較してみるテスト - 永遠に未完成
  • Dropbox on Linux without X - 永遠に未完成

    Dropbox を X なしの Linux で動かすのにようやく成功したので、忘れないうちにメモしておく。 Dropbox の公式 CLI クライアントを入手する $ wget https://www.dropbox.com/download?dl=packages/dropbox.py $ chmod a+x dropbox.py $ mv dropbox.py ~/bin/dropbox $ dropbox help Dropbox command-line interface commands: status get current status of the dropboxd help provide help puburl get public url of a file in your dropbox stop stop dropboxd start start dropbox

    Dropbox on Linux without X - 永遠に未完成
  • cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成

    cmd.exe の引数の扱いがあまりにもカオスだったのでちょっと頑張って調べてみた。 来ならここは公式の資料に当たるのが正しいアプローチだと思うけど、どうしても公式の資料が見つからなかったので、色々試して推測してみることに。 断片的な資料は見付けたけど、完全じゃない。一応URL貼っておく。Windows Server 2003 のヘルプだけど、恐らくそんなに変わらないと思う。 コマンド シェルの概要 コマンド リダイレクト演算子を使用する なので、以下で述べる内容は間違いを含む可能性があります。というか正確さは一切保証されないのであしからず。 検証方法 以下のような引数をただ表示するだけの簡単な C のプログラムを用意した。仮に args.exe とでもしておく。 #include <stdio.h> int main(int argc, char const* argv[]) { in

    cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成
  • vimrc基礎文法最速マスター - 永遠に未完成

    調子に乗って vimrc を書くのに特化した内容のものを書いてみる。取り上げた内容は完全に独断と偏見です。 関連記事: Vimスクリプト基礎文法最速マスター - 永遠に未完成 この記事では vimrc を書くにあたって知っておくべき概念や機能を解説します。Vim 自体の操作方法に関しては触れません。 基礎 バッファ バッファは、ファイルを編集するための論理的な領域です。Vim で新しくファイルを開くと、新しいバッファが作成されてそこにファイルの内容が読み込まれます。 ウィンドウ ウィンドウはバッファを画面に表示するための物理的な領域です。分割することができ、1つの画面に複数のウィンドウを表示できます。 タブページ タブページを使うことでウィンドウの配置を保持したまま複数の画面を切り替えることができます。 タブ文字と区別するためか、タブページと呼ばれています。 モード Vim の中でも知って

    vimrc基礎文法最速マスター - 永遠に未完成
  • 1