私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレEmacs Part 46
emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>950
いや、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"
でダメだった。
いや、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"
でダメだった。
>>952
何で再現しないんだろう?こっちでは、VMwareにインストールしただけで何も余計な設定していない2つのubuntu 14.04の間でsshして試しても起きるんだけど。
何で再現しないんだろう?こっちでは、VMwareにインストールしただけで何も余計な設定していない2つのubuntu 14.04の間でsshして試しても起きるんだけど。
>>948
gcj環境作るの億劫だったので試してないけど、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のコマンド
に合わせて変更してください。
gcj環境作るの億劫だったので試してないけど、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のコマンド
に合わせて変更してください。
こないだの whitespace のもそうだけど安直に advice 使うとハマるよね
引用元で
(defsubst quickrun/use-tempfile-p (cmd-key)
を
(defadvice quickrun/use-tempfile-p (after java8 activate)
でadviceしてるけど、defsubstってインライン関数定義なのにadvice使えるものなのかな?
このあたりまったく知らなかったからいろいろ試してみよう
(defsubst quickrun/use-tempfile-p (cmd-key)
を
(defadvice quickrun/use-tempfile-p (after java8 activate)
でadviceしてるけど、defsubstってインライン関数定義なのにadvice使えるものなのかな?
このあたりまったく知らなかったからいろいろ試してみよう
>>956
既にバイトコンパイル済みのに対しては無効なんじゃね
既にバイトコンパイル済みのに対しては無効なんじゃね
インライン展開については、他の言語同様、一部だけしか展開されなくて、
今回のやつは、defsubst使ってるけど実際にはインライン展開されなくてadviceが使える
というオチ
筋の悪いコード
今回のやつは、defsubst使ってるけど実際にはインライン展開されなくてadviceが使える
というオチ
筋の悪いコード
あるファイルに、そのファイルからの別のファイルへの相対パスをお手軽に入力するコマンドもしくは elisp はあるでしょうか?
例えば、find file コマンドのように補完入力でファイルを指定したら、そのファイルへの相対パスが入力できたら便利だな、思う事がしばしばあります。
例えば、find file コマンドのように補完入力でファイルを指定したら、そのファイルへの相対パスが入力できたら便利だな、思う事がしばしばあります。
>>960
やっつけだけどこんな感じ?
(defun insert-relative-file-path (file)
(interactive "ffile name:")
(insert (file-relative-name file (buffer-file-name))))
やっつけだけどこんな感じ?
(defun insert-relative-file-path (file)
(interactive "ffile name:")
(insert (file-relative-name file (buffer-file-name))))
間違えた…
(defun insert-relative-file-path (file)
(interactive "ffile name: ")
(insert (file-relative-name file
(file-name-directory (buffer-file-name)))))
(defun insert-relative-file-path (file)
(interactive "ffile name: ")
(insert (file-relative-name file
(file-name-directory (buffer-file-name)))))
>>963
>
まさにそれ!!ありがとうございます。
あと、EmacsWiki でも、似たようなのを見つけることができた。
http://www.emacswiki.org/emacs/InsertFileName
>
まさにそれ!!ありがとうございます。
あと、EmacsWiki でも、似たようなのを見つけることができた。
http://www.emacswiki.org/emacs/InsertFileName
しかしemacs-diffsがgitに移行してから滅茶苦茶見づらくなった…
bzrに移行した時も少し見づらくなったがそれでも許容範囲だったが今回はアカン
bzrに移行した時も少し見づらくなったがそれでも許容範囲だったが今回はアカン
質問です。
helmを入れたら、M-x browse-url と M-x navi2ch が全然候補に出て来ず、
コマンド名を全部入力しなければなりません。解決するにはどうしたら
良いでしょう?
helmを入れたら、M-x browse-url と M-x navi2ch が全然候補に出て来ず、
コマンド名を全部入力しなければなりません。解決するにはどうしたら
良いでしょう?
候補に出てこない、は嘘でした。リストのすごく下の方に出てくる。
もっと上の方に出現して欲しいのですが。
もっと上の方に出現して欲しいのですが。
>>968
(setq helm-mode-reverse-history nil)
(setq helm-mode-reverse-history nil)
小菊の後継ってなかなかでないけどみんなhelmとか使うようになって不要になっちゃったからなのかね。
formatの質問です
common lispで
(loop for i from 1 to 10
do (format t "[~A]~%" i))
とする場合の~%にあたるものは
emacs lispの方のformatにはないのでしょうか?
common lispで
(loop for i from 1 to 10
do (format t "[~A]~%" i))
とする場合の~%にあたるものは
emacs lispの方のformatにはないのでしょうか?
どっちかっていうと C の sprintf 由来な感じだからないと思う。
おとなしく \n で改行出力でしょうね。
おとなしく \n で改行出力でしょうね。
EmacsWiki: CLFormat
http://www.emacswiki.org/emacs/CLFormat
http://www.emacswiki.org/emacs/CLFormat
calc の HMS について質問させてください。
スタック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 を使うにはどうすればよいでしょうか?
スタック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 を使うにはどうすればよいでしょうか?
いつの頃からか session.el の session-set-file-name-exclude-regexp が機能してないような気がするんですが
皆様の環境ではいかがでしょうか?
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 を使いました。
皆様の環境ではいかがでしょうか?
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 を使いました。
Emacs 25.0.50、session 2.3a(melpa) で試してみたけど .overview は
file-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
してみたら?
file-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
してみたら?
>>981
うーん、残りませんか。
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 で起動してるから差はないような気もするんですけど何が原因なんだろう・・・
うーん、残りませんか。
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 で起動してるから差はないような気もするんですけど何が原因なんだろう・・・
>>982
それは確か仕様だったような。
インタラクティブに実行した場合は残るはず。
関数として呼び出した時も履歴を残そうとする session-find-file がわざわざ用意されてるぐらいだし。
それは確か仕様だったような。
インタラクティブに実行した場合は残るはず。
関数として呼び出した時も履歴を残そうとする session-find-file がわざわざ用意されてるぐらいだし。
>>983
ありがとうございます。パッケージとかが勝手に開くファイルを履歴に残さないための設定ってわけなんですね。
元々の発端は magit の COMMIT_EDITMSG が session-set-file-name-exclude-regexp に設定してるにもかかわらず
session に残されてしまうってのだったんですが、
どうやら magit が emacsclient 経由でコミットメッセージ書くようになったのが原因っぽいですね。
magit-emacsclient-executable を nil にして内部呼び出しだけで完結させたら file-name-history に残らなくなりました。
とりあえず emacsclient 使いつつの履歴に残らないような何かうまい解決方法考えてみます。
ありがとうございます。パッケージとかが勝手に開くファイルを履歴に残さないための設定ってわけなんですね。
元々の発端は magit の COMMIT_EDITMSG が session-set-file-name-exclude-regexp に設定してるにもかかわらず
session に残されてしまうってのだったんですが、
どうやら magit が emacsclient 経由でコミットメッセージ書くようになったのが原因っぽいですね。
magit-emacsclient-executable を nil にして内部呼び出しだけで完結させたら file-name-history に残らなくなりました。
とりあえず emacsclient 使いつつの履歴に残らないような何かうまい解決方法考えてみます。
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- Emacs Part 40 (1001) - [92%] - 2012/9/7 0:30
- Emacs Part 47 (995) - [92%] - 2015/4/19 13:01
- Emacs Part 36 (1001) - [92%] - 2011/3/1 5:02
- Emacs Part 42 (1001) - [92%] - 2013/6/9 5:15 △
- Emacs Part 43 (1001) - [92%] - 2013/12/14 11:30
- Emacs Part 45 (1001) - [92%] - 2014/6/23 9:45
- Emacs Part 44 (1001) - [92%] - 2014/2/8 8:01 △
- Emacs Part 48 (997) - [92%] - 2015/12/9 15:15
- Emacs Part 49 (974) - [92%] - 2016/12/7 9:45
- Emacs Part 41 (1001) - [92%] - 2012/12/24 4:15
- Emacs Part 33 (1001) - [84%] - 2010/3/9 20:01 ○
- Emacs Part 53 (989) - [84%] - 2022/12/5 12:45
- Emacs Part 32 (1001) - [84%] - 2009/12/20 2:04 ○
- Emacs Part 31 (1001) - [84%] - 2009/10/23 10:31 ○
トップメニューへ / →のくす牧場書庫について