タグ

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

  • git reset --hard HEAD を安全にした - 永遠に未完成

    昨日、git reset --hard HEAD してしまって大変なことになった話を書いた。私は普段これを cancel と言う名前に alias して使っている。 [alias] # 中略 cancel = reset --hard HEAD しかし前回のようなことがまたあってはたまらない。人間はミスするものだ。 alias があって実行しやすいのが問題なのだろうか? いや、割とよくする操作*1だし、alias しなくても使うだろう。 てことで、cancel が安全になるようにしてみた。 [alias] # 中略 cancel = !git commit -a -m 'Temporary commit for cancel' && git reset --hard HEAD~ 一旦コミットしてからそのコミットを消す。こうしておけば最悪 git reflog から元に戻せる。特にコミットす

    git reset --hard HEAD を安全にした - 永遠に未完成
    otsune
    otsune 2013/04/12
  • Vim プラグインのヘルプを書く人がするべき設定 - 永遠に未完成

    Vim の help は通常 modeline などによって閲覧に最適なようにオプションが設定される。しかし編集したい時には困ることがある。というわけで全ての Vim プラグイン作者*1は以下のような設定を入れるといいと思うよ! " after/ftplugin/help.vim if &l:buftype !=# 'help' setlocal list tabstop=8 shiftwidth=8 softtabstop=8 noexpandtab textwidth=78 if exists('+colorcolumn') setlocal colorcolumn=+1 endif if has('conceal') setlocal conceallevel=0 endif endif 以前もちらっと書いたのだけど、'buftype' の値を見て編集中なのか :help で閲覧中な

    Vim プラグインのヘルプを書く人がするべき設定 - 永遠に未完成
    otsune
    otsune 2011/09/04
  • 私の開発している Vim プラグインの名前 - 永遠に未完成

    多分ブログでは1度も書いていなかった気がするので、ここらで明言しておきます。 私の開発しているプラグインの正式名称は、xxx.vim の形式です。つまり、 quickrun.vim ref.vim localrc.vim visualstar.vim rtputil.vim scouter.vim prettyprint.vim など。他のプラグインのプラグイン/モジュールの形式を取っている場合はそっちの命名規則に合わせますが、独立したプラグインは全部このパターンです。 一方、各リポジトリの名前は、vim-quickrun とか vim-ref とかになってます。これらはあくまでリポジトリ名で、つまり プラグイン名 != リポジトリ名です。 なんで同じになっていないかというと、同じにすると git リポジトリのアドレスが quickrun.vim.git とかになって拡張子2つ気持ち悪い!

    私の開発している Vim プラグインの名前 - 永遠に未完成
    otsune
    otsune 2011/08/30
  • 第4回 sugamo.vim に行ってきた - 永遠に未完成

    第4回 sugamo.vim に行ってまったりしてきた。 @sigwyg さんによる vimrc と入れているプラグイン紹介。以下走り書き。いろいろ端折ってるので注意。 surround.vim どこまでが組み込みの textobj でどこからが surround.vim の機能かわからなくなる。 snipMate.vim gundo.vim あまり使ってない vimfiler 関連付けで開ける neocomplcache カスタマイズはマゾい作業 unite.vim 何でもできるよ vimshell.vim Vim 内で shell が動きます :! だと結果を残したりコピーしたりできない 「unite.vim を使っていない人は Vim 使いではない」 もちろん冗談だけど、それくらい unite.vim 流行ってるね。 @t9md さんによる自作プラグインの紹介。 textmanip.

    第4回 sugamo.vim に行ってきた - 永遠に未完成
    otsune
    otsune 2011/07/17
  • 私が facebook のアカウントを取っていない理由 - 永遠に未完成

    たまにはこんな話でも。まあ大した理由じゃないんですが。 まず、facebook は名が基らしいけど、私はネット上では "thinca" と言う名前で活動していてこれを public な範囲で名と紐付ける気は毛頭ない*1。 この時点ですでにあまり前向きにはなれないのだけど、まあアカウント持っておくと何か使えることもあるだろうと思い*2、匿名が絶対ダメってわけでもなさそうだしとりあえずアカウント取っておこうかなーと考えるわけです。 で、私は Web サービスにメールアドレスを登録する際は gmail の + 以降の部分が無視される機能を使って登録することにしている。で、今回は以下のようなアドレスで登録しようとした。at はもちろん @ です。 thinca+facebook at gmail.com ところが。 有効なメールアドレスを入力してください。 え? このメールアドレスは正真正銘

    私が facebook のアカウントを取っていない理由 - 永遠に未完成
    otsune
    otsune 2011/01/31
  • 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 の設定を一部晒してみる - 永遠に未完成
    otsune
    otsune 2010/11/06
  • Vim から Github Issues が使いたくなったので github.vim を作り始めた - 永遠に未完成

    最近 eskk.vim の Issues とかで Github Issues を割と見るようになった。 で、ブラウザいちいち開くのも面倒だし幸い Github には API があるらしいので、github.vim とか言うのを試しに作り始めてみた。 完成度高めるよりとっとと公開してしまおうってことでとりあえず公開。絶賛プロトタイプバージョン。アルファにも届いてないので興味のある人だけ使ってみてね。 http://github.com/thinca/vim-github 今のところできること Issues のリストの取得/表示 個々の Issue の表示(コメント付き) 新しい Issue の登録 既存の Issue の close/reopen 既存の Issue の編集 コメントの追加 簡単な使い方 " 自分のリポジトリ :Github issues {repos} " 任意のリポジトリ

    Vim から Github Issues が使いたくなったので github.vim を作り始めた - 永遠に未完成
    otsune
    otsune 2010/07/02
  • Vim Loves Perl - Perl Casual#2 内のコードの添削をしてみた - 永遠に未完成

    Perl Casual #02でVimについてお話しさせて頂きました - iDeaList::Writing にあった Vim の紹介スライド、その中にあった Vim スクリプトを誠に勝手ながら添削してみました。 スライドは以下。 http://www.slideshare.net/acotie/perl-casual2 "TT用 syntax au BufEnter *.tt,*.cfm execute ":setlocal filetype=html" "test code用 syntax au BufEnter *.t execute ":setlocal filetype=perl" http://www.slideshare.net/acotie/perl-casual2/30 まず、この場合 execute は必要ないです。execute が必要になるのは、 式(変数や関数)

    Vim Loves Perl - Perl Casual#2 内のコードの添削をしてみた - 永遠に未完成
    otsune
    otsune 2010/04/28
  • Vim 使いの熟練度と生産性の相関関係について - 永遠に未完成

    Vim 初心者 Vim の使い方がまだよくわかっていない。慣れないツールを使うことにより生産性は落ちる。 Vim 中級者 普段困らない程度に Vim を使いこなせる。生産性は向上する。 Vim 上級者 大抵のことをVimの中で行える。生産性は激しく向上する。 Vim 中毒者 気がついたら Vim スクリプトを弄っている。生産性は激しく落ちる。

    Vim 使いの熟練度と生産性の相関関係について - 永遠に未完成
    otsune
    otsune 2010/04/11
  • ref.vim 書いた - 永遠に未完成

    ref.vim なるVimで様々な言語のリファレンスを見るためのプラグインを作った。 Vim で各種言語のリファレンスを見るプラグインはすでに色々あるけど、それぞれ独立しているので操作性とかその他もろもろ統一されてなくて嫌になったので作った。 公開したのはいいけど全然作りかけです。とりあえず最低限動く感じ。 2009/08/11 追記: 肝心の公開リポジトリのURL貼るの忘れてましたorz ごめんなさい。 http://github.com/thinca/vim-ref/tree/master 現状の対応リファレンス refe (Ruby) phpmanual (PHP) あらかじめマニュアルをDLして解凍してそのパスを g:ref_phpmanual_path に設定する必要がある。 簡単な使い方 :Ref コマンド 唯一のコマンド :Ref が定義されているので、これを使います。 :R

    ref.vim 書いた - 永遠に未完成
    otsune
    otsune 2010/01/29
  • gVim でフォントサイズを変えるプラグインを作った、んだけど… - 永遠に未完成

    知っている人は知っていると思うけど、実はこの手のプラグインはすでに何個かある。と言うか今回のこれも実は最初は既存のをちょっと直しただけのものだった。経緯を書くと、 zoom.vim : 「+」、「-」キーで文字の大きさを変更 — 名無しのvim使い の存在を知る。 (今年の1月ごろ) が、使ってみたら動かなくて、ソースを見てみたら実装があまりにもアレだったので書き直した。 公開しようかとも思ったけど、実装部分は丸々書き換えたけどインターフェースやプラグイン名はそのままだったのと、元のスクリプトのライセンスが不明で確認するのも面倒だったので放置。 そして…11か月の月日が流れた…。 最近になってこういう話題を見てふと思い出して、なんとなくソース眺めてた。 気付いたらコマンド名が :Fontsize に変わって使い方も変わっててプラグイン名も fontsize.vim になってた。 元々実装部

    gVim でフォントサイズを変えるプラグインを作った、んだけど… - 永遠に未完成
    otsune
    otsune 2009/12/26
  • vimrc 共有サービス vimrcbox のプラグインを添削した - 永遠に未完成

    id:kabiy が vimrcbox なるものを作ったらしい。vimrc を共有するサービス。 vimrcbox をリリースしました。 - cod.note http://soralabo.net/s/vrcb/ で、vimrcをアップロードするのに vimrcbox.vim というプラグインを使うんだけど、初めての Vim プラグインで添削募集中とのことだったので僭越ながら添削してみる。 とりあえず元ソース 多分今後更新されるので、とりあえず現時点での vimrcbox.vim " vimrcbox.vim " Author: Sora harakami <sora134@gmail.com> " Require: curl " Licence: MIT Licence if !exists('g:vimrcbox_user') let g:vimrcbox_user = '' end

    vimrc 共有サービス vimrcbox のプラグインを添削した - 永遠に未完成
    otsune
    otsune 2009/10/24
  • Re: vim scriptでディレクトリの存在を知る - dullhikoのだるい日記 - 永遠に未完成

    vimのスクリプトでreadfile/writefileでファイルの読み書きをリストオブジェクトを通して出来ると知り、そのへんをいじっていて「ディレクトリの存在を知りたい」と考えるようになりました。 しかし、そのような関数はざっと見たところ見つからないです。 http://d.hatena.ne.jp/dullhiko/20091008#p1 あります。 let tmp = isdirectory('hoge') ついでにファイル関係のチェックをする関数の紹介。 ディレクトリが存在するかどうか isdirectory({dir}) 上で紹介したやつ。mkdir({name}) って関数もあるのでなかったら作るとかもこの組み合わせで可能。 ファイルが読み込み可能かどうか filereadable({file}) ファイルの存在チェックもするので、fileread() で読めるかをチェックした

    Re: vim scriptでディレクトリの存在を知る - dullhikoのだるい日記 - 永遠に未完成
    otsune
    otsune 2009/10/24
  • Re: vimでスクリプト内関数を書き換える - 永遠に未完成

    そう簡単に行かないのが Vim の恐ろしいところ。 Big Sky :: vimでスクリプト内関数を書き換える とんでもない落とし穴があります。 書き換えた関数でスクリプトローカルな変数にアクセスしようとすると、関数の ID に関係なく関数を定義したファイルのスクリプトローカルな変数を見てしまいます。 a.vim let s:value1 = 'a.vim:value1' let s:value2 = 'a.vim:value2' function! s:get_value() return s:value1 endfunction " A wrapper to call from other scope. function! GetValue() return s:get_value() endfunction b.vim source hookfunc.vim source a.vim

    Re: vimでスクリプト内関数を書き換える - 永遠に未完成
    otsune
    otsune 2009/08/26
  • VimM#4 に参加してきた - 永遠に未完成

    VimM#4に参加してきました。 平日だというのにあの人の集まり様。恐るべし Vim! ちなみに今回私は「座れない可能性が高そうだし、何より重いし邪魔」と言う理由でマシンは持っていかなかった。実際は持って行っていれば使えたけど、まあなくてもさしたる問題はなかったのでよしとしよう。 各発表の感想 上記の理由によりメモなんてものは取っていないので記憶から呼び起こす。発表で言われていたことと私個人の感想が混じっているので注意。 宣伝 - ko1 何かいきなり当初の予定と順序が違う気がする…いや、多分気のせいだな。ujihisaさんも予定通りって言ってたし!こういうのは臨機応変にいかないとね。 で、これは何かと言うと、プログラミングキャンプの宣伝。 個人的にはすごーく行ってみたいけど、残念ながら私には参加資格がない。若いっていいなぁ!(なんて言ってるともっと上の方々に怒られそうだ) 若い人は是非参

    VimM#4 に参加してきた - 永遠に未完成
    otsune
    otsune 2009/06/23
  • SKKやめました - 永遠に未完成

    SKKを使って見ていたわけだけれども、色々あってSKKを使うのやめました。 ちなみに私が使っていたのは主にSKK-IME。と、skk.vimを少々。 理由はいくつかある。列挙してみる。 タイプ数が多くなる これは宿命ですね。どうしようもないと思う。 単漢字に弱い まー普通のIMEでも大差ないっちゃないけど…。 一覧表示になった際、横方向に展開されるのは正直見づらいと思う。横方向に展開するのは恐らくEmacsの名残りだと思うんだけど、そこまで踏襲する必要はなかったかなー。 キーボードの位置との対応だとしても、縦方向に展開しても対して変わらないと思うし。 普通のIMEでは有り得ない変換ミスをする たまに「そりゃないだろ」って変換ミスをしてくれる。有名な例は「多きい」とか。 「達する」とか「発する」とか難しいです ;tass;uruとか;hass;uruとか。まあ慣れればどうってことはないんだけ

    SKKやめました - 永遠に未完成
    otsune
    otsune 2009/03/24
  • 勝手にプラグインを比較してみるテスト - 永遠に未完成

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

    勝手にプラグインを比較してみるテスト - 永遠に未完成
    otsune
    otsune 2009/03/17
  • 1