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

QuickFix を使いやすくするプラグイン作りました

vim

unite.vim や ctrlp.vim なんてなくても Vim には標準で、ある処理の結果を一覧してくれる機能があります。
それが QuickFixコマンド と QucikFixウィンドウ (& ロケーションリストウィンドウ) です。

しかし QuickFix の操作方法はわかりにくく使いづらい。*1
それを改善するのが次のプラグインです。

anyakichi さんの vim-qfutil の、モードをトグルすることで、同じキーマッピングでQuickFix ウィンドウとロケーションリストウィンドウを操作するアプローチの影響を受けています。

機能

  • QuickFix ウィンドウの表示非表示をトグル
  • QuickFix のエラー と ロケーションリスト のエラー を同じキーマッピングで操作
  • QuickFix のエラーが発生するコマンドを呼ぶと自動で QuickFixウィンドウ (ロケーションリストウィンドウ) を開く
  • QuickFix ウィンドウ内で、カーソル行のエラーをプレビュー / 次のエラーをプレビュー / 前のエラーをプレビュー / ウィンドウを閉じる というローカルキーマッピングを提供

設定例

nmap cz <Plug>(qutefinger-toggle-mode)
nmap cn <Plug>(qutefinger-next)
nmap cp <Plug>(qutefinger-prev)
nmap cP <Plug>(qutefinger-older)
nmap cN <Plug>(qutefinger-newer)
nmap cv <Plug>(qutefinger-toggle-win)

*1:標準で用意されている 次のエラー、前のエラーへの移動方法が、コマンドラインから :cn :cp と入力することなのですが、こんな冗長なことをやっている人はいないでしょう。

Vimのマークをハイライトするプラグイン作りました

vim

久しぶりの投稿です。
なんか AdventCalendar に取っておこうと思ったら、いざそのときになると記事を書くのが怠くなってやらないパターンが多いので、
やはりこういう記事は公開した直後に書くのが一番なんだろうなって分かりました。

Vimのヘルプに

A mark is not visible in any way.
マークはどのようにしても見えません。

とありますが、それを覆すプラグイン作りました。
マークを見えるようにするプラグインならすでに

という素晴らしいものがあるのですが、このプラグイン(や類似プラグイン)は sign を使ってマークを可視化しています。
私は sign 苦手なんですよねー*1
あと、vim-signature は細かい設計が気に入らなかったり。

そんなわけで sign を使わずにハイライトするものを作りました。

f:id:leafcage:20150519163005p:plain

ただ、sign を使ったものと比べてマークの文字がその場でわかりづらいとか目立ちづらいという欠点はあるので、
将来的には sign にも対応させるかもしれません。
現状でも<Plug>(visiblemarks-info-buf)などで簡易的に一覧できますし、詳細な一覧は unite-mark や ctrlp-mark にお任せします。

あと、現在バッファ内にいくつマークがセットされているかモニタリングできる変数や、連番式にマークできる機能も付けたい。
今現在は気力がないのでここまでで。

*1:左側にカラムが増えて折りたたみ時に表示が不格好になるから

今の電子マネーの姿は間違っている

携帯電子マネーが淘汰されつつあるのは間違っている

おサイフケータイが登場したとき私は歓喜した。 これぞ正しい発展の仕方だと思った。 カードはどんどん電子マネーに置き換えられるべきだと思った。

iPhoneが上陸した後も私がiPhoneを眼中に入れなかったのは電子マネーに対応していなかったからだ。

今や日本の電子マネーは世界標準に敗北し、ケータイからは除去されつつある。 そして電子マネーは別にICカードを持つという原始的な方式に戻りつつある。

私は悲しい。 そして怒りを覚える。

ICカードの問題はかさばること。どうしても厚みが出る。 そして、複数持つとお互い干渉し合って読み込みエラーが起きることだ。 自動車免許証とか、図書館カードとか、普段ICカードとして使うことがほとんどないものがICカード化されたことで一緒に財布に入れておくことが出来なくなった。 これは明らかに間違っている。 こういった普段ほとんどICカードとして使うことがないものは、せめてICカードの機能をオフにできるようにするべきだ。

そしてサービス提供者は何でもかんでもICカードにするのではなく、磁気カードやバーコードで済ませられるものならそちらを採用するべきだ。 磁気カードやバーコードなら干渉は起こらないからだ。*1

(そして多分カードリーダーもそっちの方がコストが安い)

利便を考えると、消費者はICカードを一つだけ持ち歩くのがあるべき姿だ。 各サービスは全て一枚のICカードに集約されるべきなのだ。

私は今は財布に入れるICカードを電車の定期券とナナコ(セブンイレブンのやつ)に絞っている。 このように持つカードを制限されるのはおかしい。間違ってる。

*1:何でもかんでもEdy付けりゃいいと考えるなよ楽天さん

俺が破壊的変更をしない大人しい奴だと思ってたか?甘いぜ!

vim

拙作Vimプラグインの破壊的な変更を行いました。

autoload/ を全て廃して plugin/ だけにしました。
そしてリポジトリ名を変更しました(foldCC → foldCC.vim) .vimが付きました。

ヒストリファイルを作るディレクトリのデフォルト設定を変更しました。
"~/.cache/yankround" から "~/.config/vim/yankround" に変わりました)。
g:yankround_dir がデフォルト設定のままの方は、別の場所にファイルが吐き出されます。
そして過去のヒストリがそのままだと利用できません。
もし過去のヒストリが必要ならば、過去のファイル ~/.cache/yankround/history から新しいファイル ~/.config/vim/yankround/history にリネームするなり書き写すなりするようにお願いし申し上げます。

そして、不完全ですが、複数Vimを起動しているときのヒストリを共有的に利用できるようにしました。

以上、ご迷惑をおかけして申し訳ありません。

yankround.vim をビジュアルモードにも対応させました

vim
  xmap p <Plug>(yankround-p)
  xmap gp <Plug>(yankround-gp)

以上のようなマッピングを定義することで、ビジュアルモードでの p でビジュアル選択している部分と、レジスタの内容を置き換えることが出来ます(ここまでは Vim のデフォルトの挙動と同じです)。
<Plug>(yankround-prev) <Plug>(yankround-next) で貼り付けたテキストを置き換えられます。

ところで、yankround は、貼り付け操作を :execute 'normal! p' で行っていますが、ビジュアルモードから yankround の関数を呼ばれたときにはビジュアルモードが解除されているので、ビジュアルモードに再び入るために、gv バインドを使うようにしています。
ノーマルモードの gv は、最後に試用したのと同じ範囲のビジュアルモードを開始します。
その状態から p バインドで貼り付けを行うのですが、どうも、無名レジスタを使ったときの挙動が妙なのです。

普通にビジュアルモード選択してから、ビジュアルモードを解除した後、gvして再びビジュアル選択し、pをしたときには期待通りにテキストの置き換えは行われます(そして無名レジスタには代わりに選択されていた文字列が入ります)。
しかし、ビジュアルモードから:execute 'normal! gvp' を行ったときには、バッファに何の変化も生じません。
無名レジスタに元々入っていた文字列ではなく削除された文字列で置き換えが行われているのではないでしょうか(つまり、文字列を削除した後削除した文字列を貼り付けているので何も変わらないように見える)。
これが Vim の仕様なのかバグなのか分かりませんが、仕方がないのでビジュアルモード利用時には、レジスタ0も利用しています。
ですので、yankroundのビジュアルモードでの挙動はレジスタ0を汚染する仕様になっています。

私が使っているAndroid 8つのウィジェット + 5つの環境系アプリ

mobile

※サムネイルは後ほど掲載する予定です。

私が使っているAndroid 8つのウィジェット + 5つの環境系アプリ

Android 環境まとめ系記事第一弾。 私が利用しているのは実用的なものが多いです。

方針

  • 情報表示が主
    • 遊びは要らない。有益な情報を提供するか否か、それが全て。
  • 省スペース
    • いくらクールでも場所を取ってしまうものはダメ。私のホーム画面は狭いのだ。

ガジェット

環境

  • Migiued+★★ 右上の時計スペースを置き換える。時刻の他に電池残量やメモリ使用率を表示するようにする。

  • Elixir 2★★ ステータスバー(通知)に、各種アプリへのショートカットや、各種機能のオンオフボタンへアクセスするための領域を作る。

  • オートマナーTrial★ 指定した時刻にマナーモードにしたり、マナーモードを解除したりする。

  • Llama - Location Profiles★ 指定した時刻や、場所をトリガにして、にマナーモードのオンオフや wifi のオンオフなどが可能。

  • aNdClip クリップボード拡張 Free版クリップボードの履歴を取る。実はそんなに使ったことがない。

ニート脱出できたっぽい

other

一度ニート脱出したと思ったら再び無職になった前例があるので油断は出来ないが、とりあえず脱出できたっぽい。

やったことといったらハロワで検索して書類送って面接に行ったことくらいだが。
パソコンに強そうというイメージで採用されたっぽいな。
ちなみに私は大学卒業してから6年間、正社員歴はない。
その会社はAmazon楽天やYahooにネットショップを出していて、運営を手伝ってくれる人を探していた。

私は別にウェブデザイナーではないのだが、楽天やYahooのショップのデザインが酷いというのが分かった。ウェブデザイナーではないがウェブデザイナー的な仕事を期待されてるんだろうなー。全然分からんけど。

ニートにコツなんてない。
資格を取ってそれを足がかりにするという方法を選ばないのであれば、
駄目な自分を採用してくれるような奇特な経営者を捜すしかないのだ。
経験上、B型の経営者は人情家で、ブランクを気にせずに採用してくれる気がする。
しっかりしてそうなところはブランクを気にして敬遠してくる。*1
だから、採用してくれそうなところに当たるまで頑張るしかないだろう。

私はハローワークしか利用しなかったが、ブランクのある人間が利用するのに、ハロワが最も適していると思っている。

他の求人サイトは登録料が必要なので、企業はそれだけ元を取ろうとする力が働いている。
ハロワの登録はタダだ(たぶん)。だから低クオリティの人材でもある程度許容してくれるかも知れない。
それに、ハロワの求人は始めに書類郵送させるものが多い。就活の交通費は高い。
実際に訪ねてみて問題外とはねられるくらいなら、書類選考の時点ではねられた方がお金も無駄にならない。
そのために、A4の封筒と、120円切手*2と、証明写真を大量に用意しておいて、いつでも履歴書を送れるようにしておく。 履歴書は、Wordでフォーマットを作っておいて、自分の名前だけ手書きにした。 履歴書手書き論なんてクソ食らえ。手書きでないことを理由に落とすようなところは端から相手にしないようにした。
こちとら何通も送るつもりなのだ。手書きでは量を送ることが出来ない。
そして、ハロワの求人では、「正社員以外」「登録派遣」「常用型派遣」の方が、「正社員」よりも採用されやすいような気がする。

そうして、私は何とか、月給16万円くらいのお仕事に就くことが出来た。

尤も、初めに言ったとおり、継続して雇用されるかどうかが重要で、少なくとも一年は雇用されなければ雇用保険は出ない。
人間関係が良好なので、このまま最低1年は継続していきたい。

*1:ブランクについて訊かれたとき、私は登録型の派遣の仕事をやっていたと言って誤魔化したが、実のところほとんど何もやっていなかった(Vimプラグインを開発していた)。

*2:これはもしかしたら今度の増税で値上がりするかも知れない