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

エンジニアですよ!

頑張れ俺くん、巨匠と呼ばれるその日まで

emacs不満集

emacs

ProofGeneralが使いたいがために使い始めたが、やはりvimに慣れているのでなかなかemacsの操作は難しいところがある。

うまくいかないところを書いて解消できたら更新していく。

text objectがないのは辛い → thingoptでそれっぽい操作を

http://dev.ariel-networks.com/articles/emacs/part5/

によると、概念的にはEmacsにも(というかelispに) thingという概念があるらしい。

http://ergoemacs.org/emacs/elisp_thing-at-point.html

とかに情報がある。

thing-at-pointというelispの関数によって扱うようなので?referenceを見てみる

Return the THING at point.
THING should be a symbol specifying a type of syntactic entity.
Possibilities include `symbol', `list', `sexp', `defun',
`filename', `url', `email', `word', `sentence', `whitespace',
`line', `number', and `page'.

symbolとかlistとか諸々を'含みうる'概念であるらしいので、text objectっぽい感じはする。

しかし同じく最初にあげたページによると、operator相当のものは存在しないとのこと。

なかなかこれがないとツライ気がするけど、それは考え方がvimがからかもしれない。

とりあえずはthingoptを入れてそれっぽい挙動を再現することで対応してみるが、結局そこまで柔軟ではなく使い勝手も良くないから使わなくなりそう

M- なキーバインドを押すのが辛い →つらい

単語単位の移動がM- なのが辛い

慣れてきた。どうしてもダメならバインド変えろと!

選択どうやるの?矩形選択とか → マークを使う。矩形は見た目ではわからない

Markがそれにあたるのかな

markとregionという概念を理解しよう

矩形選択は概念的には無いらしい

矩形操作はできる(C-x r tとかC-x r dとかで・・)

マークとリージョン

http://www.bookshelf.jp/texi/emacs-20.6-man-jp/emacs_10.html

そのものずばりなマニュアルページ

マークを任意の場所に置くことができて、マークとポイント(emacsではカーソル位置のことをポイントと言うんだよね)の間のことをリージョンという。

理解

vimのVisual modeと同じようなものと思えばいいか。

text obj的なものはこれとは違うな

でもtext objが超便利なのはkanaさんの力もありそうだから、まぁemacsでも頑張りようはありそうかな?

thingという概念があるならなおさら

ただやっぱNormal Modeないし、たくさんキー打たなきゃいけなくはなりそう

てか

http://www.bookshelf.jp/texi/emacs-20.6-man-jp/emacs_10.html#SEC55

テキストオブジェクトという言葉があった。

しかしこれ、例えば単語だとポイントは今の位置のままで単語の末尾にマークを置く、というだけなので語の途中にポイントがあったら一語をリージョンにするという挙動にはならない。

し、テキストオブジェクト少ない。

改善の余地がある

Unite.vim的なもの → helm

anything.el ?

helm ?

helm

https://github.com/emacs-helm/helm/wiki

ここを見つつ、melpaのhelmと名のつくパッケージを見つつ学んでいく

パッケージ管理はどうする? → Cask + Palletでいこう

解決済み→http://totem3.hatenablog.jp/entry/2014/11/13/090715

C-hはなぜデフォルトで前方削除じゃないのか? → それはUnix的挙動

  • C-hが前方削除なのはUnixの慣習であって、emacsUnixのバックグラウンドを持っていないからだとwikiに書いてあった

設定ファイルの書き方(文法)や置き場所はどこ?

elispについては以下あたりを参考にやっていく

未解決・未調査メモ集

  • Exモード相当の操作は・・・M-xなのかな?
  • 直前のコマンドを繰り返す的なのは・・・
    • 直前のコマンドを繰り返すrepeatというのがあり、C-x zにバインドされていた(2014-11-20 追記)
  • 行コピーとか行削除とかしたいんだけどc-a c-kとかしかないのかなー
    • なさそうね(2014-11-20 追記)
  • 繰り返し実行の回数の指定とかは・・・
    • C-uか(2014-11-20 追記)
  • f, F, t, T相当の移動がないのがきついなー
    • きつい(2014-11-20 追記)
  • なんでC-hは前方削除じゃないんだ・・・?
    • delete-backword-char をバインドしてみたけど、helpが使えないと不便だったので戻した・・(2014-11-20 追記)
  • 最近使ったファイルとか、Bookmarkとかしたい
    • helmで解決できそう
    • recentf-extがある (2014-11-20 追記)