週刊Emacs News 2016年11月21日

[emacs-tangents](http://lists.gnu.org/archive/html/emacs-tangents/)メーリングリストにまとめられたEmacs界隈のニュースに@tadsanが雑にコメントつけつつ紹介していくよ ヾ(〃＞＜)ﾉﾞ☆

**前回**： [週刊Emacs News 2016年11月14日](http://qiita.com/tadsan/items/251120c411dafeda6d0e)

リンクは主に[reddit.com/r/emacs](http://reddit.com/r/emacs/new)、[/r/orgmode](http://reddit.com/r/orgmode)、[/r/spacemacs](http://reddit.com/r/spacemacs)、[Hacker News](https://hn.algolia.com/?query=emacs&sort=byDate&prefix&page=0&dateRange=all&type=story)、[planet.emacsen.org](http://planet.emacsen.org)、[Youtube](https://www.youtube.com/results?search_query=emacs&search_sort=video_date_uploaded)、[Emacs NEWS file](http://git.savannah.gnu.org/cgit/emacs.git/log/etc/NEWS)の変更、[emacs-devel](http://lists.gnu.org/archive/html/emacs-devel/2016-11)あたりから採られてるよ。

## 注意

この記事の出典： [2016-11-21 Emacs News](http://lists.gnu.org/archive/html/emacs-tangents/2016-11/msg00003.html)

注釈が不要なひとは[emacs-news Archives - sacha chua :: living an awesome life](http://sachachua.com/blog/category/geek/emacs/emacs-news/)から読むと良いですよ。

## ナビゲーション

### [Moving around faster in Emacs](https://www.reddit.com/r/emacs/comments/5dgp2u/moving_around_faster_in_emacs/)

「もっと行移動を速くしたいんだけど」みたいな相談。

紹介されてるのは[ace-jump-mode](https://github.com/winterTTr/ace-jump-mode)([るびきちさんによるace-jump-mode.elの紹介](http://emacs.rubikitch.com/ace-jump-mode/))、[goto-last-change](https://github.com/camdez/goto-last-change.el)、[anzu](https://github.com/syohex/emacs-anzu)(作者@syohexさんによる[anzu.elの紹介](http://qiita.com/syohex/items/56cf3b7f7d9943f7a7ba))、[iy-go-to-char](https://github.com/doitian/iy-go-to-char)など。

私はしばらく@ShingoFukuyamaさんの[helm-swoop](https://github.com/ShingoFukuyama/helm-swoop)([helm-swoopでEmacsを位置同期検索 - Web学び](http://fukuyama.co/helm-swoop))が気に入ってるのと、[iy-go-to-char](https://github.com/doitian/iy-go-to-char)が少し気になってますね。

### [How do I keep my buffers list clean?](https://www.reddit.com/r/emacs/comments/5d414w/how_do_i_keep_my_buffers_list_clean/)

「Emacsを使ってるとバッファ一覧が散らかってくるんだけどさ」みたいな相談。バッファ一覧は<kbd><kbd>C</kbd>-<kbd>x</kbd> <kbd>C</kbd>-<kbd>b</kbd></kbd>(`M-x list-buffers`)で視られるよ。

まあEmacs標準添付の[midnight.el](https://www.emacswiki.org/emacs/MidnightMode)([midnight.el で毎日 0 時に古いバッファを削除する](http://d.hatena.ne.jp/rubikitch/20090407/1239115399))に付属してる`clean-buffer-list`をチェックしとけよと最初の意見。

IDOとかHelmみたいな[補完フレームワーク](http://qiita.com/tadsan/items/33ebb8db2271897a462b)を使ってるなら最近使った順にバッファを並べられるので気にしなくなったって話。

あとはXah Leeたんの[Emacs: Open Last Closed File](http://ergoemacs.org/emacs/elisp_close_buffer_open_last_closed.html)とか[Emacs: Next/Previous User Buffer](http://ergoemacs.org/emacs/elisp_next_prev_user_buffer.html)あたりを読んでおくと良いかも、といった紹介。

## Org Mode

### [Improvements to lazyblorg: blogging with org-mode improved with easier setup and upgrade](http://karl-voit.at/2016/11/18/lazyblorg-setup-improvements/)

<q>blogging with Org-mode for very lazy people</q>と題された[lazyblorg](http://karl-voit.at/tags/lazyblorg/)ってブログエンジンを作ってるらしい。

### [Easier way to convert text to ordered list in org mode?](https://www.reddit.com/r/emacs/comments/5dbn1g/easier_way_to_convert_text_to_ordered_list_in_org/)

テキストの並びを**順序付きリスト**(1, 2, 3... と並んだ番号付きのリスト)にカンタンに変換するにはどうしたらいい？ って質問。

<kbd><kbd>C</kbd>-<kbd>c</kbd> <kbd>-</kbd></kbd>(<kbd><kbd>Control</kbd>+<kbd>c</kbd></kbd>と<kbd>-</kbd>を続けて押す)とか、<kbd><kbd>S</kbd>-<kbd><right></kbd></kbd>(<kbd>Shift</kbd>とカーソル右<kbd>→</kbd>)を押すといいらしいよ、と最高の回答。しらなかった…

![org-orderd-list-conversion.gif](https://qiita-image-store.s3.amazonaws.com/0/4121/f87fc2d0-0999-9993-1d7b-5eb7d7014a68.gif)

### [using babel to put your init file in org](https://www.reddit.com/r/emacs/comments/5d4hqq/using_babel_to_put_your_init_file_in_org/)

org-babelを使ってEmacsの初期化ファイル(`~/.emacs.d/init.el`または`~/.emacs`)を[文芸的プログラミング](https://ja.wikipedia.org/wiki/%E6%96%87%E8%8A%B8%E7%9A%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)スタイルで書きたいんだけど、どうするのがいいの？ って相談。

### [I just received my custom org-mode stickers!!](https://pbs.twimg.com/media/CxpssmrXEAQ3EoD.jpg) ([Reddit](https://www.reddit.com/r/orgmode/comments/5dujem/i_just_received_my_custom_orgmode_stickers/))

[org-modeのステッカー作ったぜー](https://www.stickermule.com/marketplace/16041-org-mode-sticker)って話。

### [scientific paper management with orgmode; autotag,full text search, read out cross refs?](https://www.reddit.com/r/orgmode/comments/5d1xz1/scientific_paper_management_with_orgmode/)

「科学論文とか管理するのにorg-mode最高じゃね？ でも[文献管理](https://www.google.com/search?q=%E6%96%87%E7%8C%AE%E7%AE%A1%E7%90%86)とかどうやってんの」(異常に雑な要約)

[jkitchin/org-ref: org-mode modules for citations, cross-references, bibliographies in org-mode and useful bibtex tools to go with it.](https://github.com/jkitchin/org-ref)とか、[Recoll](http://www.lesbonscomptes.com/recoll/)と[helm-recoll](https://github.com/emacs-helm/helm-recoll)とか使ったらいいんじゃないの、みたいな話。 *(私は人生で論文を書いた経験がないのでよくわからない)*

## Emacs Lisp

### [format-spec](http://mbork.pl/2016-11-19_format-spec)

`format-spec` 知らなかったけど、べんりっぽい…

```
(format-spec "%n %v %p %o."
             '((?o . "the fence")
               (?p . "over")
               (?v . "jumps")
               (?n . "A dog"))) ;=> "A dog jumps over the fence."
```

### [Read and write files in Emacs Lisp](http://lunaryorn.com/posts/read-and-write-files-in-emacs-lisp.html)

Emacs Lispでファイルを読み書きする方法。私も似たような記事を書いた([ファイルを読み込む - Qiita](http://qiita.com/tadsan/items/248f63934204683f909b))。

いまどきは[f.el](https://github.com/rejeep/f.el)を使って`f-read-text`とか`f-write-text`とか使っておくといいよ、って結論。

### [Debug a function in Emacs with Spacemacs](https://www.youtube.com/watch?v=74kmEI92ru8) (0:14)

SpacemacsでClojureのコードを書いてるっぽい動画。式の評価値をいい感じに表示してくれてて、かっこいい。 <!-- なんかインスピレーション湧いてきた -->

## コーディング

### [Refactor clojure code like a champ!](https://youtu.be/pKzIxtR0ElU) (16:43)

Clojureでいい感じにリファクタリングする動画。

### [emacs-flow-jsx: Emacs mode for Flow type annotations and React JSX syntax](https://github.com/omouse/emacs-flow-jsx) ([Reddit](https://www.reddit.com/r/emacs/comments/5dw83d/emacsflowjsx_emacs_mode_for_flow_type_annotations/))

JavaScriptの[Flow](https://flowtype.org/)(静的型チェッカー)形式のアノテーションを編集するためのメジャーモードっぽい。 *(実装も読んでみたけど、よくわからなかった…)*

### [Emacs compiling your js and CSS on save](https://www.reddit.com/r/emacs/comments/5dmlun/emacs_compiling_your_js_and_css_on_save/)

JavaScriptとかCSSを保存したらコンパイルしたい！ って話。……なんだけど、GruntとかGulpとか使っときゃいいだろと冷静なつっこみ。 *(概ね同感)*

### [configure whitespace mode to show only trailing whitespaces](https://www.reddit.com/r/emacs/comments/5dbz3f/configure_whitespace_mode_to_show_only_trailing/)

行末に余分なホワイトスペースがあるときだけ表示したいお、みたいな相談。私は`show-trailing-whitespace`がすきです。

```
(setq-default show-trailing-whitespace t)
```

### [Using Emacs - 21 - web mode](http://cestlaz.github.io/posts/using-emacs-21-web-mode/#.WCyx4DMxr00.reddit)

最近のEmacsでHTMLテンプレートを編集するのに欠かせない[web-mode.el](http://web-mode.org/)の紹介。動画付き。

## Emacs本体開発

### [New option &#x2013;new-daemon runs in foreground, doesn't fork](http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=36b99556dea23f17d5598bbed366e7201eec9fbb)

systemdフレンドリーな新しいEmacsサーバ(デーモン)？ らしい？

### [New function file-local-name](http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=22946702b4296c0e42e4baf6221e205b52d05cbf)

リモートサーバーに接続中でも明示的にファイルのローカル名をとれる、らしい。たしかにこれがめんどくさくて、`tramp-file-name-localname`とか使ってる。次期のEmacsではTRAMP的な機能が強化されてくのかなー。

### [New specifier for format-time-string: calendar quarter is %q](http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=b81bb485eaaa42f93f36988b8b17576f489b988d)

calendar quarter、つまり四半期のQ1とかQ3みたいな数字がとれるっぽい？

### [New input method cyrillic-tuvan](http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=e8efa66e01933b8ae7ac9abf530a3818551c1343)

キリル文字表記の[トゥバ語](https://ja.wikipedia.org/wiki/%E3%83%88%E3%82%A5%E3%83%90%E8%AA%9E)用の入力メソッドが追加されたらしい。やったね。[ホーミー](https://ja.wikipedia.org/wiki/%E3%83%9B%E3%83%BC%E3%83%9F%E3%83%BC)とか[フーメイ](https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%BC%E3%83%A1%E3%82%A4)とか呼ばれる[喉歌](https://ja.wikipedia.org/wiki/%E5%96%89%E6%AD%8C)が超有名な言語ですな。

参考： [トゥバ・喉歌について - Harmony Fields](http://www.harmony-fields.com/feature/tuva.html)

### [Discussion about truncated backtraces and the ability to expand &#x2026; at point](http://lists.gnu.org/archive/html/emacs-devel/2016-11/msg00403.html)

Emacsのバグ調査してるけど、バックトレースの変なところで短縮されてつらくてむかむかして困ってる… って話。(つらそう)

## そのほか

### [Emacspeak 45.0 (IdealDog) Unleashed!](http://emacspeak.blogspot.com/2016/11/emacspeak-450-idealdog-unleashed.html)

ふざけた文章っぽいんだけど、[Emacspeak](http://emacspeak.sourceforge.net/)は視覚障碍者向けの本格的な聴覚ユーザーインターフェイスを持った環境らしい。作者の[T. V. Raman](https://en.wikipedia.org/wiki/T._V._Raman)はアクセシビリティ研究を手がけるコンピュータ科学者としてWikipedia英語版に紹介がある。

[Emacspeakのオンラインマニュアル](http://tvraman.github.io/emacspeak/manual/)

### [Using Emacs - 22 - emacsclient](http://cestlaz.github.io/posts/using-emacs-22-emacsclient/#.WDBRJk5XCjY.reddit) ([Reddit](https://www.reddit.com/r/emacs/comments/5dseb1/using_emacs_22_emacsclient/))

Emacsをいちいち起動すると重いからemacsclientを使ったらいいよ、って話。動画。

Redditの方にはユーザー単位にsystemdで起動する設定例あり。

### [New (faster) test-build of Emacs 25.1 for Windows](https://www.reddit.com/r/emacs/comments/5drxs6/new_faster_testbuild_of_emacs_251_for_windows/)

Windowsのx64向けビルドが高速したぜやったー、って話。

### [GitHub - waymondo/apropospriate-theme: A colorful, low-contrast, light & dark theme set for Emacs with a fun name](https://github.com/waymondo/apropospriate-theme) ([Reddit](https://www.reddit.com/r/emacs/comments/5dgk6c/github_waymondoapropospriatetheme_a_colorful/))

新手のテーマ。コントラストひくめ。

### [TIP: Get all keys working in the Linux Console](https://github.com/tty-tourist/emacs-console-keys-hack) ([Reddit](https://www.reddit.com/r/emacs/comments/5dfetk/tip_get_all_keys_working_in_the_linux_console/))

Linuxのコンソール([仮想コンソール](https://ja.wikipedia.org/wiki/%E4%BB%AE%E6%83%B3%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB))で修飾キーの組み合せをフル活用するためのTips。

[端末エミュレータ](https://ja.wikipedia.org/wiki/%E7%AB%AF%E6%9C%AB%E3%82%A8%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF)とは別物。[xterm](https://ja.wikipedia.org/wiki/Xterm)とか[GNOME端末](https://ja.wikipedia.org/wiki/GNOME_%E7%AB%AF%E6%9C%AB)とか[Konsole](https://ja.wikipedia.org/wiki/Konsole)とか使ってるひとは**まったく関係ない**。

GentooとかArchlinuxでXを起動せずに使ってるひとは関係あるかも。

### [Prevent Browser Processes Started by Emacs from Being Killed When Emacs Exits on GNU/Linux - Top Bug Net](https://www.topbug.net/blog/2016/11/16/prevent-browser-processes-started-by-emacs-from-being-killed-when-emacs-exits-on-gnulinux/)

デスクトップのGNU/Linuxで、「Emacsから[`browse-url`](https://www.gnu.org/software/emacs/manual/html_node/emacs/Browse_002dURL.html)でブラウザを起動しちゃったら、Emacsを終了したときにブラウザも巻添くって終了する問題」を解決する。GNOME環境が前提。

### [Andrea Crotti Emacs and shell as your best friends](https://www.youtube.com/watch?v=nCD61qEnmgo) (50:07)

EuroPython 2013でのセッションらしい。 <q>Emacsとシェルは最高の友達</q>

## New packages

### [dashboard](http://melpa.org/#/dashboard): A startup screen extracted from Spacemacs

Spacemacsみたいな感じで、起動時に直近開いたファイルとかプロジェクト一覧とかを表示してくれるやつだよ。

### [flycheck-scala-sbt](http://melpa.org/#/flycheck-scala-sbt): sbt-mode checker for Scala

[sbt-mode](https://github.com/ensime/emacs-sbt-mode)に依存した[Flycheck](http://www.flycheck.org/en/latest/)のチェッカー。

### [language-detection](http://melpa.org/#/language-detection): Automatic language detection from code snippets

コードの断片からプログラミング言語を特定するやつ。アルゴリズム読んでぶっとんだ。`defconst`で[決定木](https://ja.wikipedia.org/wiki/%E6%B1%BA%E5%AE%9A%E6%9C%A8)持ってる。~~こんなのありかよ~~

### [org-babel-eval-in-repl](http://melpa.org/#/org-babel-eval-in-repl): Eval org-mode babel code blocks in various REPLs.

org-bableから[eval-in-repl](https://github.com/kaz-yos/eval-in-repl)を利用できるやつ。

### [projectile-ripgrep](http://melpa.org/#/projectile-ripgrep): Run ripgrep with Projectile

検索が超速いと話題の[ripgrep](https://github.com/BurntSushi/ripgrep)([ripgrep - あのThe Silver Searcherを超えた超高速ファイル検索ユーティリティ](http://www.softantenna.com/wp/review/ripgrep/))を[Projectile](http://projectile.readthedocs.io/)に統合したやつ。

### [pygen](http://melpa.org/#/pygen): Python code generation using Elpy and Python-mode.

入力補完のような感じでPythonのクラスとか函数を生成できる。べんりっぽい。

### [region-convert](http://melpa.org/#/region-convert): Convert string in region by Lisp function

選択範囲の文字列に任意のEmacs Lisp函数を適用できるようにしたやつ。標準機能にあっても良さそうなものだけど……。

![demo-region-convert.gif](https://qiita-image-store.s3.amazonaws.com/0/4121/c7f28e2d-7542-b1e5-cebf-dad433b139a7.gif)