Search Results: tag:emacs

50 件ヒットしました。 1 - 10 番目を表示しています。

emacs elisp バッファのディレクトリを調べる

バッファローカル変数の default-directory を見れば良いようだ。 pwd という関数もある。

(pwd)

elisp emacs リストの各要素に対して関数を実行して新しいリストにする

mapcar を使って

(mapcar (lambda (n) (* n 2)) '(1 2 3))

のようにするとリストの各要素を2倍にしたリストができる。

elisp emacs リストの各要素に対して関数を実行する

cl-macs.el の dolist を使う。

(dolist (el '(1 2 3))
  (pp el))

elisp emacs require と provide

(require 'cl)

のように require したファイルの中で

(provide 'cl)

が実行される。provide はリスト features に cl を保存する。 features に保存されていれば require したときにロードされない。

emacs elisp カーソル位置のプロパティを取得する

M-: として

(text-properties-at (point))

を実行すれば良い。

emacs elisp 文字列にプロパティを設定する

face に bold を設定した文字列を作成するには

(propertize "Hello world" 'face 'bold)

とする。

emacs require が成功したときだけに設定を行う

設定を複数のマシンで共有すると、システムによって elisp がインストールされていたり、いなかったりする。 このようなときに、require が成功したときだけに設定を行いたい場合がある。 when と require を組み合わせて次のようにする。

(when (require 'emms-setup nil t)
  ...
)

emacs スクロールバーの表示に関する設定をする

scroll-bar.el を見ると 変数 scroll-bar-mode に nil(表示しない)、left(左側に表示)、right(右側に表示)の どれかを設定することがわかる。 設定とともに反映させるには set-scroll-bar-mode を使う。

(set-scroll-bar-mode 'right)

のようにする。

emacs elisp transient-markがonでmarkがアクティブかどうか調べる

(region-active-p)

で調べられるが、Emacsのバージョンによってはregion-active-pがない場合がある。 そのときは

(and transient-mark-mode mark-active)

とする。

emacs elisp 関数呼び出しが interactive かどうかを調べる

(called-interactively-p 'interactive)

を使う。M-x で実行したときは真で、そうでない場合は偽。

(defun test-called-interactively ()
  (interactive)
  (message
   (if (called-interactively-p 'interactive)
       "Interactive" "Not interactive")))