読者です 読者をやめる 読者になる 読者になる

Blank File

LinuxとかPythonとかVimとか、趣味でいじる感じで

Vim に channel が実装されたので Markdown をプレビューするプラグインを作りました

Vim

Vimにchannel機能が実装されました。

Big Sky :: Vim にchannel(ソケット通信機能)が付いた。

昨日から株価・為替は乱高下し、大臣の辞任、日銀のマイナス金利導入決定など国内では大きなニュースが続いていますが、Vimmerにとってはこのパッチが最も影響があったのではないでしょうか。

というわけで、せっかくなのでchannel機能を使ってプラグインを書いてみました。 みんな大好きMarkdownのリアルタイムプレビューです。

miyakogi/livemark.vim

channelを使ってみたかっただけなので、今のところデバッグ・エラー処理・設定などはやっつけです。 お遊び以外では使わないでください。

続きを読む

Vim の g で始まるコマンドというかキーマップの一覧

Vim

今回、gをプレフィックスとするキーマップの種類別一覧を昔作ったのを思い出したので紹介します。地味に便利なものも結構あります。アルファベット順の一覧は :help g で見られますので、開いているマッピングを探す時などはそちらをご参照下さい。

2015年2月11日 整理し直しました。ついでに目次を追加。

続きを読む

Nimrod.vimのomni補完をまともっぽく動くようにしたので人柱募集です

Nim Vim

VimでNim*1のコードを書く時はとりあえず nimrod.vim を入れておけばなんとかなる*2のですが、このプラグインのOmni補完(インサートモードで <C-x><C-o> )がちゃんと動いてないっぽかったので修正してました。

ついでに、デフォルトでneocomplete 用の設定も入るようにしました(元はneocomplchacheの設定だけ入ってた)。

というわけで、PR送りたいのですが、ちょっと自信がないのでしばらく手元で試します。 自分で使うだけだと不安なので、Nimの補完に不便してて人柱してくださる人がもしいたらお願いしたいです。

修正後のファイルはmiyakogi/nimrod.vimimprove_completionブランチです。

続きを読む

この頃 流行りの 言語たち(他)でベンチマーク (Dart, Go, Julia, Nim, Python, Rust 他)

Dart Go Golang Go言語 Nim Python Python3 Rust Vim C言語 JavaScript Julia Lua PyPy Ruby プログラミング言語

自分が気になっている、主に最近のプログラミング言語ベンチマークをやってみました。方法は、42番めのフィボナッチ数列の値を計算する時間を測るだけです。フィボナッチで各種言語をベンチマーク - satosystemsの日記 を参考にさせていただきました。

  • 注意
    • 筆者はPythonくらいしか使ったことない素人です

言語紹介

測定した言語は、以下の11種類です。

選択基準は、

  • メジャーっぽい
  • 自分が知っていた
  • 自分が気になった
  • 環境構築が楽だった(or すでに構築済みだった)
  • 怖くない

などです。気分と手間で選びました。

測定条件

上記の言語でフィボナッチ数列の42番目の数を求める時間を測りました。42番目なのはなんとなく全部の言語がまともに測定できる範囲に収まったからです*1

あと、今回はコンパイルが必要な言語はコンパイル時間も測りました。 コンパイル時間もコードを書くときには重要な要素だと思うので、参考にしていただければ。

2015年2月22日 10時16分 追記

Cの最適化オプションを-O3にするとNimよりCの方が速いとのことです。この記事では-O2で実験していました。申し訳ありません。-O3オプション付きでコンパイルすると、NimよりもCの方が若干速くなります。

*1:他にも何通りか試しました。

続きを読む

VimでNim言語を書く設定

Nim Vim

VimNimのコードを書くときに、してあると便利な設定を紹介します。

Nimについては、このブログの前の記事を参照して下さい。

他のエディタの設定はここで紹介されています。以下、一部前の記事と重複しますがご容赦ください。

最低限必要なこと

nimrod.vimをインストールして下さい。 これでシンタックスハイライトや自動インデントが有効になり、ジャンプ機能等も使えるようになります。

以降は主に私が使っているプラグイン用の設定です。

続きを読む