タグ

ブックマーク / d.hatena.ne.jp/ka-nacht (10)

  • ノイズキャンセリングヘッドホンの感想とそのユーザーインターフェースに関する考察 - while (”im mirrored”);

    sankaseki
    sankaseki 2009/04/26
    ノイズキャンセリングヘッドホンの感想とそのユーザーインターフェースに関する考察 - while (”im mirrored”);
  • Vim: Key mappingを極める - while (”im mirrored”);

    vimVimを使いこなす上で避けて通れないのがkey mappingです。Vimのデフォルトのキーバインドはそれ自体でもそれなりに優秀なのですが、キーの割り当て方が今一だったり、そもそもキーが割り当てられていない機能も多くあります。それをカスタマイズするための機能がkey mappingです。Key mapping (あるいは単にmappingやmapとも呼ぶ)については:help map.txtを読めば一通りのことは分かるのですが、どういう風に使うべきかという観点からは詳しく説明されていませんし、掲載されているサンプルも実践という観点からは今一です。そこで、基的なところから始めて、よくあるパターンや使い分けの仕方、そしてハマりがちな落とし穴について述べていきたいと思います。基Key mappingを定義するコマンドは多数ありますが、基的な書式は以下の通りです: map [...]

    sankaseki
    sankaseki 2008/10/18
    Vim: Key mappingを極める - while (”im mirrored”);
  • Vim: Gauche interface - while (”im mirrored”);

    vim, gauche2008年の抱負の一つで挙げていたVimのGauche interfaceですが、ようやく一通りできました。kana's vim at gauche-interface-0.0.0a - GitHubからダウンロードできます。要Gauche 0.8.13 or later。configure時に--enable-gaucheinterpも忘れないように。今のところ、(vim-execute)、(vim-eval)、(vim-apply)といった基的なものだけがあります。GaucheからVimをコントロールする上での便利なAPIはまだありませんが、それは上記の手続きから導出できるはずです(むしろそのつもりで用意していません)。大体、以下のような感じのことができます: :gauche END (vim-execute "new") (vim-eval "&l:modif

    sankaseki
    sankaseki 2008/10/11
    Vim: Gauche interface - while (”im mirrored”);
  • Vim: エンコーディング関係の設定の仕方 - while (”im mirrored”);

    vimVimでのエンコーディング関係のオプションは次の通り:'encoding'グローバルなオプション。Vimが内部で用いるエンコーディングを指定する。バッファやレジスタやVimスクリプトでの文字列の中身はこのオプションで指定されたエンコーディングが用いられる。また、他のエンコーディング関係のオプションが未設定ならばデフォルトの値としても用いられる。基的にvimrc以外で変更すべきではない。また、このオプションを変更しても既存のバッファやレジスタやVimスクリプトでの文字列の中身のエンコーディングは変化しない。(なお、ヘルプでは明言されていないがsystem()の結果は常に'encoding'として扱われ、'fileencoding'への変換は行われない。変換を期待する場合は:read!を使う必要がある。このためにvcscommandは一部で不具合が出る。)'fileencoding'バ

    sankaseki
    sankaseki 2008/10/10
    Vim: エンコーディング関係の設定の仕方 - while (”im mirrored”);
  • Vim: 若かりしあの頃(Re: vim で任意のオプションの有効・無効を切り替える) - while (”im mirrored”);

    vim先日、大昔に書いた「vim で任意のオプションの有効・無効を切り替える」にはてなスターが付いていて吹いたのですが、改めて記述内容を見直してさらに吹きました。これはひどい。真似したり参考にしたりしては駄目ですよ! 4年越しの今、修正をするとしたら以下のような感じになります: function! s:toggle_option(option_name) execute 'setlocal' a:option_name.'!' execute 'setlocal' a:option_name.'?' endfunction nnoremap \ :call s:toggle_option('wrap') しかし当時の自分に「何故こう書くべきか」を理解しろというのは少々重荷、かなぁ。一つ一つは大したことではないのだけれど、それら全てを把握しておけというのは難しいです。しかもこの手の知識は:h

    sankaseki
    sankaseki 2008/08/16
    Vim: 若かりしあの頃(Re: vim で任意のオプションの有効・無効を切り替える) - while (”im mirrored”);
  • Vim: <SID>とs:の使い分け - while (”im mirrored”);

    vimVimの関数呼び出しでは場合によってとs:を使い分けする必要があるが、実はどのケースであってもを使えば動くには動く。ただというプレフィックスはs:に比べて見辛いため、できればs:を使いたい。ではどの場合にどちらを使うべきか。答えは以下の通り:s::autocmd、:command、:function/:endfunctionの中で使う(推奨 - でも動くには動く)。:map系か:menu系コマンドの中でのみ使う(必須 - s:では動かない)。Vimのカスタマイズに手を出し始めた頃は何故このような使い分けが必要なのか分からなかったが、今、この記事を書いていて思い付いた。:map及び:menuの定義時に与えられた{rhs}だけでは、その中に出現するs:の意味・用途を正確に判定することができないからだ。例えば以下のような定義があったとして: nmap =x =:=call=func=ret

    sankaseki
    sankaseki 2008/07/06
    Vim: <SID>とs:の使い分け - while (”im mirrored”);
  • Vim: narrow: 同一バッファを異なるウィンドウで別々に:Narrowしたいのだけど - while (”im mirrored”);

    sankaseki
    sankaseki 2008/06/29
    Vim: narrow: 同一バッファを異なるウィンドウで別々に:Narrowしたいのだけど - while (”im mirrored”);
  • 「Software Design 2008年7月号」のVim特集をdisる - while (”im mirrored”);

    vim, book, disVim特集があると聞いて「Software Design 2008年7月号」を購入しました。最初は立ち読みで済ませようかと思いましたが、id:taku-oさんが記事を書いていると知ったので、これは買わざるを得ないということになりました。という訳で各記事をdisるとします。1章 - Vimスクリプト入門 / 吉田佳宏P143 - ローカル変数g:やs:等の接頭辞のない変数のスコープは文脈によってグローバルかローカルかが変わる。(これは最初から挙げるような話題ではないが)無接頭辞の変数のうち、名前が定義済み変数(v:)と同じものは後者の変数として扱われる。この点はP143の「定義済変数」の節でも触れていない。文中の説明では、無接頭辞の変数のスコープは全てローカルであるようにしか読めない。そもそも何に対してローカルなのかの説明が一切ない(l:は関数内部でのみ有効)。

    sankaseki
    sankaseki 2008/06/28
    「Software Design 2008年7月号」のVim特集をdisる - while (”im mirrored”);
  • Vim: &lt;C-h&gt;にdelete-backward-charとhelp-commandを共存させられるのはVimだけ - while (”im mirrored”);

    vim先日のKansai.pm懇親会で話したネタその1: EmacsだとC-hにはデフォルトでhelp-command (ヘルプ関連の機能のプレフィックスキー)に割り当てられており、これは色々な意味でありえないのでdelete-backward-charに割り当てなおすことがmy .emacsの記述の第一歩だったりしますが、Vimだと両者を共存させられます。 nnoremap :help 普通、:helpを引く際は:h {subject}と入力しますが、上記の設定を用いて1キーで行なえるようにするとかなり便利です。些細な違いですが:helpを引く機会は結構あるので、長い目で見るとなかなかの効果を発揮します。

    sankaseki
    sankaseki 2008/06/14
    Vim: <C-h>にdelete-backward-charとhelp-commandを共存させられるのはVimだけ - while (”im mirrored”);
  • Vim使いのセンスというか使い方というか - while (”im mirrored”);

    vim :silent bufdo !git-add % :silent bufdo !git-add % - 8時40分が超えられない - subtechこの辺りにVim使いのセンスというか使い方というかが表れていると感じました。id:secondlifeさんはGNU screenでウィンドウをぽこぽこと作っては各々の中でVimを起動して使っているため、こういうコマンドやyanktmpなどのプラグインが有用なのでしょう。私の場合、Vimのプロセスは常に一つだけ起動しておき、作業内容毎にtab page(と同時に各々のカレントディレクトリ)を分けておき、コマンドラインでの作業が必要な場合は:suspend (実際には別ウィンドウに切り替えた後、適切なディレクトリにcd)しているので、:bufdoなどは使いものになりませんし、yanktmpは役に立ちません。先日のVim勉強会#2ではこの辺り

    sankaseki
    sankaseki 2008/06/14
    Vim使いのセンスというか使い方というか - while (”im mirrored”);
  • 1