私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレEmacs Part 44
emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : △
レスフィルター : (試験中)
以下の行にカーソルが乗っている場合、
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
\M-q で
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
みたいに整形されるけど、
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
のように "* " の長さも次行のインデントに含めて欲しい場合、どう設定すれば良いですか?
adaptive-fill-regexp, adaptive-fill-first-line-regexp 等試しましたが、上手くいきません。
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
\M-q で
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
みたいに整形されるけど、
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
のように "* " の長さも次行のインデントに含めて欲しい場合、どう設定すれば良いですか?
adaptive-fill-regexp, adaptive-fill-first-line-regexp 等試しましたが、上手くいきません。
>>203
確かに text-mode デフォルトだと
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
(\M-q) →
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
が達成できますが、それだと全角スペースやコメント等に対応しておらず、例えば
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
は \M-q で下記のように整形されるわけです。
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
これを訂正しようと、" " のケースを adaptive-fill-regexp に追加すると、
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
までにしかならず、 "* " のインデント分は考慮されなくなるというイタチごっこで。。。
確かに text-mode デフォルトだと
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
(\M-q) →
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
が達成できますが、それだと全角スペースやコメント等に対応しておらず、例えば
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
は \M-q で下記のように整形されるわけです。
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
これを訂正しようと、" " のケースを adaptive-fill-regexp に追加すると、
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
までにしかならず、 "* " のインデント分は考慮されなくなるというイタチごっこで。。。
あっ、すみません、自己解決しました。
adaptive-fill-regexp のデフォルト値を参照して変更加えてたら、
やりたい事全部できちゃいました。
adaptive-fill-regexp のデフォルト値を参照して変更加えてたら、
やりたい事全部できちゃいました。
Cocoa Emacs のフォント設定について - my-misc.blog
http://d.hatena.ne.jp/setoryohei/20110117/1295336454
http://d.hatena.ne.jp/setoryohei/20110117/1295336454
>>209
結局 face-font-rescale-alist って高さも幅もリスケールしちゃうから
どう頑張ってもずれるフォントはずれるんだよね。
強制的に高さと幅指定してそれに満たない部分は空白で埋めるとかできればなあ。
結局 face-font-rescale-alist って高さも幅もリスケールしちゃうから
どう頑張ってもずれるフォントはずれるんだよね。
強制的に高さと幅指定してそれに満たない部分は空白で埋めるとかできればなあ。
話の流れぶった切るけどと取り敢えず貼っとく
Emacsの標準機能だとminibufferにカーソル位置の単語を初期入力に
してないものがあったりしてイラついたんで汎用的なのを作った
(defun minibuffer-insert-word-at-point ()
"Get a word at point in original buffer and insert it to minibuffer."
(interactive)
(when (window-minibuffer-p)
(let ((word-at-point (with-current-buffer (window-buffer (minibuffer-selected-window))
(thing-at-point 'word))))
(when word-at-point
(insert word-at-point)))))
(define-key minibuffer-local-map [(control ?.)] 'minibuffer-insert-word-at-point)
これでminibufferでC-.でカーソル位置の単語をコピってくる
ちなみにminibuffer.elのケツに似た様なのがあったんでそれをパクった
Emacsの標準機能だとminibufferにカーソル位置の単語を初期入力に
してないものがあったりしてイラついたんで汎用的なのを作った
(defun minibuffer-insert-word-at-point ()
"Get a word at point in original buffer and insert it to minibuffer."
(interactive)
(when (window-minibuffer-p)
(let ((word-at-point (with-current-buffer (window-buffer (minibuffer-selected-window))
(thing-at-point 'word))))
(when word-at-point
(insert word-at-point)))))
(define-key minibuffer-local-map [(control ?.)] 'minibuffer-insert-word-at-point)
これでminibufferでC-.でカーソル位置の単語をコピってくる
ちなみにminibuffer.elのケツに似た様なのがあったんでそれをパクった
format での # 指定時の仕様が気持ち悪い
(format "%#6x" 15) とかやると " 0xf" になるのはいいんだけど
(format "%#06x" 15) にしたときに "0000xf" はおかしいよ・・0x の後に0足してくれよ
C の printf だと"%#06x" で "0x000f" になってくれる
(format "%#6x" 15) とかやると " 0xf" になるのはいいんだけど
(format "%#06x" 15) にしたときに "0000xf" はおかしいよ・・0x の後に0足してくれよ
C の printf だと"%#06x" で "0x000f" になってくれる
元々sjis(?)でエンコードされたファイルがUTF-8で表示されるようになって
しまって、それをセーブしたら、ファイルの文字が以下のように壊れてしまいました。
\343\202\253\343\203\274\343\202\275 ...
これを元の文字に直す方法はありませんか? 再現できればsjisでもutf-8でも問題ありません。
しまって、それをセーブしたら、ファイルの文字が以下のように壊れてしまいました。
\343\202\253\343\203\274\343\202\275 ...
これを元の文字に直す方法はありませんか? 再現できればsjisでもutf-8でも問題ありません。
eval-when-compile と eval-and-compile の使い分けは以下の認識であってますでしょうか?
前提) コンパイル時に素の require は実行されない。
・eval-when-compile
通常ロード時は他とかわらず普通に eval される。
バイトコンパイル時は eval した結果に置き換わり元の式の形では残らない。
→事前に複雑な定数式の計算をさせたり、
コンパイル時に置き換えてしまって残したくない内部的なマクロ定義をしたり、
コンパイル時に必要な定数値や関数定義をロードするのに使う。
・eval-and-compile
通常ロード時は他とかわらず普通に eval される。
バイトコンパイル時に eval されるが、コンパイル結果は元の式のまま残る。
→コンパイル時/実行時共に必要な定数値や関数定義をロードするのに使う。
前提) コンパイル時に素の require は実行されない。
・eval-when-compile
通常ロード時は他とかわらず普通に eval される。
バイトコンパイル時は eval した結果に置き換わり元の式の形では残らない。
→事前に複雑な定数式の計算をさせたり、
コンパイル時に置き換えてしまって残したくない内部的なマクロ定義をしたり、
コンパイル時に必要な定数値や関数定義をロードするのに使う。
・eval-and-compile
通常ロード時は他とかわらず普通に eval される。
バイトコンパイル時に eval されるが、コンパイル結果は元の式のまま残る。
→コンパイル時/実行時共に必要な定数値や関数定義をロードするのに使う。
>>219
あってると思う。
あってると思う。
eval-and-compile は使いどころが難しいな
マクロの式組み立てに使う関数を require するのぐらいしか使ったこと無い
マクロの式組み立てに使う関数を require するのぐらいしか使ったこと無い
ASCII.jp:ストールマン氏が語る「巨大な監視エンジンと民主主義の危機」 (1/2)
http://ascii.jp/elem/000/000/856/856012/
フリーソフトウェア以外は拒否すべき
http://ascii.jp/elem/000/000/856/856012/
フリーソフトウェア以外は拒否すべき
>>175
俺も calc-mode 改造したぜ!
↓この4行をそのままコピーしてペーストしても
0x1869F円
298,000円
100円
¥10,000
↓スタックにはこう入って超便利!
99999
298000
100
10000
俺も calc-mode 改造したぜ!
↓この4行をそのままコピーしてペーストしても
0x1869F円
298,000円
100円
¥10,000
↓スタックにはこう入って超便利!
99999
298000
100
10000
なんか mhc を思い出したわ
いまだと twittering-mode とか eww → org へインポートみたいな作りになるんだろうかね
いまだと twittering-mode とか eww → org へインポートみたいな作りになるんだろうかね
>>229
packageにしてupしてくれ!
packageにしてupしてくれ!
定数について質問です。
C の #define のように、コンパイル時に完全に置き換わってシンボル名を残さない定数定義は可能でしょうか?
defconst の場合、コンパイルしても置き換えは起こりませんでした。
defmacro は eval-when-compile と組み合わせればシンボル名を残さずに定義できますが、
関数呼び出しの形で書かなくていけないのがいまいちな感じです。
C の #define のように、コンパイル時に完全に置き換わってシンボル名を残さない定数定義は可能でしょうか?
defconst の場合、コンパイルしても置き換えは起こりませんでした。
defmacro は eval-when-compile と組み合わせればシンボル名を残さずに定義できますが、
関数呼び出しの形で書かなくていけないのがいまいちな感じです。
(eval-and-compile (defconst hogehoge "HOGE!"))
こうじゃなかったっけ?
こうじゃなかったっけ?
>>235
elc を見てみましたがやっぱり置き換えは発生しておりませんでした。
(eval-and-compile (defconst test-hogehoge "HOGE"))
(defun test-func () test-hogehoge)
=>
(defconst test-hogehoge "HOGE")
(defalias 'test-func #[nil "^H\207" [test-hogehoge] 1])
elc を見てみましたがやっぱり置き換えは発生しておりませんでした。
(eval-and-compile (defconst test-hogehoge "HOGE"))
(defun test-func () test-hogehoge)
=>
(defconst test-hogehoge "HOGE")
(defalias 'test-func #[nil "^H\207" [test-hogehoge] 1])
>>236 あ、ほんとだ。消えない。すまぬ。
(eval-when-compile (defconst test-hogehoge "HOGE"))
(defun test-func ()
(eval-when-compile test-hogehoge))
eval-when-compile で全部包むと消えるみたいけど、めんどくさいかな。
(eval-when-compile (defconst test-hogehoge "HOGE"))
(defun test-func ()
(eval-when-compile test-hogehoge))
eval-when-compile で全部包むと消えるみたいけど、めんどくさいかな。
>>234
cl-symbol-macrolet はどうだろう。clパッケージに依存するけれど。
(require 'cl-macs)
(cl-symbol-macrolet ((hoge "HOGE")
(fuga "FUGA"))
(defun f ()
(list hoge fuga)))
(symbol-function 'f)
;=> (lambda nil (list "HOGE" "FUGA"))
cl-symbol-macrolet はどうだろう。clパッケージに依存するけれど。
(require 'cl-macs)
(cl-symbol-macrolet ((hoge "HOGE")
(fuga "FUGA"))
(defun f ()
(list hoge fuga)))
(symbol-function 'f)
;=> (lambda nil (list "HOGE" "FUGA"))
二つのリストを与えてそれをemacs lispで処理したいです
このようなものです
(mapc (lambda (a b) (print (+ a b)))
'(2 3 4) '(3 4 5))
想定しているのはcommon lispのmapcのようなことなのですが、できないものでしょうか
このようなものです
(mapc (lambda (a b) (print (+ a b)))
'(2 3 4) '(3 4 5))
想定しているのはcommon lispのmapcのようなことなのですが、できないものでしょうか
>>240
cl の mapc がそのまんま common lisp の挙動だね。
(require 'cl-lib)
(cl-mapc (lambda (a b) (print (+ a b))) '(2 3 4) '(3 4 5))
cl の mapc がそのまんま common lisp の挙動だね。
(require 'cl-lib)
(cl-mapc (lambda (a b) (print (+ a b))) '(2 3 4) '(3 4 5))
>>241
!ばっちりです!ありがとうございました
!ばっちりです!ありがとうございました
auto-save-hook で *scratch* の内容を保存してるのですが
保存時に出るこのエコーを無効にしたいです。
Saving file /usr/home/jk2/.emacs.d/.scratch…
Wrote /usr/home/jk2/.emacs.d/.scratch
「Saving file~」は message の defadvice で消せました。
「Wrote~」はどこで無効にすればよいのでしょうか?
保存時に出るこのエコーを無効にしたいです。
Saving file /usr/home/jk2/.emacs.d/.scratch…
Wrote /usr/home/jk2/.emacs.d/.scratch
「Saving file~」は message の defadvice で消せました。
「Wrote~」はどこで無効にすればよいのでしょうか?
>>244
ありがとうございます!静かになりました。
ありがとうございます!静かになりました。
signal を投げるとデバッガが起動しますが、
デバッガを終了した後に signal を投げた箇所から再開させるよう
デバッガの操作ではなくコード側から指示することは可能でしょうか?
(let ((count 100))
(while (> count 0)
;; do something
(when something-happened
(signal 'some-error nil))
;; do something ;; <= エラーが起きてもここから再開したい & ignore-errors でシグナルを無視はしたくない & ループも抜けたくない
(setq count (1- count))))
デバッガを終了した後に signal を投げた箇所から再開させるよう
デバッガの操作ではなくコード側から指示することは可能でしょうか?
(let ((count 100))
(while (> count 0)
;; do something
(when something-happened
(signal 'some-error nil))
;; do something ;; <= エラーが起きてもここから再開したい & ignore-errors でシグナルを無視はしたくない & ループも抜けたくない
(setq count (1- count))))
>>247
ありがとうございます。
(debug 'hoge) でシグナルと同じようにデバッガに入れるんですね。
いま気がついたんですけど ignore-errors でもどちらにせよエラー起きた場所で止まっちゃうんですね。
(ignore-errors
(signal 'error nil)
(message "ppp") ;; <= ここまで到達はしない
)
basic とかにある、on error resume next みたいなのは無理かー
ありがとうございます。
(debug 'hoge) でシグナルと同じようにデバッガに入れるんですね。
いま気がついたんですけど ignore-errors でもどちらにせよエラー起きた場所で止まっちゃうんですね。
(ignore-errors
(signal 'error nil)
(message "ppp") ;; <= ここまで到達はしない
)
basic とかにある、on error resume next みたいなのは無理かー
set-process-filter で設定したフィルタ関数内で
accept-process-output したりすると、(プロセスの出力があれば)フィルタ関数内で
フィルタ関数が呼ばれることになるんでしょうか?
accept-process-output したりすると、(プロセスの出力があれば)フィルタ関数内で
フィルタ関数が呼ばれることになるんでしょうか?
>>212
Gaucheのリーダマクロ #?= みたいにprintfデバッグを書くのに debug-print.el というのを作ったのですが,
可能であれば函数名を読み取って表示するので要望に合うかもです.
現状では debug-print を上書きすれば表示は変えられるけど, もうちょい変えやすくしますかね.
(debug-printという関数名は twittering-mode.el も使ってるんで現状では少し注意.)
何か要望出してもらえれば反映するかもです.
丁度いい機会なのでいくつか質問を.
1. 既存の函数の戻り値に一時的に少し手を加えたい場合はどうするのが良いのでしょうか.
adviseされた函数をfletで上書きするとエラーが出るのでadviceを使うのが正しいのでしょうが,
常にそのadviceを有効にしたいわけではないのです. 大域変数を使ってadvice内部で
その変数を見て動作を切り替えるというのが標準的なんですかね?
2. そのやり方で何か不都合が出るかどうかが気になります.
因みに上のやり方がパッと思いつかなかったので現状では ad-enable-advice と ad-disable-advice
でadviceの有効/無効を切り替えています. こちらは既にバグがあることがわかっています.
Gaucheのリーダマクロ #?= みたいにprintfデバッグを書くのに debug-print.el というのを作ったのですが,
可能であれば函数名を読み取って表示するので要望に合うかもです.
現状では debug-print を上書きすれば表示は変えられるけど, もうちょい変えやすくしますかね.
(debug-printという関数名は twittering-mode.el も使ってるんで現状では少し注意.)
何か要望出してもらえれば反映するかもです.
丁度いい機会なのでいくつか質問を.
1. 既存の函数の戻り値に一時的に少し手を加えたい場合はどうするのが良いのでしょうか.
adviseされた函数をfletで上書きするとエラーが出るのでadviceを使うのが正しいのでしょうが,
常にそのadviceを有効にしたいわけではないのです. 大域変数を使ってadvice内部で
その変数を見て動作を切り替えるというのが標準的なんですかね?
2. そのやり方で何か不都合が出るかどうかが気になります.
因みに上のやり方がパッと思いつかなかったので現状では ad-enable-advice と ad-disable-advice
でadviceの有効/無効を切り替えています. こちらは既にバグがあることがわかっています.
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
みんなの評価 : △類似してるかもしれないスレッド
- Emacs Part 54 (97) - [92%] - 2023/1/25 17:15
- Emacs Part 46 (984) - [92%] - 2014/12/24 14:15
- Emacs Part 34 (1001) - [92%] - 2010/6/21 19:45 ○
- Emacs Part 41 (1001) - [92%] - 2012/12/24 4:15
- 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 40 (1001) - [92%] - 2012/9/7 0:30
- Emacs Part 47 (995) - [92%] - 2015/4/19 13:01
- Emacs Part 49 (974) - [92%] - 2016/12/7 9:45
- Emacs Part 48 (997) - [92%] - 2015/12/9 15:15
- Emacs Part 53 (989) - [84%] - 2022/12/5 12:45
- Emacs Part 31 (1001) - [84%] - 2009/10/23 10:31 ○
- Emacs Part 32 (1001) - [84%] - 2009/12/20 2:04 ○
トップメニューへ / →のくす牧場書庫について