Emacs Part 46
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。
2014/06/23(月) 02:42:14.91GNU Emacs - GNU Project - Free Software Foundation (FSF)
https://www.gnu.org/software/emacs/
EmacsWiki: サイトマップ
http://www.emacswiki.org/emacs/
前スレ
Emacs Part 45
http://peace.2ch.net/test/read.cgi/unix/1391839128/
0902名無しさん@お腹いっぱい。
2014/12/01(月) 10:53:21.080903名無しさん@お腹いっぱい。
2014/12/01(月) 11:36:28.002chに何期待してんの?
0904名無しさん@お腹いっぱい。
2014/12/01(月) 12:06:34.960905名無しさん@お腹いっぱい。
2014/12/01(月) 12:13:25.090906名無しさん@お腹いっぱい。
2014/12/01(月) 12:34:19.370907名無しさん@お腹いっぱい。
2014/12/01(月) 16:59:04.450908名無しさん@お腹いっぱい。
2014/12/01(月) 17:12:58.23インストールも楽だし設定もほぼ不要だしね
0909名無しさん@お腹いっぱい。
2014/12/01(月) 17:18:46.94Emacs Advent Calendar 2014 - Qiita
http://qiita.com/advent-calendar/2014/emacs
本日12月1日より,プログラマ有志による2014年の技術系Advent Calendarが各所ではじまる:インフォメーション|gihyo.jp … 技術評論社
http://gihyo.jp/news/info/2014/12/0101
0910名無しさん@お腹いっぱい。
2014/12/02(火) 00:07:10.400911名無しさん@お腹いっぱい。
2014/12/02(火) 00:35:31.73org-modeネタだろうか
0912名無しさん@お腹いっぱい。
2014/12/02(火) 00:46:23.910913名無しさん@お腹いっぱい。
2014/12/02(火) 22:08:34.840914名無しさん@お腹いっぱい。
2014/12/02(火) 22:38:05.62skk なら配布物に含まれてる nicola 以下のを使えば親指シフトになるんじゃなのかね
あと web.archive.org 経由なら omelet もダウンロード出来たけど
これ Wnn 用っぽいし今の Emacs で使うのはしんどそう
0915名無しさん@お腹いっぱい。
2014/12/03(水) 00:03:38.34おおお SKK ってローマ字入力に限定した変換方式としか認識してなかったからノーチェックだったthx!
0916名無しさん@お腹いっぱい。
2014/12/04(木) 10:52:16.75腕をクロスしろ!
かっこいいぞ!
0917名無しさん@お腹いっぱい。
2014/12/04(木) 17:59:30.72とりぷる ぷぅ 技術メモ: [Emacs]タブや全角スペースを別色で表示する
http://triplepulu.blogspot.jp/2013/03/emacs_2752.html
Emacsの起動後に、このリンク先の設定の有効/無効を切り替えたいと思うので
すが、どうしたら良いでしょうか?
見よう見まねで以下のコードを実行しても、設定は無効になりませんでした。
(ad-disable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-deactivate 'font-lock-mode)
0918名無しさん@お腹いっぱい。
2014/12/04(木) 18:25:03.30個人的にはそこら辺のは whitespace-mode をカスタマイズでもしたほうがいい気もする
0919名無しさん@お腹いっぱい。
2014/12/04(木) 18:40:27.80ありがとうございます。スクラッチバッファで以下のコードを実行しましたが、
設定は無効になりませんでした。
(ad-disable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)
何がまずいんだろう…。
0920名無しさん@お腹いっぱい。
2014/12/04(木) 18:52:33.24バッファ単位じゃなく特定のメジャーモードに対してのキーワード追加だから
一度でもこのアドバイスが走ったらそのメジャーモードでは色ついたままになる。
解除したいなら font-lock-remove-keywords でいちいち消さないとダメ
0921名無しさん@お腹いっぱい。
2014/12/04(木) 18:57:19.240922名無しさん@お腹いっぱい。
2014/12/04(木) 19:04:41.53ありがとうございます。
以下のコードを実行したら、設定が無効になりました。
(defadvice font-lock-mode (before my-font-lock-mode ())
(font-lock-remove-keywords ;; ← この行だけ違う
major-mode
'(("\t" 0 my-face-b-2 append)
(" " 0 my-face-b-1 append)
("[ \t]+$" 0 my-face-u-1 append)
)))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)
無理矢理ですが、最低限の用は足りました。
できたらもっと綺麗にしたいところではありますが…。
0923名無しさん@お腹いっぱい。
2014/12/04(木) 19:08:36.52あんまり font-lock-mode への advice にする意味がない気がする
0924名無しさん@お腹いっぱい。
2014/12/04(木) 19:09:53.770925名無しさん@お腹いっぱい。
2014/12/04(木) 19:16:14.520926名無しさん@お腹いっぱい。
2014/12/04(木) 21:16:38.980927名無しさん@お腹いっぱい。
2014/12/04(木) 21:37:07.89$ emacs --daemon
$ emacsclient -n -c
でwindow起動した後、emacsclientを終了してlogoutしようとするとシェルプロンプトに戻らず、仕方なくC-cするとdaemon起動したemacsが終了してしまう現象で困ってるんですが、解決方法ご存じの方いませんか?
試した限り、少なくともubuntu 14.04のemacs24.3 (標準パッケージ)、CentOS 6.6のemacs23.3 (自分でビルド) では発生するが、CentOS 6.6のemacs23.1 (標準パッケージ) では起きない。# なので、未だにemacs23.1を使い続けてる...
この現象ってみんな起きるはずなのにググっても解決方法が見当たらないのは、sshログインしてemacs使う人はterminal起動が普通だからだろうか?
0928名無しさん@お腹いっぱい。
2014/12/04(木) 21:53:49.74リモート先の環境にもよるけどあんまり外でしっかりとした init.el 作ってないし
0929名無しさん@お腹いっぱい。
2014/12/04(木) 22:01:28.69なら、emacsclientを終了するまでもなくプロンプトが返るんじゃないの?
debian-testing & emacs-24.4で再現できず
0930名無しさん@お腹いっぱい。
2014/12/04(木) 22:02:32.88nohup emacs --daemon </dev/null >/dev/null 2>&1 &
ってしてみたら
0931名無しさん@お腹いっぱい。
2014/12/04(木) 22:07:39.210932名無しさん@お腹いっぱい。
2014/12/04(木) 22:09:11.89で起動して何もファイル開かなくても起きるので、設定ファイルのせいではないしtrampとかも関係ない。
C-cしないとプロンプトに戻らないのはgnome-terminalとか適当なアプリ起動した後でも同じなので、EmacsだけではなくXクライアントアプリに共通の問題みたいなんだけど...
0933名無しさん@お腹いっぱい。
2014/12/04(木) 22:12:12.62kill pidみたいのじゃなく、手段は用意されていますか?
0934名無しさん@お腹いっぱい。
2014/12/04(木) 22:18:27.680935名無しさん@お腹いっぱい。
2014/12/04(木) 22:18:31.15M-x kill-emacsすれば終了する。
0936名無しさん@お腹いっぱい。
2014/12/04(木) 22:20:32.15これもググったらどっかで見つけたんで既に試してる。でダメ。
0937名無しさん@お腹いっぱい。
2014/12/04(木) 22:23:59.35そうじゃなくて、sshを抜けてログイン元ホストのプロンプトに戻るときの話。
0938名無しさん@お腹いっぱい。
2014/12/04(木) 22:27:24.88set-face-attribute とかであとから属性変更する場合はどのように指定したらいいんでしょう?
(set-face-attribute 'default nil '(((class color) (background dark)) "gray97"))
等では無理でした
0939名無しさん@お腹いっぱい。
2014/12/04(木) 22:27:45.29ありがとうございます
emacsclient上でできました!
0940名無しさん@お腹いっぱい。
2014/12/05(金) 00:27:25.91Emacs24で、emacs -nw でテーマを設定すると、ある種の記号を入力した時、
その記号の下に空行が表示されてしまうようです。
例)
(load-theme 'adwaita t) ;;たぶんどのテーマでもいい
記号はハート(白)U+2661 (♡) などSJISにないもの。
ハート (シンボル) - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%BC%E3%83%88_%28%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AB%29#.E7.AC.A6.E5.8F.B7.E4.BD.8D.E7.BD.AE
テーマを設定しない、以外の解決策はないでしょうか?
GNU Emacs 24.4.1 (x86_64-unknown-cygwin) of 2014-11-15 on desktop-new
GNU Emacs 24.3.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.10.9) of 2014-09-30 on buildvm-10.phx2.fedoraproject.org
端末は minttyですが、たぶんPuTTYも同様と思います。
再現しなかったら申し訳ありません。
0941名無しさん@お腹いっぱい。
2014/12/05(金) 00:42:30.87"?" に置換して誤魔化してるけど
0942名無しさん@お腹いっぱい。
2014/12/05(金) 06:31:44.91(load-theme 'adwaita t)
(白ハート)
aaaa
とできなくて、
(load-theme 'adwaita t)
(白ハート)
aaaa
となってしまうということですかね?
win7上のRLoginとputty-jpでdebian-testing上のemacs24.4で試したけど
白ハートが半角表示されるだけで、表示は上側のようになりますね
cygwinは削除したので確認できず
勘違いしてたらすみません
0943名無しさん@お腹いっぱい。
2014/12/05(金) 08:15:34.32emacs が判断する文字幅の差でしょう。
emacs は決め打ちしてる上に曖昧文字の幅が全部2になってるわけでもないし。
0944940
2014/12/05(金) 10:45:29.43現象はおっしゃるとおりです。わかりにくくてすみません。
PuTTY 0.63 でFeodora 20に接続したところ、自分も再現できませんでした。
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
さらに調べたところ、GNU screen を起動した環境で emacs を起動すると
不具合が再現しました。
Fedora : Screen version 4.01.00devel (GNU) 2-May-06
Cygwin : Screen version 4.02.01 (GNU) 28-Apr-14
Screen + Emacs + テーマ、という何とも複雑な条件でした。
0945名無しさん@お腹いっぱい。
2014/12/05(金) 11:04:33.89細分化すれば face の設定の何が悪いかまで判別できるんでない?
0946942
2014/12/05(金) 11:12:05.55screen入れて試したけど、putty-jp, RLoginどちらでも再現できないですねー
Screen version 4.02.01 (GNU) 28-Apr-14
うちではtmuxを使った時に、画面の分割線用のフォントが綺麗に表示されない問題が
cygwinでもputty-jpでもTeraTermでも発生していたからいろいろ試して、問題の発生しない
RLoginを見つけました。
名前以外は素晴らしいソフト
http://nanno.dip.jp/softlib/man/rlogin/
原因はemacsではなく、仮想端末やputtyとかの側だろうから、よかったらRLoginを試してみてください
0947940
2014/12/05(金) 12:16:59.96tmux 1.9a
皆さん、いろいろありがとうございました。
>>946
再現の条件があやふやで申し訳ありませんでした。
RLoginのご紹介、ありがとうございました。
機会があれば試してみます。
0948名無しさん@お腹いっぱい。
2014/12/05(金) 12:18:53.24quickrun.elを使い
gcj(GNU Compiler for Java)でソースをコンパイルしてjavaでバイトコードを実行しようとしています
http://www.kaichan.info/blog/2014-03-22-emacs-java-quickrun.html
これを参考にしながらこう書きました
(defadvice quickrun/use-tempfile-p (after gcj activate)
"gcjでも一時ファイルを作らないようアドバイス"
(when (string= (ad-get-arg 0) "gcj")
(setq ad-return-value nil)))
;; プレースホルダーの情報
;; https://github.com/syohex/emacs-quickrun#placeholders
(quickrun-add-command "gcj"
'((:command . "gcj")
(:exec . ("gcj -C %s" "java %N %a"))
(:description . "Compile Java file and execute")))
quickrunでgcjを選択するとjavaコマンドの引数に一時ファイルが設定されてしまいます
(:exec . ("gcj -C %s" "java %N %a")
を
(:exec . ("gcj -C %s" "echo %N %a")
と書き換えると、javaに一時ファイルの名前が渡されていることを確認できました
アドバイスの部分の設定がおかしいのでこういう結果になってしまうと思うのですが、どのように修正すればよいでしょうか
0949名無しさん@お腹いっぱい。
2014/12/06(土) 12:16:14.38これ、誰か解決方法分かる人いないでしょうか?
この使い方にこだわるのは、常時稼働のサーバ上でdaemon起動しておけば、自分の端末の電源を落として帰っても次の日 (バッファの状態もそのままで) すぐに作業が継続できるし、急に会議に呼ばれてもノートPCからサーバに接続して内職できるからなんだけど。
ごく一般的な使い方だと思うんだけど、今はクライアント端末側でemacs起動してtramp経由でサーバのファイルを編集するような使い方の人が多いのかな?
0950名無しさん@お腹いっぱい。
2014/12/06(土) 12:30:33.38でも >>930 の nohup で十分だと思うけど、上手く行かないってのは
何かやり方間違えてない?
0951名無しさん@お腹いっぱい。
2014/12/06(土) 12:49:34.21いや、terminal起動ならscreenとか使わなくても問題ないんだけど、できればXで使いたいので...
$ nohup emacs --daemon </dev/null >/dev/null 2>&1 &
で起動すると、確かにC-cでssh接続を終了してもdaemon起動したemacsは終了しなくなるんだけど、次に接続しようとすると、
$ emacsclient -n -c
emacsclient: connect: Connection refused
emacsclient: No socket or alternate editor. Please use:
--socket-name
--server-file (or environment variable EMACS_SERVER_FILE)
--alternate-editor (or environment variable ALTERNATE_EDITOR)
となる。--socket-nameで/tmpにあるsocketを指定すればいいのかなと思ったんだけど、
$ emacsclient -n -c --socket-name="/tmp/emacs1000/server"
emacsclient: connect: Connection refused
emacsclient: error accessing socket "/tmp/emacs1000/server"
でダメだった。
0952名無しさん@お腹いっぱい。
2014/12/06(土) 14:51:17.660953名無しさん@お腹いっぱい。
2014/12/06(土) 15:08:58.87何で再現しないんだろう?こっちでは、VMwareにインストールしただけで何も余計な設定していない2つのubuntu 14.04の間でsshして試しても起きるんだけど。
0954名無しさん@お腹いっぱい。
2014/12/06(土) 16:05:58.02gcj環境作るの億劫だったので試してないけど、advice使うまでもなく、
(quickrun-add-command "java"
'((:command . "java")
(:compile-only . "gcj hogehoge %s")
(:exec . ("gcj fugafuga %s" "%c %N %a"))
(:remove . ("%n.class"))
(:description . "Compile Java file and execute"))
:mode 'java-mode)
のようにjava用の設定を上書きすればいいんじゃないかなhogehogeとかhugahugaとかはgcjのコマンド
に合わせて変更してください。
0955名無しさん@お腹いっぱい。
2014/12/06(土) 16:15:40.180956名無しさん@お腹いっぱい。
2014/12/06(土) 16:44:13.52(defsubst quickrun/use-tempfile-p (cmd-key)
を
(defadvice quickrun/use-tempfile-p (after java8 activate)
でadviceしてるけど、defsubstってインライン関数定義なのにadvice使えるものなのかな?
このあたりまったく知らなかったからいろいろ試してみよう
0957名無しさん@お腹いっぱい。
2014/12/06(土) 19:19:58.22!その手がありましたか。設定の上書きを試すことを忘れていました
もちろん無事動作しました。感謝です!
0958名無しさん@お腹いっぱい。
2014/12/06(土) 20:49:14.11既にバイトコンパイル済みのに対しては無効なんじゃね
0959名無しさん@お腹いっぱい。
2014/12/07(日) 06:16:07.81今回のやつは、defsubst使ってるけど実際にはインライン展開されなくてadviceが使える
というオチ
筋の悪いコード
0960名無しさん@お腹いっぱい。
2014/12/08(月) 21:02:10.27例えば、find file コマンドのように補完入力でファイルを指定したら、そのファイルへの相対パスが入力できたら便利だな、思う事がしばしばあります。
0961名無しさん@お腹いっぱい。
2014/12/08(月) 21:09:40.290962名無しさん@お腹いっぱい。
2014/12/08(月) 21:12:17.710963名無しさん@お腹いっぱい。
2014/12/08(月) 21:56:00.04やっつけだけどこんな感じ?
(defun insert-relative-file-path (file)
(interactive "ffile name:")
(insert (file-relative-name file (buffer-file-name))))
0964名無しさん@お腹いっぱい。
2014/12/08(月) 22:00:36.63(defun insert-relative-file-path (file)
(interactive "ffile name: ")
(insert (file-relative-name file
(file-name-directory (buffer-file-name)))))
0965名無しさん@お腹いっぱい。
2014/12/08(月) 22:01:42.81>
まさにそれ!!ありがとうございます。
あと、EmacsWiki でも、似たようなのを見つけることができた。
http://www.emacswiki.org/emacs/InsertFileName
0966名無しさん@お腹いっぱい。
2014/12/10(水) 00:51:00.89bzrに移行した時も少し見づらくなったがそれでも許容範囲だったが今回はアカン
0967名無しさん@お腹いっぱい。
2014/12/10(水) 11:15:15.60helmを入れたら、M-x browse-url と M-x navi2ch が全然候補に出て来ず、
コマンド名を全部入力しなければなりません。解決するにはどうしたら
良いでしょう?
0968967
2014/12/10(水) 11:19:43.91もっと上の方に出現して欲しいのですが。
0969名無しさん@お腹いっぱい。
2014/12/10(水) 11:34:45.73(global-set-key (kbd "M-x") 'helm-M-x)
でいいんじゃないかな
0970名無しさん@お腹いっぱい。
2014/12/10(水) 11:42:30.71(setq helm-mode-reverse-history nil)
0972名無しさん@お腹いっぱい。
2014/12/11(木) 04:01:22.660973名無しさん@お腹いっぱい。
2014/12/12(金) 02:30:12.440974名無しさん@そうだ選挙に行こう
2014/12/13(土) 19:39:49.680975名無しさん@お腹いっぱい。
2014/12/15(月) 15:47:30.61common lispで
(loop for i from 1 to 10
do (format t "[~A]~%" i))
とする場合の~%にあたるものは
emacs lispの方のformatにはないのでしょうか?
0976名無しさん@お腹いっぱい。
2014/12/15(月) 16:25:05.95おとなしく \n で改行出力でしょうね。
0977名無しさん@お腹いっぱい。
2014/12/15(月) 16:29:44.42http://www.emacswiki.org/emacs/CLFormat
0978名無しさん@お腹いっぱい。
2014/12/17(水) 03:14:30.77スタック1番の内容が
1@ 2' 3"
となっている時に n を押すと
-1@ 2' 3"
になりますが、
0@ 2' 3"
のように時間が 0 の時に n を押すと
C-g でキャンセルするまで何もできなくなります。
calc-change-sign の advice で無理やり -0@ 2' 3" 入れても
t n で出した日時に + も出来ず、やはり C-g するまで戻ってきません。
時間部分が 0 な負の HMS を使うにはどうすればよいでしょうか?
0979名無しさん@お腹いっぱい。
2014/12/17(水) 03:47:02.680980名無しさん@お腹いっぱい。
2014/12/18(木) 12:17:00.40皆様の環境ではいかがでしょうか?
emacs -q の環境で session.el をロード、session-initialize 後に
session-set-file-name-exclude-regexp に元々設定されてる .overview を開いて終了、
その後同じく emacs -q で session-initialize したところ .overview が file-name-history に普通に残っちゃっています。
コード見た感じだと find-file-hook に session-set-file-name-history が設定されており、
除外対象じゃなければ file-name-history にファイル名を追加するってコードになっているんですが、
どうも最初から file-name-history にファイル名が追加済みになっちゃってるみたいなんですよね。
試した環境は emacs-24.3 と emacs-24.4 です。
session.el は melpa にある 2.3a を使いました。
0981名無しさん@お腹いっぱい。
2014/12/18(木) 13:40:34.04file-name-history に残らないな。
session.el:
===========
(defun session-set-file-name-history ()
:
(unless (and session-set-file-name-exclude-regexp
(string-match session-set-file-name-exclude-regexp name))
(push name file-name-history))
一旦、file-name-history をクリア(nil に設定)して session-save-session
してみたら?
0982名無しさん@お腹いっぱい。
2014/12/18(木) 14:12:46.80うーん、残りませんか。
emacs -Q で以下を実行したところ、確かに file-name-history には ~/test.txt しか入りませんでした。
(progn
(load "~/.emacs.d/elpa/session-20120510.1700/session.el")
(session-initialize)
(setq file-name-history nil)
(find-file "~/.overview")
(find-file "~/test.txt")
file-name-history)
ですが、M-x find-file で ~/.overview を開いた後に file-name-history を評価すると
やっぱり ~/.overview が追加されてしまいます。
session-save-file してもやっぱりその時の file-name-history が保存されてしまいますね。
-Q で起動してるから差はないような気もするんですけど何が原因なんだろう・・・
0983名無しさん@お腹いっぱい。
2014/12/18(木) 15:06:12.17それは確か仕様だったような。
インタラクティブに実行した場合は残るはず。
関数として呼び出した時も履歴を残そうとする session-find-file がわざわざ用意されてるぐらいだし。
0984名無しさん@お腹いっぱい。
2014/12/18(木) 15:31:01.95ありがとうございます。パッケージとかが勝手に開くファイルを履歴に残さないための設定ってわけなんですね。
元々の発端は magit の COMMIT_EDITMSG が session-set-file-name-exclude-regexp に設定してるにもかかわらず
session に残されてしまうってのだったんですが、
どうやら magit が emacsclient 経由でコミットメッセージ書くようになったのが原因っぽいですね。
magit-emacsclient-executable を nil にして内部呼び出しだけで完結させたら file-name-history に残らなくなりました。
とりあえず emacsclient 使いつつの履歴に残らないような何かうまい解決方法考えてみます。
レス数が950を超えています。1000を超えると書き込みができなくなります。