lentic 20161202.1352(in MELPA)
One buffer as a view of another

概要

<2014-12-16 Tue>linked-bufferからlenticに改名されました。

今回はすごいマイナーなパッケージを紹介します。

というか知られてなさすぎて日本語のブログでは取り上げられてないです。

lentic.elは indirect-buffer のように
同じ内容をキープし続ける2つのバッファを使って
1つのバッファで複数のメジャーモードを実現させます。

2つのバッファを同時に表示して、カーソル位置も連動してくれるので、
単にウィンドウを切り替えるだけでメジャーモードを使い分けられます。

org-mode で文書中にソースコードを書くときに使うと便利です。

逆に、複数のファイルを1つのバッファに統合するには multifiles.el を使います。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてlenticを使う方は
以下のコマンドを実行します。

M-x package-install lentic

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name lentic

設定 140906050929.linked-buffer.1.el(以下のコードと同一)

autoloadの設定がされていないので、requireの必要があります。

(require 'lentic)

実行方法

$ wget http://rubikitch.com/f/140906050929.linked-buffer.1.el
$ emacs -Q -f package-initialize -l 140906050929.linked-buffer.1.el

使い方

たとえば、こんなorg文書があるとします。

==== ここから
org-babelでorg文書にソースコード書けるよねー。

#+begin_src emacs-lisp
(setq hoge 100)
#+end_src

けれど、毎回 C-c ' するの面倒!

#+BEGIN_SRC emacs-lisp
(defun hoge ()
  (+ (length "abc") 999))
#+END_SRC

そこでlenticを使いましょう。
==== ここまで

この状態で M-x lentic-split-window-right を実行すると、
右側に同じ内容のバッファが登場します。

そして、一方のカーソルを動かすと、他方のカーソルも移動し、
一方を編集すると、他方も編集されます。

ここで右側のバッファを emacs-lisp-mode にしておけば、
ソースブロックをそのまま編集できます。

ただし、保存は元のバッファで行ってください。

なお、上下分割バージョンは M-x lentic-split-window-below です。

まだ開発が始まったばかりなので、今後に期待です。

20140906051044.png
Fig1: 左右のバッファを連動させて編集!!

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。