ラベル Emacs の投稿を表示しています。 すべての投稿を表示
ラベル Emacs の投稿を表示しています。 すべての投稿を表示


2020年2月2日日曜日

ContOS8 StumpWM & Emacs 26.3


このエントリーをはてなブックマークに追加


気分を変えるために StumpWM を久々に動かしてみた。
StumpWM は Common Lisp で記述されたシンプルなウインドマネージャーで、タイル型と呼ばれるウインドマネージャーです。キーボードを中心に操作を行い、Emacs と相性が良いです。

xrdp で動かす場合の導入のメモを残しておきます。roswellのおかげですごく簡単になっています。



2014年5月10日土曜日

term, ansi-term, multi-term + cygwin-mount.el で発生する No such directory found via CDPATH environment variable について


このエントリーをはてなブックマークに追加


少々長いタイトルになってしまいましたが、題記の通りです。cygwin-mount.el を有効化した環境で、term.el系を起動したタイミングや、特定ディレクトリへ cd したタイミングで発生します。

No such directory found via CDPATH environment variable

この現象は、ターミナル側の cd を捕捉して、Emacs 側でも cd を動かそうとして発生しますので、.emacs や init.el で、

;; term側 cd 捕捉によるEmacs側の cd を抑制(term.elで定義されている関数)
(fset 'term-command-hook '(lambda (x)))

として、ターミナル側の入力をキャッチしている関数を無効化すると、とりあえずは現象を回避できます。

この根本原因は、cygwin-mount.el によって変換される cygwin マウントポイント となるディレクトリを直接指定する場合に、末尾に / つきパスでないと変換してくれない、という仕様によるもののようです。

このようなマウントポイントの場合、
(shell-command "df -h")

ファイルシス                                 サイズ  使用  残り 使用% マウント位置
C:/gnupack_devel-12.02/app/cygwin/cygwin/bin   230G  153G   77G   67% /usr/bin
C:/gnupack_devel-12.02/app/cygwin/cygwin/lib   230G  153G   77G   67% /usr/lib
C:/gnupack_devel-12.02/app/cygwin/cygwin       230G  153G   77G   67% /
C:/gnupack_devel-12.02/app/cygwin/local        230G  153G   77G   67% /usr/local
C:/gnupack_devel-12.02/home                    230G  153G   77G   67% /home


これは上手くいきますが、
(cd "/home/")

"c:/gnupack_devel-12.02/home/"

これはエラーになります。
(cd "/home")

Debugger entered--Lisp error: (error "No such directory found via CDPATH environment variable")
  signal(error ("No such directory found via CDPATH environment variable"))
  error("No such directory found via CDPATH environment variable")
  ad-Orig-cd("/home")
  cd("/home")
  eval((cd "/home") nil)
  eval-last-sexp-1(t)
  eval-last-sexp(t)
  eval-print-last-sexp()
  call-interactively(eval-print-last-sexp nil nil)


このあたりをいじるとよくなるかもしれないですが、どんな影響があるかわからないので、今回の対策としました。

cygwin-mount-activate is an interactive Lisp function in
`cygwin-mount.el'.

(cygwin-mount-activate)

Activate cygwin-mount- and cygwin-style-handling.

file-name-handler-alist

(("\\(?:\\.dz\\|\\.xz\\|\\.lzma\\|\\.lz\\|\\.g?z\\|\\.\\(?:tgz\\|svgz\\|sifz\\)\\|\\.tbz2?\\|\\.bz2\\|\\.Z\\)\\(?:~\\|\\.~[-[:alnum:]:#@^._]+\\(?:~[[:digit:]]+\\)?~\\)?\\'" . jka-compr-handler)
 ("\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'" . epa-file-handler)
 ("\\`/[^/]\\{2,\\}\\'" . tramp-completion-file-name-handler)
 ("\\`/\\([^[/|:]\\{2,\\}\\|[^/|]\\{2,\\}]\\):" . tramp-file-name-handler)
 ("\\.lnk\\'" . w32-symlinks-file-name-handler)
 ("^/cygdrive/[A-Za-z]/" . cygwin-mount-map-drive-hook-function)
 ("^//[A-Za-z]/" . cygwin-mount-map-drive-hook-function)
 ("^/[^:@]*$\\|^/|/[^/:]+\\(\\'\\|/\\)" . cygwin-mount-name-hook-function)
 ("\\`/:" . file-name-non-special))


2014年5月4日日曜日

Helm から Hyerspec/CLtL2 を引く


このエントリーをはてなブックマークに追加


** 2014/05/11 slime をバージョンアップ したらHyperSpec が引けなくなったので修正

HyperSpec と CLtL2 を Helm から引けるようにします。 anything とまったく一緒です。

HyperSpec は ANSI Common Lispのリファレンス、CLtL2 は Common Lisp the Language, 2nd Editionの略記で仕様書風の読み物。CLTL1 → ANSI と仕様がFIXするまでの経緯等にもついて記載されているらしいです。私はほぼ HyperSpec しか使っていません。


設定方法は以下


2013年12月9日月曜日

OpenStack Tips with Emacs


このエントリーをはてなブックマークに追加


OpenStack Advent Calendar 2013 JPネタ

OpenStackに関する作業をしているとReST APIを直接コールする事がよくあります。

ReSTを操作するにはたくさんのツールがありますが、一番イケてるのはEmacsから操作する方法です(妄想
ちなみにイケてない人は curl -X POST とかしたりします(大嘘


ということで、Emacs用のReSTクライアントを紹介します。
https://github.com/pashky/restclient.el


利用方法は簡単で、git clone して得られる el ファイルを load-path の通ったパスへ配置します。

その後は、
(require 'restclient)
と、ロードして、
M-x restclinet-mode
で restclinet-mode へ移行出来ます。


■使用方法
シンプルです。リクエストした内容をバッファに書いて、C-c C-c とするだけです。
使用感はこんな感じです。

■便利な設定
popwin.el と連携して出力結果ウインドを制御してやると使い勝手が向上します。

popwinの詳細はこちら。
http://aikotobaha.blogspot.jp/2013/04/popwinel.html

popwinの設定に以下を追加しておきます。
(push '("*HTTP Response*") popwin:special-display-config)


■mailcap-parse-mailcaps がねえよ的なエラー
使ってるEmacsのバージョンや、導入しているelファイルによっては、mailcap-parse-mailcaps に関するエラーが出ることがあります。
【参考】http://d.hatena.ne.jp/rubikitch/20080124/1201180306

エラー例
Symbol's function definition is void: mailcap-parse-mailcaps

ほとんどの場合はFLIMを使ってる場合に出ます。
flim の mailcap.el はもう使われていないので最新版に変更した上で削除するか、(require 'restclient) する直前に (load "c:/gnupack/app/emacs/emacs/lisp/gnus/mailcap.el") としてEmacsが標準で持っている mailcap.el をロードさせてやると回避できます。


2013年4月2日火曜日

popwin.el が本当に便利。今まで使わなかった事を後悔するレベル。


このエントリーをはてなブックマークに追加


Emacsを使っていると、コマンド補完候補表示ウインドの *Completions* 等が別ウインドで表示されることがあります。これはこれで便利なのですが、問題はその開く場所と閉じるときの挙動です。

上下に2分割(C-x 2)していると下のウインドを切り替えてバッファを表示して、閉じる時にウインドごと閉じてしまい、また C-x 2 するはめになったりすることがよくあります。

このアクションを起こした際に起こるウインドとバッファの切り替えを制御してくれるのが、popwin.el です。地味な機能ですが、使ってみると手放せなくなります。本当に便利です。



2012年7月8日日曜日

「Gitポケットリファレンス」でOSSコントリビュート


このエントリーをはてなブックマークに追加


Gitポケットリファレンス


こちらの書籍を著者様よりいただきました。誠にありがとうございます。



2012年4月8日日曜日

Emacs Mozc の変換候補の表示場所


このエントリーをはてなブックマークに追加


メインのFedora16を yum update したら mozc.el がアップデートされ、Emacs内ので変換候補の表示がインラインで表示されるようになった。

はじめは便利だと思っていたけど、編集している文書が大きくなると変換がもっさりしてくるのと、リモートから -nw で使っている時の使い勝手があまりよくない。

この設定を元の状態(ミニバッファに変換候補を表示)に戻す方法。

;; 変換候補をミニバッファへ表示
(setq mozc-candidate-style 'echo-area)

;; 変換候補をインライン表示
;(setq mozc-candidate-style 'overlay)


2012年3月24日土曜日

EmacsからDBを確認(Emacs DBI)


このエントリーをはてなブックマークに追加


これはすごい便利。

・DB操作ツール Emacs DBI を作ってみた

コードをEmacsで確認しつつ、テーブルを直感的&簡単に除くことができる。

主にOpenStackのMySQLスキーマを確認しつつ使ってる。

Fedora16への導入
root# yum install perl-DBD-MySQL
root# yum install perl-CPAN
root# cpan install Module::Build::Compat
root# cpan install RPC::EPC::Service

これらをload-pathの通った場所に配置。
https://github.com/kiwanami/emacs-deferred/raw/master/deferred.el
https://github.com/kiwanami/emacs-deferred/raw/master/concurrent.el
https://github.com/kiwanami/emacs-ctable/raw/master/ctable.el
https://github.com/kiwanami/emacs-epc/raw/master/epc.el
https://github.com/kiwanami/emacs-edbi/raw/master/edbi.el
https://github.com/kiwanami/emacs-edbi/raw/master/edbi-bridge.pl

後はdot.emacsへ
(require 'edbi)

を追記して、

M-x edbi:open-db-viewer

で起動。接続先を聞いてくるのでDBI形式で入力してやる。

素晴らしい!


2012年3月11日日曜日

Emacs で git blame


このエントリーをはてなブックマークに追加


ここを参考に設定。そのまんま。

ソースを開いた状態で C-cG で git blame を開けるようになる。

elispは以下から入手する。
https://github.com/voins/mo-git-blame

事前にgitコマンドが使えるようになっている必要がある。
# yum install git

load-libraryが通ったパスに配置し、バイトコンパイルする。
# emacs -q --no-site-file -batch -f batch-byte-compile mo-git-blame.el

dot.emacsへ以下を追記


2011年10月8日土曜日

Emacs 英辞郎 + sdic + sary


このエントリーをはてなブックマークに追加


英語力のない人間にとって英和辞典は必須です。HyperSpecを眺めているときにEmacsから直接辞書が引けるようにしておく。



2011年8月5日金曜日

最近のdot.emacs


このエントリーをはてなブックマークに追加


こんな感じに落ち着いてる。



2011年6月30日木曜日

Emacs フォント関連の設定


このエントリーをはてなブックマークに追加


ここを参考に設定。使っているのはNTEmacs。
;; デフォルトフォントの設定
(set-face-attribute 'default nil
                    ;; :family "inconsolata"
                    :family "MS ゴシック"
                    :height 100)

;; 日本語フォントの指定(指定しない場合はデフォルトが使われる)
(set-fontset-font "fontset-default"
                  'japanese-jisx0208
                  '("MS ゴシック*" . "jisx0208.*"))

(set-fontset-font "fontset-default"
                  'katakana-jisx0201
                  '("MS ゴシック*" . "jisx0201.*"))

;; 文字飾りを有効にする
(setq w32-enable-synthesized-fonts t)

;; フォントの大きさを調整する
;; 無くても綺麗に表示されるのでMSゴシックの場合は必要なし?
(add-to-list 'face-font-rescale-alist
             `(,(encode-coding-string ".*MS.*bold.*iso8859.*" 'emacs-mule) . 0.9))

(add-to-list 'face-font-rescale-alist
             `(,(encode-coding-string ".*MS.*bold.*jisx02.*" 'emacs-mule) . 0.95))

;; 行間を指定
(setq-default line-spacing 0.2)


2011年6月28日火曜日

Emacs wanderlust mailcapを参照せずに添付ファイルを開く(fiber.exe利用)


このエントリーをはてなブックマークに追加


これはすごい便利。以下をdot.emacsかdot.wlに記載しておけば、添付ファイルにカーソルを合わせてvでアプリが起動してくる。
(defvar my-mime-preview-play-current-entity-appname "fiber"
 "meadow なら fiber, mac なら open, linux なら xdg-open")

(unless (functionp #'mime-preview-play-current-entity-orig)
  (fset #'mime-preview-play-current-entity-orig
        (symbol-function #'mime-preview-play-current-entity)))

(setq mime-play-delete-file-immediately nil)

(defun mime-preview-play-current-entity (&optional ignore-examples mode)
  (interactive "P")
  (if (and mode (not (equal mode "play")))
      (mime-preview-play-current-entity-orig ignore-examples mode)
    (let* ((entity (get-text-property (point) 'mime-view-entity))
           (name (mime-entity-safe-filename entity))
           (filename (expand-file-name (if (and name (not (string= name "")))
                                           name
                                         (make-temp-name "EMI"))
                                       (make-temp-file "EMI" 'directory))))
      (mime-write-entity-content entity filename)
      (message "External method is starting...")
      (let* ((process-name
              (concat my-mime-preview-play-current-entity-appname " " filename))
             (process
              (start-process process-name
                             mime-echo-buffer-name
                             my-mime-preview-play-current-entity-appname
                             filename)))
        (set-alist 'mime-mailcap-method-filename-alist process filename)
        (set-process-sentinel process 'mime-mailcap-method-sentinel)))))
参考>> 俺 wanderlust。さっき mailcap と別れてきた


2011年6月24日金曜日

Emacs isearch で C-h できない


このエントリーをはてなブックマークに追加


恥ずかしながらずっとこういうものだと思っていたんだけど、以下のように設定するればちゃんと使えました。

(global-set-key "\C-h" 'backward-delete-char-untabify)

  ↓

(keyboard-translate ?\C-h ?\C-?)
(global-set-key "\C-h" nil)

参考>> emacsのisearchでC-hで削除できない


2011年6月23日木曜日

Emacs Warning: past XX % of memory limit


このエントリーをはてなブックマークに追加


gc-cons-threshold を大きくするとガベージコレクションの頻度が落ちてEmacsが早くなる、というのを聞いて大きめの値を設定していたんだけど、これを大きくしすぎるとGCが働かなくなってすぐにメモリが上限に近づいてタイトルのメッセージを出してくる。

最近のマシンじゃGC頻度を上げたことで目に見えるパフォーマンスに差は無さそうな感じなので、gc-cons-threshold を小さめに設定しておくと一度起動したEmacsを長く使い回せます。

(setq gc-cons-threshold 10000)


2011年6月19日日曜日

Solaris11/Emacs ATOK + IIIMECF による日本語入力


このエントリーをはてなブックマークに追加


ネットワーク経由でSolarisのATOKは使うのはこちら。今回はX上で使う方法。



2011年6月18日土曜日

Solaris11/Emacs inconsolata フォントを使う


このエントリーをはてなブックマークに追加


Emacs自身はパッケージマネージャーで23.1.1がインストール可能。

フォントの公式サイトは以下。
http://www.levien.com/type/myfonts/inconsolata.html

Solaris11はOTFが使えるので以下を入手する。
http://www.levien.com/type/myfonts/Inconsolata.otf

入手したフォントは/usr/share/fonts/TrueType以下に好きなディレクトリを追加して配置する。
# mkdir /usr/share/fonts/TrueType/emacsfonts
# cp Inconsolata.ttf /usr/share/fonts/TrueType/emacsfonts/

フォントキャッシュを再構築
# fc-cache -vf

確認
# fc-list |grep Inconsolata
Inconsolata:style=Medium

Emacsでの設定
;; フォント設定
(set-face-attribute 'default nil
                    :family "inconsolata"
                    :height 120)


Solaris11 Alt を Metaキーとして使う


このエントリーをはてなブックマークに追加


VBox上のSolaris11でAltがMetaとして使えなかったので、以下で対処。
xmodmap -e 'keycode 64 = Alt_L Meta_L'
これを~/.bashrcに書いておけばOKだった。

参考>> emacs -nw で Alt を Meta として使う


2011年6月1日水曜日

NTEmacsのデフォルトブラウザをChromeに変更


このエントリーをはてなブックマークに追加


WindowsではNTEmacsからURLを開くときに標準でOS規定のデフォルトブラウザが使われる。通常はもちろんIE。それをChromeに変更するには以下を.emacsへ追記する。パスは自分の環境に合わせて編集が必要。

もちろんOSのデフォルトブラウザを変更してもいいけど、IEじゃないと困ることもあるのでEmacs内でのみ有効になるようにしてみた。

;; デフォルトブラウザをChromeへ
(defvar *chrome-path* "C:/Users/win7-u24/AppData/Local/Google/Chrome/Application/chrome.exe")
(setq browse-url-browser-function
      '(("."        . browse-url-generic)))
(setq browse-url-generic-program *chrome-path*)


2011年5月10日火曜日

Emacs anythig から hyperspec と cltl2 を引く


このエントリーをはてなブックマークに追加


こちらを参考に、そのままで動きました。
http://d.hatena.ne.jp/kitokitoki/20100912/p1

私はCygwinを使っていないですが、w3m.exe を cygwin でコンパイルされたものを利用しているのでパスの与え方だけ注意。

cltl2.el http://www.uuhaus.de/software/cltl2.el
ドキュメント http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/lang/lisp/doc/cltl/cltl_ht.tgz

dot.emacs は以下