Hatena::Grouphackathon

zrail (a.k.a. tobira17, h14i, ...) の Learning Log

2017-02-26

[]Re-try GNOME on Wayland on Fedora 20:15 Re-try GNOME on Wayland on Fedora - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - Re-try GNOME on Wayland on Fedora - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

失敗。すぐ GNOME on Xorg に帰りました。

  • ~/.Xresources が無視される
    • wayland はログインシェルとして動かない(らしい)から読み込まない
      • そういうモデルなのでこれは(多分)仕方ない
    • gdm のフックとか dbus とかその辺りで読み込めよってことらしい
    • bugzillaの一昨年あたりのissueには「大したオーバーヘッドじゃないんだからシェルの~/.profileあたりに 'xrdb -load ~/.Xresources' って書け」みたいなコメントが
  • caps lock
    • gnomte-tweak-tool でやる
    • でもなんか journalctl のログが 'Key repeat なんちゃらかんちゃら' で埋まる
  • ウィンドウの切り替えでdelay

X 関連マジ分からんなぁ。取っ掛りすら分かんない。

2017-02-11

[][]最近のマイヴィムアールシー 00:19 最近のマイヴィムアールシー - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - 最近のマイヴィムアールシー - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

外部プラギンに関して

一時期はプラギンジャンキー的な感じで色々入れてたんだけど、最近はだいぶ落ち着いてきた。

といってもやっぱり手放せないものはそれなりにある。

例えば kana さんの vim-*-user (とその上に乗る拡張)とか、 thinca さんの quickrun とか ref とか。

それから vim 本体には(まだ)バンドルされていない、新しめの言語用(例えば vim-rust)のプラギンとか。

インサートモードに関して

上とも関連するんだけど、自動(でポップアップまでしてくれる系の)補完プラギンを使うのを止めた(スニペット展開の emmet.vim は使ってるけど)。

使うのを止めた理由はいくつかあるんだけど、一番大きい理由としては動作の重さがある。

どういう状況で重いかは設定にもよるし一概には言えないんだけど、思い出に残るつらかったシチュエーションは rubycomplete.vim の編集中……。

オリジナルの rubycomplete.vimVim script の中で if_ruby を使ってたり #get_completions がめっちゃ長かったりと重くなりそうな要素がいくらかあるので仕方無いと言えば仕方無いんだけど、ファイルサイズ自体はそれほどじゃない(Vim 8.0-324 時点での同梱版 rubycomplete.vim は 833行、24361バイト)。

こいつを開くたびに自動補完をオフにする、あるいはそのための autocmd の設定をするのは面倒だったので、自動補完なプラギンの使用自体を止めた。

ただし念の為に書いておくと、自動(でポップアップまでしてくれる)補完プラギン自体が駄目なわけではない。

よく知らない言語の勉強中や書き捨てファイルの編集中なんかには非常に役立つと思う。

ただまぁ、僕の場合は <C-X> な補完で十分だなぁと思ったわけです。

&include と &define に関して

とりあえず $VIMRUNTIME に移動して

grep -E 'include\s*=' **/*.vim

とか

grep -E 'define\s*=' **/*.vim

すると分かるんだけど、大抵のファイルタイプのデフォルト値はあんまり良くないんですよね。特に &define のほう。

&path は環境にもよるし、適宜頑張って設定する(か、バッファ毎にベタっと設定するか)しかないんだけど、上の2つはもっと頑張れるんじゃないかなぁと思ってて、色々試してみている。

例えば \@> (強欲な量指定子)を(適切に)使ったりすると検索対象が多い場合にいくらか速くなるような気がしている。

追記。

&defineは本来?マクロ定義の検索のためにあるんだけど、現在はマクロ定義がないようなファイルタイプも数多く存在していて、そのようなファイルタイプで[dとかi_CTRL-X_CTRL-Dを使わないのは勿体ないよなぁ、というスタンスです。

2016-08-21

[][] どうでもいいメモ 01:36  どうでもいいメモ - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク -  どうでもいいメモ - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

let f = function
    [] -> 0
  | _ :: _ -> 1
;;
(* とか *)
let f x = match x with
    0 -> true
  | _ -> false
;;

みたいな書き方と

let f = function
  | [] -> 0
  | _ :: _ -> 1
;;
(* とか *)
let f x = match x with
  | 0 -> true
  | _ -> false
;;

みたいな書き方ありますよね。'|' の書き方。

見た目以外の差ってあるんすかね?

一行で書くときは上のほうが自然ですよね。

let f = function [] -> 0 | _ :: _ -> 1;;

2017-03-26 追記

Camlのスタイルガイドに「最初のパターンにも書け」って書いてあったし、ギッハブとかで見てもどのマッチでも(コンストラクタとかも)書くのが普通って慣習っぽいな。


ところでStandard MLだと上みたいな余分な'|'は置けないみたいですね。datatypeは知らん。

fun f l = case l
  of [] => 0
   | _ => 1;
(* とか *)
fun f [] = 0
  | f _ = 1;

みたいに書く(っぽい)。

もしかしたら処理系によるのかも知れない(どこかで見たような気がするけど、OCamlと混同しているような気もする)。

一応SML/NJ, MLKit, Mltonは試したけど駄目だったので言語仕様的には不正だとは思うけど。

2016-06-04二ヶ月ぶり

[]PFDS眺めてる 05:18 PFDS眺めてる - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - PFDS眺めてる - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

最近、もうちょっとML(というかいわゆる関数プログラミング)を勉強しようと思ってPFDSを眺めてる。

本当はちゃんと読みたいんだけど、英語力の壁に阻まれてる。主に語彙。

とか書いてて思ったんだけど、ちゃんと読むってどういう活動のことなのかなぁ。シントロピカル読書みたいな?


2017-04-19 追記

もうすぐ日本語訳版の発売らしい。上にも書いた通り英語には全く自信がないので是非読みたい。

2017-05-27 追記

発売して少し経ってから買った。非常に勉強になる。そして俺の英語リーディング能力は全くアテにならないことを再確認する結果となりました。

2016-04-07一ヶ月ぶり

[vim][Rust]rust-doc.vimをref.vimっぽく使いたい設定 00:41  [vim][Rust]rust-doc.vimをref.vimっぽく使いたい設定 - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク -  [vim][Rust]rust-doc.vimをref.vimっぽく使いたい設定 - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

rhysdさんのrust-doc.vimの設定の話。

ref.vimのソースを書こうかとも思ったけれど、設定をちょっと頑張ることにした。

なので、 ft=ref-rust-doc とかになってる。これのおかげで元々設定してあったref.vimのキーマップを活かせてる。

let g:rust_doc#vim_open_cmd =
\   'belowright new | file [ref-rust-doc] | setl ft=ref-rust-doc bt=nofile bh=delete noswf | VimProcRead w3m -dump'

最初はVimの:readを使ってたんだけど、展開されてしまう文字があって、それを回避するのが面倒くせえってことでvimproc.vimを使ってみたら上手くいった。

この設定は手抜きなのでウィンドウ分割の方向が固定だったりあんまり良くないんだけど、取り敢えず使えてる。

追記。

最初はこれでいけてると思ったんだけど、ドキュメント側が結構JS使ってて見つけられなかったりするので、デフォルト動作のブラウザを開いたほうがよさげです。

もしくはvim-racerのKを使えばソースのドキュメンテーションコメントに飛べるのでそれを使うとか。<Plug>RacerShowDocumentationとかそんな名前にしたような記憶があるけど、最新版はどうなってるか分からないのでソースを見て確認してください。