タグ

ブックマーク / thinca.hatenablog.com (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 と言うわけで調査してみることにしました。 様々な罠にかかりつつ、ソースコード

  • C# のソートでハマった話 - 永遠に未完成

    C#(mono 2.10.9) で、特定の値を先頭に持ってきつつソート、というのをしようとした。 こんな感じかなー。 var list = new List<int>{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int t = 5; // 5 を先頭に持って行きたい list.Sort((a, b) => { if (a == t) return -1; if (b == t) return 1; return a.CompareTo(b); }); Console.WriteLine(string.Join(", ", list)); 1, 5, 2, 3, 4, 6, 7, 8, 9, 10…え? どういうことなの…。 最初は私の浅はかなアルゴリズムが間違っているのかと思い、かなり確認したがわからず。 試しに比較関数がどう呼ばれているかチェックしてみた。 var l

    C# のソートでハマった話 - 永遠に未完成
    zetamatta
    zetamatta 2013/03/30
    mono版C# で、ある値を先頭にするような比較関数を渡した場合の動作が変というお話
  • Sublime Text 2 のあの機能を使う - 永遠に未完成

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

    Sublime Text 2 のあの機能を使う - 永遠に未完成
    zetamatta
    zetamatta 2012/12/05
    これは確かに vim でも必要だったかもしれないネw
  • Re: UbuntuのノートPCでVimをコンパイルした - 永遠に未完成

    +lua が入らないという話。 --enable-luainterp(Luaインターフェース)をつけるとコンパイルできない 解決法: あきらめる 誰かLuaインターフェースをUbuntuでコンパイルする方法教えてください... UbuntuのノートPCVimをコンパイルした - Humanity あきらめる? あきらめたら そこで試合終了ですよ…? 必要そうなパッケージ入れる Ubuntu 詳しくないので適当です。 $ sudo apt-get install lua5.1 liblua5.1-0-dev ついでに色々有効にしたかったので以下を入れた。当に全部必要かとかは確認してない。 $ sudo apt-get install xorg-dev libgtk2.0-dev libperl-dev ruby-dev python-dev python3-dev tcl-dev plt

    Re: UbuntuのノートPCでVimをコンパイルした - 永遠に未完成
    zetamatta
    zetamatta 2010/09/12
    vim 7.3 で Lua インターフェイス込みでビルドする方法
  • 続・NYAOS 3000 で bat ファイルとかを拡張子なしで実行する - 永遠に未完成

    id:zetamatta さんがfilter2を速攻で実装してくれた。id:zetamatta++ で、前回のコードに微妙にバグがあったのとNYAOS 3000更新に伴い書き直してみた。 まず、前回の奴は無駄に suffix の拡張子まで展開していたんだけど、この展開は alias や suffix 自体の展開前にやらないと意味がない。一方、PATHEXT の展開は alias の後にやらないとダメ。なので、両者を別々に書くことに。 修正 function nyaos.filter(cmdline) cmdline = cmdline:gsub('^%S+', function(cmd) if cmd:match('%.') then return false end local path='.;' .. os.getenv('PATH') local cmdl=cmd:lower() l

    続・NYAOS 3000 で bat ファイルとかを拡張子なしで実行する - 永遠に未完成
    zetamatta
    zetamatta 2010/05/22
    ここまでやってもらえると、作りがいがあるというものです、はい。
  • NYAOS 3000 で bat ファイルとかを拡張子なしで実行する - 永遠に未完成

    NYAOS 3000 は bat ファイルを実行するのに拡張子が省略できない。なので scala.bat とか git.cmd とか ant.bat とか rake.bat とか非常にめんどい。中には bzr みたいに Windows インストーラで入れると bzr.exe なのに Python base のインストーラで入れると bzr.bat になるようなのもあってものすごくめんどい。 なんとかならないかと思っていたけどふとコマンドラインフィルタでなんとかできそうだと思ったのでやってみた。 function nyaos.filter(cmdline) cmdline = cmdline:gsub('^[%w-_]+', function(cmd) if cmd:match('%.') then return false end local path='.;' .. os.getenv(

    NYAOS 3000 で bat ファイルとかを拡張子なしで実行する - 永遠に未完成
    zetamatta
    zetamatta 2010/05/21
    うぉ、すんませんです。
  • Vim プラグインの開発スタイルのお話 - 永遠に未完成

    Vim のプラグインって作ってる最中は Vim 自体の動作も不安定になりがちだし、普段の環境と同じ環境で作ってるとなにかと弊害が起きがち。ちょっとした変更ならまだしも、大規模な変更は 1 度の作業で終わらないこともあるし、作業中断して別のことをやることになったりするとさらに面倒。 または、VCS でプラグインを管理したくて、プラグインごとにリポジトリを独立したいけど環境分けるのが面倒だとか。 というわけで私が普段やってる Vim プラグインの開発スタイルを晒してみようと思う。 設定 私の vimrc には最後の方に以下の記述がある。 " Load settings for each location. augroup vimrc-local autocmd! autocmd BufNewFile,BufReadPost * call s:vimrc_local(expand('<afile

    Vim プラグインの開発スタイルのお話 - 永遠に未完成
    zetamatta
    zetamatta 2010/02/19
    カレントディレクトリを runtimepath に加えることにより、開発中のプラグインの影響で、vim そのものが使えなくなることを回避する技
  • cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成

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

    cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成
    zetamatta
    zetamatta 2010/02/12
    これはすばらしい
  • Vimスクリプト基礎文法最速マスター - 永遠に未完成

    流行ってるみたいなので遅ればせながら便乗。需要?何それおいしいの? Perl基礎文法最速マスター - サンプルコードによるPerl入門 - Perlプログラミングの基礎から応用まで Route 477(2010-01-25) PHP基礎文法最速マスター - Shin x blog Python基礎文法最速マスター - LazyLife@Diary VBA基礎文法最速マスター - いろいろ解析日記 Java基礎文法最速マスター - いろいろ解析日記 Bash基礎文法最速マスター - いろいろ解析日記 Haskell基礎文法最速マスター - think and error Brainf*ck基礎文法最速マスター - このブログは証明できない。 VBScript 基礎文法最速マスター - CX's VBScript Diary - VBScript グループ JavaScript基礎文法最速マス

    Vimスクリプト基礎文法最速マスター - 永遠に未完成
    zetamatta
    zetamatta 2010/02/02
    vimスクリプトの他、他の言語へのリンクもあるよ!
  • Re: Vimスクリプトはやっぱ言語としての完成度は低い - おつあり - 永遠に未完成

    Vimスクリプトにヌルバイトを含む入力があった場合は「正しく扱えない」 Vimスクリプトはやっぱ言語としての完成度は低い - Humanity そうなんですよね。Vim の内部文字列の扱いは非常に変態的で頭がいたいところ。Vim の内部での文字列は C のものと同じなので、NUL 文字は使えない。 ちなみにNUL文字を含むファイルを開いた場合、Vim はそれを に変換して保持する。この辺りの詳細は :help NL-used-for-Nul で。 あとこれに関連する話で、Vim は UTF-16 を内部的に扱えないので、Unicode は全て UTF-8 で表現される。この辺りの詳細は :help iconv() で。 あとgetchar()は基的に文字の数値を返すけど、特殊文字が押された場合は先頭バイトが0x80の文字列を返す。 Vimスクリプトはやっぱ言語としての完成度は低い - H

    Re: Vimスクリプトはやっぱ言語としての完成度は低い - おつあり - 永遠に未完成
    zetamatta
    zetamatta 2009/12/27
    曰く『Vimスクリプトにヌルバイトを含む入力があった場合は「正しく扱えない」』『NUL文字を含むファイルを開いた場合、Vim はそれを <NL> に変換して保持する』『マンドによって解釈が変わる時点で十分変態だよなぁ』
  • 1