タグ

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

  • git pull したときに自動で git stash save と git stash pop をする - 永遠に未完成

    なんか作業している時に最新版取ってきたいとき、git stash してから git pull してまた git stash pop するのダルいので自動でやる設定。 [rebase] autostash = true 設定の名前見るとわかるけど、rebase の時にも動く。当然 conflict した場合は手動の時と同じように対応が必要。 便利。

    git pull したときに自動で git stash save と git stash pop をする - 永遠に未完成
    Layzie
    Layzie 2014/03/07
    知らんかった
  • 本当にキモい Vim script - 行継続編 - 永遠に未完成

    Vim Advent Calendar 2013 の 49 日目の記事です。 Vim script は行指向、もっと言うとコマンド指向の言語です。そう言った点で、シェルスクリプトに近いです。 Vim script if hoge ==# "HUGA" " if コマンド " ↓echo コマンド echo 'hi' endif " endif コマンド シェルスクリプト if [ "$HOGE" = "HUGA" ] # if コマンド then # then コマンド echo hi # echo コマンド fi # fi コマンド シェルクリプトの if なんかは if コマンドとは呼ばないかもしれないですが、そういう風にも見れるということで。 さて、行指向と言っても、1行が長くなったら途中で折り返したいものです。 シェルスクリプトでは行末に \ があると、次の行は現在の行の継続行とみ

    本当にキモい Vim script - 行継続編 - 永遠に未完成
    Layzie
    Layzie 2014/01/20
  • VimConf 2013 が開催されました - 永遠に未完成

    記事を書くのが遅くなりましたが、2013年11月16日、VimConf 2013 が開催されました。 私は今回、発表したくなかったのでスタッフという立場で関わらさせていただきました。色々勉強になりました。 さて、固いのは抜きにして、いつものゆるい感想書きまーす。 How to suggest new features for Vim - @kaoriya 資料: http://koron.github.io/vimconf2013/ いつもお世話になってる香り屋さんの発表。 いつものようにリハーサルなしとのことで、すごい。 Vim に限らず応用の効く話で、今後意識していきたい。 あと溜まってるパッチの投稿期待。 Evil is Justice. - @esehara 資料: http://www.slideshare.net/esehara/evil-is-justice-1 Emacs

    VimConf 2013 が開催されました - 永遠に未完成
  • 本当にキモい Vim script - 正規表現編 - 永遠に未完成

    Vim Advent Calendar 2012 の 339 日目の記事です。 先日、Lingr で :s コマンドの引数をパースする方法についての話になりました。 :s はご存知の通り、置換コマンドです。 :[range]s[ubstitute]/{pattern}/{string}/[flags] [count]今回 [range] と [count] は無視するとして、それ以外の {pattern} と {string} と [flags]、あとはパターン内でエスケープされているかもしれない区切り文字(多くの場合は /) が何になるか知りたい。 結果的にできたのは以下のような正規表現です。 \v^s%[ubstitute]([\x00-\xff]&[^\\"|[:alnum:][:blank:]])(%(\\.|.){-})%(\1(%(\\.|.){-})%(\1([&cegiIn

    本当にキモい Vim script - 正規表現編 - 永遠に未完成
    Layzie
    Layzie 2013/11/05
    なるほど、わからん
  • 空間を飛び越えろ!portal.vim を作りました - 永遠に未完成

    Vim Advent Calendar 2012 の 239 日目の記事です。 みなさんは Portal と言うゲームをご存知でしょうか。 ポータルガンと呼ばれるアイテムを駆使して仕掛けを突破しながら脱出を目指すアクションパズルゲームです。ゲームの細かい説明ははぶきますが、とてもおすすめのゲームなので是非遊んでみてください。 さて、このゲームで出てくるポータルガンは、2点間を繋げる穴(ポータル)を作ることができるのですが、これが Vim でも使えるととても便利そうです。 と言うわけで作ってみました。 https://github.com/thinca/vim-portal デフォルトでは <Leader>po でオレンジのポータルを、<Leader>pb で青のポータルを開きます。2 つのポータルを開くとポータル間を移動できます。詳しくは help を参照してください。 portal.vi

    空間を飛び越えろ!portal.vim を作りました - 永遠に未完成
    Layzie
    Layzie 2013/07/29
  • quickfix を便利に使う設定 - 永遠に未完成

    Vim Advent Calendar 2012 の 220 日目の記事です。 最近の Vim Advent Calendar は子供が生まれたり結婚したりで大変めでたいことが続いていますね。良いことです。みなさんも Vim Advent Calendar で執筆すれば御利益があるかもしれませんよ? あ、ちなみに私はいつも通りです。特に変わったことはありません。 さて、今回は私が quickfix で行っている設定をいくつか晒してみたいと思います。 設定方法 quickfix ウィンドウは filetype=qf が設定されます。なので、filetype qf に対する ftplugin を書けばよいです。つまり、 ~/.vim/after/ftplugin/qf.vimもしくは ~/vimfiles/after/ftplugin/qf.vimこの辺りに設定を書いていきます。 p で pr

    quickfix を便利に使う設定 - 永遠に未完成
    Layzie
    Layzie 2013/07/10
  • Vim で C# を書くなら OmniSharp で決まり! - 永遠に未完成

    Vim Advent Calendar 2012 の 173 日目の記事です。 今回は C# を書くのに便利な OmniSharp と言うツールを紹介します。これさえあれば、エディタとしての Visual Studio はもう必要ありません! 経緯 (興味ない人はここは飛ばしてインストールのところから読むと良いです) 先日、OmniSharp なるものの存在を教えてもらいました。 @thinca これってでどうなんでしょう URL 2013-05-09 23:47:26 via YoruFukurou to @thinca @mizchi お、面白そうですね!私は知らなかったです。明日あたり見てみますー。ありがとうございます。 2013-05-09 23:51:36 via tweetvim to @mizchi と言うわけで調査してみることにしました。 様々な罠にかかりつつ、ソースコード

    Layzie
    Layzie 2013/05/23
  • Vim を起動したときに Vim Girl に会いたい! - 永遠に未完成

    Vim Advent Calendar 2012 の 122 日目の記事です。 122日目と言うことで全体(365日)の1/3を突破しました。まだまだこれからですね。 さて、100日目のIMAGEDRIVEさんの記事で、Vim Girl のイラストが公開され、あちこちで好評のようです。Vim Advent Calendar 2012 のトップページを飾ることにもなりました。かわいいですね。 せっかくこんなにかわいいので、Vim の中でも Vim Girl ちゃんを拝みたいです。起動時に Vim Girl ちゃんが出向かえてくれれば最高です。が、しかし。Vim は画像が表示できないのです…しゅん。 しかししかし!画像が無理なら、文字で表現すればいいじゃない!ってことで、@shiwano さんが Vim Girl を AA 化してくれました!パチパチ! と、言うことは…あとは起動時にこれが表示

    Vim を起動したときに Vim Girl に会いたい! - 永遠に未完成
    Layzie
    Layzie 2013/04/01
    Vim Girlちゃんカワイイ
  • clever-f.vim を魔改造した話 - 永遠に未完成

    Vim Advent Calendar 2012 の 89 日目の記事です。 昨年、clever-f.vim と言うプラグインが rhysd(@Linda_pp) さんからリリースされました。 https://github.com/rhysd/clever-f.vim どんなプラグインかと言うと、f が便利になるプラグインです。 Vim の f はみなさんご存知ですね。f の次に入力した文字のところまでジャンプする機能です。例えば、fx とするとカーソル位置から次に見付かった x の文字までジャンプできます。l を連打するより速くて便利です。 この機能、便利なんですが、たまに誤爆します。 *clever-f.vim* or *clever-f* extends |f| mapping for more convenience. | ^今 | にいるんだけど、^ まで行きたい。fi だ! *

    clever-f.vim を魔改造した話 - 永遠に未完成
    Layzie
    Layzie 2013/02/28
  • submode.vim とその設定例なんかを紹介 - 永遠に未完成

    Vim Advent Calendar 2012 の 62 日目の記事です。 私が毎日のようにお世話になっているプラグインの1つに、kana さん作の submode.vim と言うのがあります。結構昔からあり、かなり便利なのにあまり知られていないような気がします。これはもったいない!と言うことで今回はこの submode.vim について書こうと思います。 submode.vim とは https://github.com/kana/vim-submode submode.vim は、ユーザが自由にサブモードを定義できるプラグインです。…と言っても何のことやらさっぱりですね。 Vim には、複数のキー、つまりキーシーケンスによって成立するコマンドがたくさんあります。例えば <C-w>+ は現在のウィンドウの高さを変更します。そして、この複数のキー入力が必要な割に、連続で入力したいコマンド

    submode.vim とその設定例なんかを紹介 - 永遠に未完成
    Layzie
    Layzie 2013/01/31
    知らなかった…
  • Sublime Text 2 のあの機能を使う - 永遠に未完成

    Vim Advent Calendar 2012 の 3 日目の記事です。 前回の kaoriya さんの記事でも触れられていましたが、Sublime Text 2、最近とても注目されていますね。私の周りにも使っている人をちらほらみかけます。 これだけ人気があるのだから、何か秘密があるはず。人気のある機能があるのではないか。その機能を Vim に移植できれば、Vim がもっと便利になるのではないだろうか。そう考えた私は、ちょっと調べてみることにしました。 色々便利な機能があるようですが、前回の minimap 然り、いくつかの機能はすでに移植が試みられているようです。そんな中今回は Sublime Text 2 の以下の機能に注目してみました。 このダイアログです。これは Sublime Text 2 を使っていると保存時に時折表示されるもののようで、この機能は無効にもできるようですが、有

    Sublime Text 2 のあの機能を使う - 永遠に未完成
    Layzie
    Layzie 2012/12/03
    Sublime Text2だと1回金を払ったらダイアログ出なくなるけど、このプラギンは何度でも出るという改善点がすばらしいですね
  • git add .; git reset --hard HEAD してしまったファイルのサルベージ - 永遠に未完成

    % git add . (あ、add じゃなかった。取り消そ) % git reset --hard HEAD (あれ?…ファイルは!?)ってなことが最近あって*1、サルベージ方法を調べたので覚書。 まず git fsck する。*2 % git fsck --full Checking object directories: 100% (256/256), done. Checking objects: 100% (316/316), done. dangling blob 05fc993def3f6d6130e530d1a8fca9c81e05d4c0 dangling blob 089434c22dd051562c3ca2193ebe3e562274a555 dangling blob 2338da1104c033c8266d6ec82833f051521b1063 dangling

    git add .; git reset --hard HEAD してしまったファイルのサルベージ - 永遠に未完成
  • vimrc読書会やった - 永遠に未完成

    少し前に Lingr の Vim 部屋で vimrc 読書会を開いたので、そのまとめ。 発端 きっかけは当にただの思い付きだった。 thinca: オンラインでの vimrc 読書会またやりたい。 http://lingr.com/room/vim/archives/2012/07/10#message-10599596 呼応した。 ujihisa: やりましょう http://lingr.com/room/vim/archives/2012/07/10#message-10599606 開催決定。 告知 開催が決定した直後に、その日の夜にやることを告知。 【告知】今夜23時(JST)から lingr/vimvimrc 読書会やります。ごゆるりとご参加ください。誰のを読むかはまだ決めてないので、読みたい/読んで欲しい人がいたら教えてください。 URL 2012-07-10 15:5

    Layzie
    Layzie 2012/07/15
  • showtime.vim 作った - 永遠に未完成

    経緯 yokohama.vim でプレゼンするにあたって、どうやってプレゼンするか悩んでいた。 @ShougoMatsu 一応今回はquickrunの解説でもしてみようかと考えているので資料は必要ですねと言ってもVimで発表したいのでそこでどうしようか若干ジレンマが。良いプレゼンプラグインないですかね。 2012-05-20 21:37:21 via OpenTween to @ShougoMatsu 色々検討してみるも… 今のところpresen.vimが資料がS式って点を除けばいい感じに見える。 URL 2012-05-20 21:38:42 via OpenTween S式はちょっと書きづらいなぁ。 誰が言ったか忘れたが、showoff がなんちゃらって発言が TL に流れて来て、show って単語だけに反応してポツリと以下のようなことを showtime.vim 2012-05-20

    Layzie
    Layzie 2012/06/06
    これは…期待
  • TokyoVim #7 に行ってきた - 永遠に未完成

    TokyoVim #7 に行ってひたすらもくもくしてきたよ。 最初は quickrun.vim のドキュメントの英訳の残りをやってリリース作業をしようかと思っていたのだけど、私の Gentoo 力の低さによってネットに繋ぐことができず、英語力も低い残念な私はあえなく英訳作業を断念するなどするのでした。無念。 しょうがないので適当に他のタスクを潰すなどしていた。 template.vim 以前以下のようなことを言われて、 やりたいのは@thincaさんのvim-templateでの多段テンプレート読み込み 2012-01-15 13:12:47 via TweetDeck どうしようかとずっと考えていたのだけど、template.vim って最低限の機能だけ提供してそれ以上のことは全然やらないんだよね。例えばファイル名の置換とかも標準では存在しない。 そういうのはロード後の hook で各自

  • ref.vim に webdict と言うソースを追加した - 永遠に未完成

    ref.vim に webdict と言うソースを追加した。取り急ぎ版。 これは設定した Web サイト(主に辞書サイトを想定)を扱うソース。 例えば以下のように設定する。 let g:ref_source_webdict_sites = { \ 'wikipedia:ja': 'http://ja.wikipedia.org/wiki/%s', \ } これで以下のように使用できる。 :Ref webdict wikipedia:ja Vim やっていることは、指定サイトをテキストブラウザで表示した結果をそのまま出しているだけだ。 辞書を使うともう少し細かく設定できる。 let g:ref_source_webdict_sites = { \ 'wiktionary': { \ 'url': 'http://ja.wiktionary.org/wiki/%s', \ 'keyword_e

    ref.vim に webdict と言うソースを追加した - 永遠に未完成
    Layzie
    Layzie 2012/05/12
    と思ったら、こちらが。
  • ref.vim から alc 用のソースを削除した - 永遠に未完成

    少し前に Twitter 上で、ref.vim の alc ソースが規約違反ではないか って話が出て、色々意見が出ていたのだけど、個人的には加工はしてないしギリギリセーフのつもりでいた*1。 いたのだけど、一連の流れを ALC の方が見つけたのかどなたかが報告したのかはわからないが、ALC の中の人からソースを削除するようメールをもらってしまった。 Twitter 上での意見の件もあるので、直接言われてしまっては利用させていただいている立場としては*2素直に削除するのが無難、ってことで、指定されたURLのファイルを削除した。 結構便利であっただけに残念だが仕方あるまい*3。 ちなみに、私はセーフのつもりでいたので、具体的にどのように規約に違反していたのかはっきりとわからなかったので、削除した旨を報告するついでに聞いてみた。返事待ち。返事が来たら追記なり新しいエントリに書こうかと思います。

    ref.vim から alc 用のソースを削除した - 永遠に未完成
    Layzie
    Layzie 2012/05/12
    まじっすか…翻訳するのに非常に便利に使わせてもらってたんで、残念。ブラウザの表示そのまま出すのにダメなんだ…。
  • quickrun.vim 0.6.0 リリース予告 - 永遠に未完成

    現在 quickrun.vim 0.6.0 を v0.6.0dev ブランチで開発中です。やりたいことはだいたいできたっぽいので、そろそろ master に merge しようかと考えてます。 で、0.6.0 ではいくつか非互換の変更があるので、周知も兼ねて新機能と一緒に紹介してみることにします。 ちなみにあまり設定をしていない人にはあまり変わらない変更が多いです。 hook 機能の追加 hook 機能を追加しました。いくつかのポイントにおいて、任意の Vim script を実行できます。(:help quickrun-hook) これにより、コア機能のうちいくつかを hook として再実装しました。オプションの与え方が変わっているので注意が必要です。 output_encode => hook/output_encode/encoding shebang => hook/shebang

    quickrun.vim 0.6.0 リリース予告 - 永遠に未完成
  • Vital.DateTime 書いた - 永遠に未完成

    前々から、あったらいいなーと思ってたので、vital に DateTime ってモジュールを書いた。名前の通り、日時を扱うライブラリ。 日付の取り扱いは面倒なことは容易に想像できたけど、やはりすごく面倒だった…てかまだあちこち未完成。 とりあえず簡単に使い方を解説。詳細は help 書いてあるんでそちらを。 DateTime オブジェクト 日時を表す。最小単位は秒。 wikipedia:先発グレゴリオ暦を扱います。ユリウス暦? 何それ。 ファクトリ 使い方は関数名と引数から察してください。 now([{timezone}]) from_unix_time({unix-time} [, {timezone}]) from_date([{year} [, {month} [, {day} [, {hour} [, {minute} [, {second} [, {timezone}]]]]]]

    Vital.DateTime 書いた - 永遠に未完成
    Layzie
    Layzie 2012/01/17
    日付周り面倒そうですね…
  • ユーザ定義コマンドのスコープ - 永遠に未完成

    問題: 以下のVim scriptを実行すると何が表示されるか。 command! -nargs=+ MyEcho echo <args> let g:var = 'global' function s:f() let l:var = 'local' MyEcho var endfunction call s:f() 答え: "local" そう。ユーザ定義コマンドは関数内で実行された場合そのローカル変数にアクセスできる。 では、以下の2つのVim scriptがあった場合、b.vim を実行すると何が表示されるか。 " a.vim let s:var = 'A' command! -nargs=+ MyEcho echo <args> " b.vim source a.vim let s:var = 'B' MyEcho s:var 答え: "A" スクリプトローカルな変数に関しては、コ

    ユーザ定義コマンドのスコープ - 永遠に未完成