lightline.vimのバッファ履歴表示コンポーネントをかいた リンクを取得 Facebook × Pinterest メール 他のアプリ 3月 13, 2014 この記事は Vim Advent Calendar 2013 103日目の記事になります。 今回はlightline.vimのコンポーネントを作ってみました。 基本的な部分については作者様直々に記事を執筆していらっしゃるのでそちらを参考にしてください。 作者が教える! lightline.vimの設定方法! ~ 初級編 - コンポーネントを作ってみよう 普段Vimを使っていてバッファ一覧が常に見える位置にあるのは何かと便利です。 ちらっと見てから、直ぐに:b2とかで移動できますからね。 ですが、あまり場所を取ってほしくはありません。 それに、ただのバッファ一覧ではなくてVimFilerとかUniteとかのバッファは除外してほしい。 しかも、開いた順に表示したい。 そこでlightline.vimのコンポーネントを書きました。 ぜひ活用してやってください。 また、バグがあれば気軽に教えて下さい。 リンクを取得 Facebook × Pinterest メール 他のアプリ コメント
カーソルキーさん@つかわない インサートモード編 3月 14, 2013 この記事は Vim Advent Calendar 2012 104日目の記事になります。 103日目は@ujihisaさんの unite-build でした。 Vimッ! 使わずにはいられないッ! カーソルキーでエディット? 貧弱貧弱ゥ!! はい、すいません。 というわけで 以前、書いた記事にも似たようなことをチラッと書きましたが、改めてきちんと書きなおしてみます。 Vimmerであればノーマルモードにおいて、息をするよりも簡単にhjkl移動をすることだと思います しかし、インサートモードではどうでしょう? 案外カーソルキーに手を伸ばしがちですね。 私もVimを使い始めたばかりの頃はそうでした。 そもそも、インサートモードにおいてカーソルキーを連打ってしまうくらいの移動ならば <ESC>してノーマルモードで移動すべきだと思います。 Vimは音ゲーでは無いので連打なんてするべきではないのです。 標準では以下のように与えられています。 下の行へ <C-G><C-J> <C-G>j 上の行へ <C-G><C-K> <C-G>k これでは物足りませんね(゜.゜) そこで、この上記に加えるといいであろう設定を列挙します。 <C-A> - 行頭 <C-E> - 行末 <C-F> - 右 <C-B> - 左 noremap! <C-A> <Home> noremap! <C-E> <End> noremap! <C-F> <Right> noremap! <C-B> <Left> noremap! <C-D> <Del> emacsライクに設定しています 私がこの設定にしている理由はMacを常用しているからです。 Macだと結構な割合でemacs移動バインドがテキストボックス内で使えるので案外役に立つのではないでしょうか。 あと、emacsも最低限の動作は覚えてお... 続きを読む
Android で MIME Type 判別 12月 24, 2011 ちょっとアプリを作っていてかなり悩んだのでメモとして残しておく MIME Typeというのは見たことはあるが、きちんと知らないので調べて見ました MIME 【Multipurpose Internet Mail Extension】 "マイム"と読むらしい 直訳してみれば、"多目的インターネットメール拡張機能"かな? ネットワーク上で動画、音声、画像などのファイルを扱うための規格 RFC2045~2049で規定されている。 拡張子とファイルのデータを関連付けているものらしい " タイプ名/サブタイプ名"のように区切られて表現される 例としては、 text/html text/plain image/jpg application/pdf などなど さて、例えば、AndroidでSDカードにアクセスし適当なファイルを開いた際 どんなファイルか判別したいとする この時にMIMEを読み取り画像か音声かテキストか判別し 他のアプリにIntentを投げようと思います ※12/25追記:以下の方法だと動作しない場合があるので更に下に追記しました。 Android Developerの ここ を参考に //ファイル名からMIMEタイプ取得 public String GetMIMEType(String Path){ //拡張子を取得 String ext=MimeTypeMap.getFileExtensionFromUrl(Path); //小文字に変換 ext=ext.toLowerCase(); //MIME Typeを返す return MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext); } 引数のパスは"/sdcard/Music/xxx.mp3"のように渡しています。 そこからgetFileExtensionFromUrlメソッドを使って、拡張子(mp3)を取得 それをgetMimeTypeFromExtensionメソッドに入れてMIME Typeを呼び出し元に返す getFileExtensionFromUrlとgetMimeTypeF... 続きを読む
Elixir に入門したいので雑な 分散KVS を自作した 5月 07, 2019 長い連休を利用して、Elixir入門のために分散kVSを自作しました。 前書き 動機は以下の2点です。 Elixirに入門したかった 何か自分で手を動かしたかった Erlangが書けるので同じErlangVM上の言語であるElixirが前から気になっていました。 丁度いい機会だし、入門してみるかな、くらいの気持ちで始めました。 初めてだったので、株式会社gumiが連載している Elixir入門の連載を開始(Elixir入門もくじ) - DEV Community 👩💻👨💻 を参考にしました。単純な日本語翻訳ではなく、適宜加筆修正をしているようです。(後半に行くに連れて雑な文が増えているのが少しだけ残念でした。) 自分は集中力が無いので通読は苦手なのですが、23個の記事に全て目を通してから次を考えることにしました。Erlangと同じErlangVMで動くので、他の全く知らない言語よりは理解がしやすいだろうと思っていましたが、軽量プロセスやメッセージのやり取りといった基礎は共通していても、かなり機能が豊富、という印象を受けました。 なんとか全てを読み終わった後に、ErlangVMなので分散システムがいいな、と思い雑な分散KVSを作って見ることにしました。適当に検索したところ Building a Distributed Fault-Tolerant Key-Value Store - The Blog of Fourthbit という、Apache Cassandraの概要を紹介しつつ、KVSの大事な部分の実装ぽいものを説明する、という記事を今回の目的にぴったりの記事を発見しました。この記事は実装するためにかなり参考になりました。 目標 休みの間にそれっぽく動くところまで持っていく CRUD (Create/Read/Update/Delete) のインターフェースを持つ 1台は落ちても読み書きができる 耐障害性 出来たもの リポジトリはこちら mopp/brownie: Hobby Distributed Key-Value Store 機能の概要 N台1組のElixirクラスタを構築する 実行時のノード追加は不可 データはオンメモリで保持している ... 続きを読む
コメント
コメントを投稿