2020年7月19日日曜日

hexl-modeが起動しなくなったとき (eval: Wrong type argument: characterp, nil)

hexl-modeが起動しなくなったとき (eval: Wrong type argument: characterp, nil)

結論

;; 間違った設定
(setq help-char nil)

のようにhelp-charをnilに設定するとhexl-modeが起動しなくなります。設定している場合は設定を外しましょう。

hexl-mode以外にも起動しない物がありそう。

詳細

  • help-char はcharacter (非負の整数)を割り当てる。nilを割り当ててはいけません。
  • (char-to-sting nil) でエラーが起きます

動画

2018年12月3日月曜日

親指の使い方

概要

Kinesis Advantage2 LF という一見変なお椀のようなキーボードを使って感じたことを書きます。

enter image description here

慣れるまで

最初は何が何やらわからず、打てませんでした。うとうとすると頭が痛くなってノートPCのキーボードの方に逃げていました。1ヶ月程度で慣れて打てるようになりました。慣れてからは普通のキーボードが平らなのが不思議なのと、普通のキーボードでは手が八の字型になって変な感じだなと思うようになりました。あと、人差し指で押すキーが、なんか変に感じます。(6とかBが遠く感じます)
今ではMacでもThinkpadでもKinesis Advantage2 LFを使っています。

買ってみたハードウェア

  1. フットスイッチ
    • 最初は超快適と思っていましたが足と手のタイミングが合わず使わなくなりました。
    • (フライトシミュレータでは使える気がする)
  2. マクロキーボード
    • これでいろいろ補えるのではないかと思いきや、使いこなせていません。
  3. ボタンがいっぱいついた ゲーミングマウス
    • マウス操作中にEnterを押したくて買いました。
    • 自分で決めた設定が覚えられず使いこなせず
    • 最初よかったマウスの滑りが悪くなって、以前から使ってたマイクロソフトのマウスに変えました。
    • Enter, Spaceだけ割り当てておけばよかったのかも。

不便な操作

  1. Excelでマウスとキーボードを交互に操作するとき。(クリックしたセルにスペースを入力するとか)
    普通のキーボードだと左手で押す部分を右手で補うのですが、となりのお椀まで右手をやるのに抵抗感を感じます。なぜだろう。。。
  2. カーソルキー。慣れるまでは大変。慣れてからも2つに分かれているのでちょっと大変。

親指の使い方

今まで、ThinkpadやMacのキーボードだとスペース、英数、かな、(変換、無変換)しか押さなかった親指ですが、KinesisをつかうとHome, End, Scroll up/down, Delete, Enterなど重要なキーを押すようになります。それがないキーボードを使っていると親指が空振りしてしまうわけです。
この親指部分だけの携帯用プチキーボードがあると便利な気がします。

キーを外して掃除できるんだけど、一回しかしてません、ごめんなさい。

Written with StackEdit.

X11 感じてみろ

概要

VcXsrv でEmacsがうまく表示されなくなって、数分Emacsを端末でつかってみたけど、うまく操作できず、X11 + Emacsのありがたさがわかったのでメモ。

XcXsrv (というかX11)ありがたいこと

  1. コピーアンドペーストがWindowsアプリ(とくにGoogle Chrome)との間でスムーズにできる。
    マウスだけでなく、キーボードでできる
  2. Ctrl-e とか端末だと押せないキーがある?

数分で感じたのはこれくらい。というか端末ではvimを起動して我慢して使うのが日常。 本当は、どこでもXでも端末でもEmacsを器用に扱ってみたい。

Written with StackEdit.

2018年11月26日月曜日

Emacsが背景色一色になっちゃったとき (Windows 10, VcXsrv)

結論

VcXsrv をアップデートしたら解決しました。

環境

  • Windows 10
  • VcXsrv をX windowサーバとして使用しています
  • VirtualboxでUbuntu 17.04を起動
    • ssh ログインしてX11 ポートフォワーディングでemacsを使用しています

現象

  • Emacsを再起動したところ背景色一色になりました(深い青)
    • 右クリック時のメニュー、ツールバーは表示されます(が、普段表示してません)
    • モードラインは表示されません
    • Emacs26でもEmacs25でも再現します
    • –no-init-file オプション付きで起動しても再現します
    • -nw (no-window-system) オプション付きだと動作します
  • Virtualboxの画面で起動したときは動作します

やってみたこと

  • VcXsrvをアンインストールして Xming-mesa をインストールして試してみました
    • Emacsの画面が表示されましたが数秒後にクラッシュしました。。
  • VcXsrv をアップデートしました
    • Emacsが正常に動作するようになりました。

感想

  • 数年間VcXsrvを使っていて、このようなことがなかったのですが。
  • しばらく -nw でEmacsを使用していたのですが、耐えられませんでした
    • コピペがマウスを使わないとできない(やりかたがあるのだろうか)
    • Ctrlを押しながらのキーの動作がwindow-system版と違う
  • VcXsrvありがたい

Written with StackEdit.

2018年8月28日火曜日

うごかない

自分で書いたコードが動かない。なんでだーとおもって、ふと 「ログでも入れるか」」 と、ソースコードを見返すと瞬時に間違っている箇所がわかるという体験。最近何度かありました。 ログを入れようと意識をしてコードを「見る」(読んでない)からなのか。まさか、リラックスはしていないと思うけど。 printfデバッグおそるべし。

2018年8月2日木曜日

休みが必要だ

テレビがそう言ってる、そうだそう言ってる♪ (奥田民生 コーヒー)

ふとリラックスしたときに今まで考えて煮詰まっていたことが解けると言う体験ありますよね。
他には

  1. タバコを吸うとき (吸わないから知らないけど、吸いながらおしゃべりしていると、アイディアが出るらしい)
  2. お茶、コーヒー、ジュースを飲んでぼーっとしているとき
  3. トイレで座ったとき
  4. 散歩しているとき
  5. 横になってゴロゴロしているとき

アルキメデスが風呂に入ったときに閃いたのは、お湯が溢れたのがヒントになったのもあるけれどもリラックス効果もあったのかなと思います。

リラックスとは別に、今の状況や問題を文字で書いたり、絵で書いたり、話す事によっても解決することがあります。アウトプットする事によって、話が論理的に整理できるからなんでしょうか。

というわけで、適度なタイミングで、書いたり、表現して、休むのがいいのです。ただ、休むタイミングとかどう休むかとかが難しいんだよな。

参考文献

外山滋比古著 思考の整理学 「寝させる」

2018年7月26日木曜日

Emacsでgrep検索して後悔するとき(長い行を含むファイルの検索)

 一行がやたら長いファイル (jqueryとかxxx.min.js みたいな行が長いJavaScriptファイル) が含まれるディレクトリをgrepしてしまって、Emacsのgrep bufferの 出力が異常に遅くなるとき、というか検索結果の出力が終わらなくてがびーんとなるとき。 解決策を考えてみました。
解決策A: grep を使う場合に、grepの出力をcutする
grep -nHI -r -e  * /dev/null | cut -c1-500 - 
検索できるレベルにはなったような。
解決策B: agを使う
長い行を切るために ag-arguments に--width 500 をつけます(--widthと500はargumentとして分けます) オプションをつけた場合とつけない場合でtermtosvgで動画を撮ってみました。
つけない場合(遅い)
つけた場合(検索結果を全て出力する)
比較
A:
利点: minibufferでgrepのコマンドラインを編集するのでキーワードと対象のファイルを同時に編集できます。
欠点: キーワードを入れるべき位置まで毎度カーソル移動するのが面倒(カーソルの初期位置は行末)
B:
利点: 高速。
欠点: コマンドラインオプションが長い、多くて agのコマンドライン上で検索したキーワードが見つけにくいです・
注意; widthオプションはagのmanには書いていないけれど--help オプションでは表示されます。
古いagにはwidthにはないことがあります。少なくとも2.0.0にはあります。
長い行を検索しちゃう例
  1. 改行を除いてminifyされた(.min)JavaScriptを含むディレクトリで再帰的に検索した場合
  2. ATGCからなるテキストファイルを検索した場合
検索対象から除外するのが正しいけれど、毎回指定するのは面倒なんだよな。。