トップページunix
1001コメント307KB

Emacs Part 44

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2013/12/14(土) 17:36:04.45
語り合いましょう。

GNU Emacs - GNU Project - Free Software Foundation (FSF)
https://www.gnu.org/software/emacs/

EmacsWiki: サイトマップ
http://www.emacswiki.org/emacs/

前スレ
Emacs Part 43
http://toro.2ch.net/test/read.cgi/unix/1370754332/
0203名無しさん@お腹いっぱい。2014/01/05(日) 23:10:00.15
>>202
text-modeだと後者のように整形されるよ。
24.3
0204名無しさん@お腹いっぱい。2014/01/05(日) 23:41:55.79
後者?
0205名無しさん@お腹いっぱい。2014/01/06(月) 00:23:07.28
>>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.

までにしかならず、 "* " のインデント分は考慮されなくなるというイタチごっこで。。。
02062052014/01/06(月) 00:31:27.89
あっ、すみません、自己解決しました。

adaptive-fill-regexp のデフォルト値を参照して変更加えてたら、
やりたい事全部できちゃいました。
0207名無しさん@お腹いっぱい。2014/01/06(月) 02:45:29.06
>>198
フォントまわりは悩ましいよね。
俺も>>199さんと同じで日本語と英字で同じフォントにしてる。
それでもフォントの大きさによってずれることがあるので、
うまく合う大きさを指定してる感じ。
0208名無しさん@お腹いっぱい。2014/01/06(月) 09:15:03.00
ttf 編集出来るソフトで俺俺フォント作っちゃったほうが色々楽になりそうだ
0209名無しさん@お腹いっぱい。2014/01/06(月) 09:42:57.10
Cocoa Emacs のフォント設定について - my-misc.blog
http://d.hatena.ne.jp/setoryohei/20110117/1295336454
0210名無しさん@お腹いっぱい。2014/01/06(月) 12:32:36.57
>>209
結局 face-font-rescale-alist って高さも幅もリスケールしちゃうから
どう頑張ってもずれるフォントはずれるんだよね。
強制的に高さと幅指定してそれに満たない部分は空白で埋めるとかできればなあ。
0211名無しさん@お腹いっぱい。2014/01/06(月) 13:36:39.61
話の流れぶった切るけどと取り敢えず貼っとく
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のケツに似た様なのがあったんでそれをパクった
0212名無しさん@お腹いっぱい。2014/01/06(月) 19:57:57.71
自分自身の関数名を取得する方法ってありますかね?

(defmacro my-debug (msg)
`(message "%s - %s:%s" (current-time-string) 関数名 msg))

みたいなことができたらデバッグメッセージ埋め込んだりするのが楽だと思ったのですが、
それらしいものがみつかりませんでした。
0213名無しさん@お腹いっぱい。2014/01/06(月) 22:02:19.67
format での # 指定時の仕様が気持ち悪い

(format "%#6x" 15) とかやると " 0xf" になるのはいいんだけど
(format "%#06x" 15) にしたときに "0000xf" はおかしいよ・・0x の後に0足してくれよ
C の printf だと"%#06x" で "0x000f" になってくれる
0214名無しさん@お腹いっぱい。2014/01/06(月) 23:35:51.41
うーんこの
0215名無しさん@お腹いっぱい。2014/01/06(月) 23:48:16.50
>>212
backtrace-frame を使えばできるかもしれない。
常に関数の先頭で使うという前提なら、関数名のところで、

(if (car (backtrace-frame 1))
(cadr (backtrace-frame 1))
(cadr (backtrace-frame 4)))

かも。

>>213
バグでしょう。

(format "%#.04x" 15)

で回避。
0216名無しさん@お腹いっぱい。2014/01/07(火) 00:31:04.64
>>215
ありがとうございます。backtrace は自分で呼び出せるんですねー。
呼び出し元でどれだけ遡るかを決めなくてはいけないのは致し方ないですね。
0217名無しさん@お腹いっぱい。2014/01/07(火) 00:31:17.67
元々sjis(?)でエンコードされたファイルがUTF-8で表示されるようになって
しまって、それをセーブしたら、ファイルの文字が以下のように壊れてしまいました。

\343\202\253\343\203\274\343\202\275 ...

これを元の文字に直す方法はありませんか? 再現できればsjisでもutf-8でも問題ありません。
0218名無しさん@お腹いっぱい。2014/01/07(火) 01:16:08.98
C-x C-m c utf-8 C-x C-v

カーソ (?)
0219名無しさん@お腹いっぱい。2014/01/08(水) 10:26:20.98
eval-when-compile と eval-and-compile の使い分けは以下の認識であってますでしょうか?

前提) コンパイル時に素の require は実行されない。

・eval-when-compile
通常ロード時は他とかわらず普通に eval される。
バイトコンパイル時は eval した結果に置き換わり元の式の形では残らない。
→事前に複雑な定数式の計算をさせたり、
コンパイル時に置き換えてしまって残したくない内部的なマクロ定義をしたり、
コンパイル時に必要な定数値や関数定義をロードするのに使う。

・eval-and-compile
通常ロード時は他とかわらず普通に eval される。
バイトコンパイル時に eval されるが、コンパイル結果は元の式のまま残る。
→コンパイル時/実行時共に必要な定数値や関数定義をロードするのに使う。
0220名無しさん@お腹いっぱい。2014/01/08(水) 11:15:55.78
>>219
あってると思う。
0221名無しさん@お腹いっぱい。2014/01/08(水) 11:35:01.04
eval-and-compile は使いどころが難しいな
マクロの式組み立てに使う関数を require するのぐらいしか使ったこと無い
0222名無しさん@お腹いっぱい。2014/01/08(水) 20:24:25.57
SKK は今どこにあるんですか?
0223名無しさん@お腹いっぱい。2014/01/08(水) 21:20:35.34
openlabですよ。
0224名無しさん@お腹いっぱい。2014/01/09(木) 11:55:11.89
あけおめー
0225名無しさん@お腹いっぱい。2014/01/09(木) 11:59:40.93
>>222
http://www.ring.gr.jp/archives/elisp/skk/maintrunk/
0226名無しさん@お腹いっぱい。2014/01/09(木) 13:14:28.50
ASCII.jp:ストールマン氏が語る「巨大な監視エンジンと民主主義の危機」 (1/2)
http://ascii.jp/elem/000/000/856/856012/
フリーソフトウェア以外は拒否すべき
0227名無しさん@お腹いっぱい。2014/01/09(木) 14:02:28.33
腹が…
0228名無しさん@お腹いっぱい。2014/01/09(木) 15:16:30.30
RMSは腹の中にGNUを貯めてるから
0229名無しさん@お腹いっぱい。2014/01/10(金) 03:55:06.00
>>175
俺も calc-mode 改造したぜ!
↓この4行をそのままコピーしてペーストしても

0x1869F円
298,000円
100円
¥10,000

↓スタックにはこう入って超便利!

99999
298000
100
10000
0230名無しさん@お腹いっぱい。2014/01/10(金) 09:28:22.41
なんか mhc を思い出したわ
いまだと twittering-mode とか eww → org へインポートみたいな作りになるんだろうかね
0231名無しさん@お腹いっぱい。2014/01/10(金) 11:00:15.51
>>229
packageにしてupしてくれ!
0232名無しさん@お腹いっぱい。2014/01/10(金) 11:17:36.57
calc-language-input-filter を定義すりゃいいのかね
0233名無しさん@お腹いっぱい。2014/01/10(金) 11:19:27.95
calc 実際便利だよな
0234名無しさん@お腹いっぱい。2014/01/10(金) 12:55:30.97
定数について質問です。
C の #define のように、コンパイル時に完全に置き換わってシンボル名を残さない定数定義は可能でしょうか?

defconst の場合、コンパイルしても置き換えは起こりませんでした。
defmacro は eval-when-compile と組み合わせればシンボル名を残さずに定義できますが、
関数呼び出しの形で書かなくていけないのがいまいちな感じです。
0235名無しさん@お腹いっぱい。2014/01/10(金) 13:56:19.41
(eval-and-compile (defconst hogehoge "HOGE!"))

こうじゃなかったっけ?
0236名無しさん@お腹いっぱい。2014/01/10(金) 14:13:54.03
>>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])
0237名無しさん@お腹いっぱい。2014/01/10(金) 14:52:48.48
>>236 あ、ほんとだ。消えない。すまぬ。

(eval-when-compile (defconst test-hogehoge "HOGE"))
(defun test-func ()
(eval-when-compile test-hogehoge))

eval-when-compile で全部包むと消えるみたいけど、めんどくさいかな。
0238名無しさん@お腹いっぱい。2014/01/10(金) 16:01:53.67
>>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"))
0239名無しさん@お腹いっぱい。2014/01/10(金) 19:19:36.12
>>237
やっぱりその場で eval させないとだめっぽいですね。

>>238
おおおー
スコープ絞ればかなり期待通りの動作です。
ありがとうございます。
cl 奥が深いなあ
0240名無しさん@お腹いっぱい。2014/01/11(土) 11:37:09.14
二つのリストを与えてそれをemacs lispで処理したいです
このようなものです
(mapc (lambda (a b) (print (+ a b)))
'(2 3 4) '(3 4 5))
想定しているのはcommon lispのmapcのようなことなのですが、できないものでしょうか
0241名無しさん@お腹いっぱい。2014/01/11(土) 11:45:17.84
>>240
cl の mapc がそのまんま common lisp の挙動だね。
(require 'cl-lib)
(cl-mapc (lambda (a b) (print (+ a b))) '(2 3 4) '(3 4 5))
0242名無しさん@お腹いっぱい。2014/01/11(土) 13:30:42.74
>>241
!ばっちりです!ありがとうございました
0243名無しさん@お腹いっぱい。2014/01/12(日) 06:01:18.50
auto-save-hook で *scratch* の内容を保存してるのですが
保存時に出るこのエコーを無効にしたいです。

Saving file /usr/home/jk2/.emacs.d/.scratch…
Wrote /usr/home/jk2/.emacs.d/.scratch

「Saving file〜」は message の defadvice で消せました。
「Wrote〜」はどこで無効にすればよいのでしょうか?
0244名無しさん@お腹いっぱい。2014/01/12(日) 10:22:18.85
write-region の第5引数になんか指定すれば黙るよ。
0245名無しさん@お腹いっぱい。2014/01/12(日) 13:41:13.85
>>244
ありがとうございます!静かになりました。
0246名無しさん@お腹いっぱい。2014/01/14(火) 00:34:38.41
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))))
0247名無しさん@お腹いっぱい。2014/01/14(火) 02:59:39.10
>>246
(debug 'some-error)
にする
0248名無しさん@お腹いっぱい。2014/01/14(火) 10:10:16.95
>>247
ありがとうございます。
(debug 'hoge) でシグナルと同じようにデバッガに入れるんですね。

いま気がついたんですけど ignore-errors でもどちらにせよエラー起きた場所で止まっちゃうんですね。
(ignore-errors
(signal 'error nil)
(message "ppp") ;; <= ここまで到達はしない
)

basic とかにある、on error resume next みたいなのは無理かー
0249名無しさん@お腹いっぱい。2014/01/14(火) 20:04:25.19
set-process-filter で設定したフィルタ関数内で
accept-process-output したりすると、(プロセスの出力があれば)フィルタ関数内で
フィルタ関数が呼ばれることになるんでしょうか?
0250名無しさん@お腹いっぱい。2014/01/14(火) 21:52:26.73
>>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の有効/無効を切り替えています. こちらは既にバグがあることがわかっています.
0251名無しさん@お腹いっぱい。2014/01/14(火) 22:44:00.16
手元のもろもろのパッケージでは機能の有効化/無効化時に ad-enable/disable-advice を使ってるみたいです。
enable/disable で問題ない気もするのですがちなみにどんなバグなんでしょう?
ad-activate が抜けてるとか?
0252名無しさん@お腹いっぱい。2014/01/14(火) 22:52:00.69
>>250
> 丁度いい機会なのでいくつか質問を.
>
> 1. 既存の函数の戻り値に一時的に少し手を加えたい場合はどうするのが良いのでしょうか.

advice 使わないなら

(defconst original-FUNC (symbol-function 'FUNC))

(defun temporary-FUNC (&rest args)
(let ((retval (apply 'original-FUNC args))
....))

みたいにして

(fset 'FUNC 'original-FUNC) と (fset 'FUNC 'temporary-FUNC)

を切り換える、とか?
0253名無しさん@お腹いっぱい。2014/01/14(火) 23:04:51.41
>>252
advice された関数に対してそれをするとアカンのですよ。

(defun dump-me ()
"me me")

(defadvice dump-me (after test-ad activate)
(setq ad-return-value (concat ad-return-value "??")))

(defconst original-dump-me (symbol-function 'dump-me))

(defun temporary-dump-me (&rest args)
(let ((retval (apply original-dump-me args)))
(concat retval "!!"))
)

(fset 'dump-me original-dump-me)
(fset 'dump-me 'temporary-dump-me)

(dump-me) ;; => スタック使い果たす

24.4 では fset 時に advice がついてこなくなるとかなんとか。
0254名無しさん@お腹いっぱい。2014/01/14(火) 23:43:36.78
どうでもいいけど、函数ってかなり古い表現だよね
フォント⇒字母
アルゴリズム⇒算法
プログラム⇒算譜
みたいな
02552502014/01/14(火) 23:56:40.51
>>251
; あーこれdefadviceに対して debug-print-eval-last-sexp するとエラーになりますね.
単純にenable/disableするだけだとアドバイスが複数あったときに元の状態に戻せないのです.
advice.elの実装見れば対処法はわかるのかもしれませんがマニュアルしか読んでないので...
; ad-activate入れないといけないってのはわかりにくいですよね. マニュアルにもhelpにもあんまり書いてないですし.

(defmacro keu:with-advice (on-or-off func class advice &rest body)
"[internal] Evaluate BODY with ADVICE enabled/disabled.
Note that there is a bug that it cannot restore the state of ADVICE.
Any ideas?"
`(progn
,(pcase on-or-off
(`'on `(ad-enable-advice ,func ,class ,advice))
(`'off `(ad-disable-advice ,func ,class ,advice))
(_ (error "the first argument must be the symol 'on or 'off")))
(ad-activate ,func)
(let ((keu:with-advice:return-value ,@body))
,(pcase on-or-off
(`'on `(ad-disable-advice ,func ,class ,advice))
(`'off `(ad-enable-advice ,func ,class ,advice))
(_ (error "the first argument must be the symol 'on or 'off")))
(ad-activate ,func)
keu:with-advice:return-value)))

改行が多すぎるので続く.
0256名無しさん@お腹いっぱい。2014/01/14(火) 23:58:06.38
(defun foo (x)
(cons 'foo x))

(defadvice foo (after advice-a)
(setq ad-return-value `(advice-a ,ad-return-value)))

(defadvice foo (after advice-b)
(setq ad-return-value `(advice-b ,ad-return-value)))

(keu:with-advice 'on 'foo 'after 'advice-a
(funcall 'foo 100))
; => (advice-a
; (advice-b
; (foo . 100)))
(foo 100)
; => (advice-b
; (foo . 100))
(keu:with-advice 'on 'foo 'after 'advice-b
(funcall 'foo 100))
; => (advice-b
; (foo . 100))
(foo 100)
; => (foo . 100)
02572502014/01/15(水) 00:04:52.00
ああ, 複数じゃなくてもいいですよね.

(ad-disable-advice 'foo 'after 'advice-a)
(ad-activate 'foo)
(foo 100)
; => (foo . 100)
(keu:with-advice 'on 'foo 'after 'advice-a
(funcall 'foo 100))
; => (advice-a (foo . 100))
(foo 100)
; => (foo . 100)

(ad-enable-advice 'foo 'after 'advice-a)
(ad-activate 'foo)
(foo 100)
; => (advice-a (foo . 100))
(keu:with-advice 'on 'foo 'after 'advice-a
(funcall 'foo 100))
; => (advice-a (foo . 100))
(foo 100)
; => (foo . 100)
0258名無しさん@お腹いっぱい。2014/01/15(水) 00:33:23.13
>>250
なるほど。ある advice の有効/無効状態を取得出来るオフィシャルな方法はあるのかってことですね。
もともと enable ならなにもしない、って感じで。
Info みた感じだとなさそう。

結局 advice の実装見ることになっちゃうけど、ad-get-advice-info あたりを使うしかないのかしらん。
describe-function なんかでも使ってるから準公式みたいなもんでしょうきっと。

それと skk-isearch.el なんかでも advice 済みかどうかの判断に ad-get-advice-info を使ってるみたいです。
0259名無しさん@お腹いっぱい。2014/01/15(水) 01:17:18.21
>>258
こういうことか? マクロ書き慣れてないから eval 沢山あってキモい
(defmacro keu:with-advice (on-or-off func class advice &rest body)
"[internal] Evaluate BODY with ADVICE enabled/disabled.
Note that there is a bug that it cannot restore the state of ADVICE.
Any ideas?"
(let ((adviced (caddr (assq (eval advice)
(assq (eval class)
(ad-get-advice-info (eval func)))))))
(if (or (and (eq (eval on-or-off) 'on) adviced)
(and (eq (eval on-or-off) 'off) (not adviced)))
`(progn
,@body)
`(progn
,(pcase on-or-off
(`'on `(ad-enable-advice ,func ,class ,advice))
(`'off `(ad-disable-advice ,func ,class ,advice))
(_ (error "the first argument must be the symol 'on or 'off")))
(ad-activate ,func)
(let ((keu:with-advice:return-value ,@body))
,(pcase on-or-off
(`'on `(ad-disable-advice ,func ,class ,advice))
(`'off `(ad-enable-advice ,func ,class ,advice))
(_ (error "the first argument must be the symol 'on or 'off")))
(ad-activate ,func)
keu:with-advice:return-value)))))
0260名無しさん@お腹いっぱい。2014/01/15(水) 01:25:37.09
>>259
状態チェック入るなら展開時に評価はまずいんじゃないでしょうか。
pcase のところまで含めて実行時評価になるようにしないといけないかと。
02612502014/01/15(水) 02:59:03.92
>>258
はい! そういうことです. ありがとうございます.

>>259
一から書き直してみました.
funcallの後ろを ',(if ...) としないといけないのはわからなくはないけど納得いかない.


(defsubst keu:advice-enabled-p (func class name)
(ad-advice-enabled (ad-find-advice func class name)))

(defmacro keu:with-advice (on-or-off func class name &rest body)
"[internal] Evaluate BODY with NAME enabled/disabled."
(let ((onoff
(pcase on-or-off
(`'on t)
(`'off nil)
(_ (error "the first argument must be the symol 'on or 'off")))))
`(let ((enabled (not (not (keu:advice-enabled-p ,func ,class ,name)))))
(if (eq ,onoff enabled)
(progn ,@body)
(prog2 ; return value is that of BODY
(progn
(funcall ',(if onoff 'ad-enable-advice 'ad-disable-advice) ,func ,class ,name)
(ad-activate ,func))
(progn ,@body)
(progn
(funcall ',(if (not onoff) 'ad-enable-advice 'ad-disable-advice) ,func ,class ,name)
(ad-activate ,func)))))))
0262名無しさん@お腹いっぱい。2014/01/15(水) 04:05:06.60
>>261
> funcallの後ろを ',(if ...) としないといけないのはわからなくはないけど納得いかない.
funcall 使わなければいいのでは?
0263名無しさん@お腹いっぱい。2014/01/15(水) 09:31:47.01
ああ、マクロ展開だから素でシンボルが頭にくるようにすりゃいいんかな
re-builder みたいに書いてるはしから macroexpand-all した結果を表示し続けるやつが欲しいわ・・・
0264名無しさん@お腹いっぱい。2014/01/15(水) 09:39:36.07
defsubst ありなら
onoff その他を引数にとって enable と disable と activate までやってくれる toggle みたいなの書いちゃえば
progn 減ってすごく見やすくなりそうだな
0265名無しさん@お腹いっぱい。2014/01/15(水) 10:07:46.31
しかし advice は何度説明読んでも preactivate と compile の意味がわからんわ
0266名無しさん@お腹いっぱい。2014/01/15(水) 20:04:03.59
アドバイスが欲しいってか?
0267名無しさん@お腹いっぱい。2014/01/16(木) 17:20:20.61
emacs と vim の advent calendar 見比べてると
(少なくともあそこら辺界隈での) emacs の息切れ感が伝わってきて切なくなるな
0268名無しさん@お腹いっぱい。2014/01/16(木) 18:01:53.84
もう成熟してるからあとは腐るだけ
0269名無しさん@お腹いっぱい。2014/01/16(木) 18:29:43.31
化石化してるから腐らないんじゃない
0270名無しさん@お腹いっぱい。2014/01/16(木) 18:40:25.83
Mac book 使ってカフェで JavaScript 書いてる層には確実に受け悪そうだよな Emacs は。
0271名無しさん@お腹いっぱい。2014/01/16(木) 18:49:00.73
アイコンの可愛いAquamacsちゃんもおるんやで
0272名無しさん@お腹いっぱい。2014/01/16(木) 19:30:37.12
(interactive)と(interactive "p")の違いはどういうものですか?
0273名無しさん@お腹いっぱい。2014/01/16(木) 19:36:16.72
Mac Book とカフェで JavaScript はダサくて
型落ち ThinkPad とメイドカフェで C が最高にクールというのが
Emacser の価値観だからねえ。
0274名無しさん@お腹いっぱい。2014/01/16(木) 19:45:46.24
emacsってjs2-modeあるしmacとも相性良い気がするんだけど理屈じゃないのかな
0275名無しさん@お腹いっぱい。2014/01/16(木) 19:50:46.22
>>272
"p"だと、コマンドを実行するときに指定した前置引数の値が関数の引数になる。
0276名無しさん@お腹いっぱい。2014/01/16(木) 19:57:05.49
>>274
Web 界隈だと vim 使ってる人がクールってイメージなんじゃないだろうか。
自分の狭い観測範囲だとそんな感じを受ける。
0277名無しさん@お腹いっぱい。2014/01/16(木) 20:01:36.29
俺の .vimrc には set compatible って書いてある。
0278名無しさん@お腹いっぱい。2014/01/16(木) 20:06:17.51
>>275
なるほどそういうことですか
勉強になりました
0279名無しさん@お腹いっぱい。2014/01/16(木) 20:10:13.80
打ち合わせの時、メモを Mac Book + iTerm2 + Emacs(黒地フルスクリーン)
で書いてたら、隣の女の子にじーーーーっと見られて非常にやりづらかった
0280名無しさん@お腹いっぱい。2014/01/16(木) 20:12:50.32
なんでなんだろ
・Emacs が珍しかった
・黒背景ワロス
・イケメンだった
・ブサメンすぎた
・Mac Book(笑)
・別にお前を見ていたわけではない
0281名無しさん@お腹いっぱい。2014/01/16(木) 20:14:28.57
・実はゆたぽんフォントを使っていた
0282名無しさん@お腹いっぱい。2014/01/16(木) 20:34:23.61
>>280
・実はスパイだった
0283名無しさん@お腹いっぱい。2014/01/16(木) 20:39:55.26
・なにこれMIFES?
0284名無しさん@お腹いっぱい。2014/01/16(木) 21:06:50.38
・隣の女の子なんていなかった
0285名無しさん@お腹いっぱい。2014/01/16(木) 21:13:22.52
・女の子じゃなくて髪の長いrmsだった
0286名無しさん@お腹いっぱい。2014/01/16(木) 21:28:46.61
>>285
じわじわくるな。
0287名無しさん@お腹いっぱい。2014/01/16(木) 21:47:50.19
Emacs絡みの女子ネタとは珍しいなw
0288名無しさん@お腹いっぱい。2014/01/16(木) 21:48:25.45
>>285
優勝
0289名無しさん@お腹いっぱい。2014/01/16(木) 21:54:24.10
Emacs 使ってる女の子とか女子力強すぎんだろ
0290名無しさん@お腹いっぱい。2014/01/16(木) 22:07:56.76
なんで女子力って「高い」って言うんだ
0291名無しさん@お腹いっぱい。2014/01/16(木) 22:08:12.20
前スレには高2の女の子来てたぞ
0292名無しさん@お腹いっぱい。2014/01/16(木) 22:09:22.68
こんだけPCが普及してたら女子小学生Emacs使いがいても驚かない
0293名無しさん@お腹いっぱい。2014/01/16(木) 22:12:59.80
どういうルートを辿ったら女子小学生が Emacs にリーチするんだろう
ぶっちゃけ PC なんかよりスマホで動くかどうかだな
0294名無しさん@お腹いっぱい。2014/01/16(木) 22:14:42.02
>>290
「強い」って表現した時点で、たおやかな女子の魅力が損なわれるだろ?
その自己矛盾に陥ってしまうことを防ぐのが目的の一つ。
あと、「力が高い」という、ユルいけど嫌味にならない程度の
頭の悪さを匂わすフレーズを敢えて使うことで、
さらに女子としての魅力を演出している。

それはさておき、emacs 使ってたらとりあえずモテるよね。
0295名無しさん@お腹いっぱい。2014/01/16(木) 22:15:53.28
別のスレで女子中学生のpython使いを見た。
0296名無しさん@お腹いっぱい。2014/01/16(木) 22:21:25.46
>>290
能力が高いって言うだろ
つうかそれ位すぐ分かれよ
0297名無しさん@お腹いっぱい。2014/01/16(木) 22:25:56.33
戦闘力も「強い」より「高い」な気がするな
0298名無しさん@お腹いっぱい。2014/01/16(木) 22:30:50.60
腕力が高い
0299名無しさん@お腹いっぱい。2014/01/16(木) 22:34:02.79
そんなことよりお前ら最近 elisp かいてんの?
0300名無しさん@お腹いっぱい。2014/01/16(木) 22:49:43.97
毎日書いてはいるけど十数行で簡潔するような小物ばっかり
0301名無しさん@お腹いっぱい。2014/01/16(木) 22:58:54.08
やべーskewer-modeすげー!
https://github.com/skeeto/skewer-mode
知らん人は↑ここからリンクしているムービーを見るべし
俺的に久々にヒットだわ
0302名無しさん@お腹いっぱい。2014/01/16(木) 23:04:55.94
ちなみにM-x list-packagesでac-js2を入れると
js2-modeとskewer-modeがいっぺんに入る
auto-completeは自動で入らないけど入れた方がいいね
■ このスレッドは過去ログ倉庫に格納されています