私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレEmacs Part 41
emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>347
最近は結構複窓も使ってる。
windows.el や elscreen もどきの簡単なウィンドウ構成保存スクリプトとか
popwin とかも使ってるけどたまに盛大にウィンドウ構成ぶっこわれることあるし
最近は結構複窓も使ってる。
windows.el や elscreen もどきの簡単なウィンドウ構成保存スクリプトとか
popwin とかも使ってるけどたまに盛大にウィンドウ構成ぶっこわれることあるし
tmuxでrootと一般ユーザで2枚開きっぱなし。OSかEmacsのバージョンアップするまで。
emacs 立ちあげっぱなしの人って何かのパッケージ削除するような場合は
一々 makunbound とか fmakunbound とかしてまわるの?
一々 makunbound とか fmakunbound とかしてまわるの?
>>351
なるほど。うちはウィンドウを生成させずに全部フレームで管理してる
もし窓が不意に出てきてもWMの操作で消せる
(setq pop-up-frames t)
(setq pop-up-windows nil)
なるほど。うちはウィンドウを生成させずに全部フレームで管理してる
もし窓が不意に出てきてもWMの操作で消せる
(setq pop-up-frames t)
(setq pop-up-windows nil)
WinでNTEmacsを使おうと思ってるんだけど、IMEパッチって当てた方がいいの?
Google日本語入力使ってるんだけど
おいちょっと教えて
color-moccur使いたいんだけど*Moccur*バッファで
候補移動しても元バッファの表示が切り替わらないんだわ
本来は該当行にジャンプするよね?
color-moccur使いたいんだけど*Moccur*バッファで
候補移動しても元バッファの表示が切り替わらないんだわ
本来は該当行にジャンプするよね?
IMEのON/OFFでemacsのカーソル色変えてるんだが、
gnupackとGoogle IMEだと取り合いになってうまくいかないんだよなぁ。
前gnupackスレでも尋ねたんだがうまくいかなかった。
gnupackとGoogle IMEだと取り合いになってうまくいかないんだよなぁ。
前gnupackスレでも尋ねたんだがうまくいかなかった。
■■■■■■■■
■■■■■■■■■■■■
■■■■■■■■■■■■■■
■■■■■■ ~~ ■■■■■■
■■■■■■~~~~~~■■■■■■
■■■■■ ~~~~~~~~ ■■■■■
■■■■■ ■■~~■■ ■■■■■
■■■■■ ■■■■~~■■■■ ■■■■■
■■■■ || ■■■■ 呼んだ?
■■■■■ 〓〓〓〓||〓〓〓〓 ■■■■■
■■■■ 〓〓 || 〓〓 ■■■■
■■■■ // \\ ■■■■
■■■■ //( ●● )\\ ■■■■
■■■■ // ■■■■■■ \\ ■■■■
■■■■■ / ■■■■■■■■ \ ■■■■■
■■■■■ ■/〓〓〓〓〓〓\■ ■■■■■
■■■■■■ ■ /▼▼▼▼▼▼\ ■ ■■■■■■
■■■■■■■■■ ▼▼▼▼▼▼ ■■■■■■■■■
■■■■■■■■■ ■■ ■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■
■■■■■■■■■■■■■■
■■■■■■ ~~ ■■■■■■
■■■■■■~~~~~~■■■■■■
■■■■■ ~~~~~~~~ ■■■■■
■■■■■ ■■~~■■ ■■■■■
■■■■■ ■■■■~~■■■■ ■■■■■
■■■■ || ■■■■ 呼んだ?
■■■■■ 〓〓〓〓||〓〓〓〓 ■■■■■
■■■■ 〓〓 || 〓〓 ■■■■
■■■■ // \\ ■■■■
■■■■ //( ●● )\\ ■■■■
■■■■ // ■■■■■■ \\ ■■■■
■■■■■ / ■■■■■■■■ \ ■■■■■
■■■■■ ■/〓〓〓〓〓〓\■ ■■■■■
■■■■■■ ■ /▼▼▼▼▼▼\ ■ ■■■■■■
■■■■■■■■■ ▼▼▼▼▼▼ ■■■■■■■■■
■■■■■■■■■ ■■ ■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
バッファ内に唯一でてくる
*test foo
のような*一つとそれに続く行末までの文字列を(elispで処理できるよう)取得し、
そのあとでその行を削除したいのですが、どうすればよいでしょうか
ただし、
**hoge
**bar
のようにバッファ内には*が二つ以上続くものは何度も出てくるのですが
それらには何も影響を与えたくないです
*test foo
のような*一つとそれに続く行末までの文字列を(elispで処理できるよう)取得し、
そのあとでその行を削除したいのですが、どうすればよいでしょうか
ただし、
**hoge
**bar
のようにバッファ内には*が二つ以上続くものは何度も出てくるのですが
それらには何も影響を与えたくないです
* 一つが必ず行頭に出て、必ず他の文字が続くなら、簡単な正規表現一発でいけるね。
(save-excursion
(goto-char (point-min))
(save-match-data
(search-forward-regexp "^[*][^*]")
(let ((text (buffer-substring (line-beginning-position) (line-end-position))))
(forward-line 1)
(delete-region (match-beginning 0) (point))
text を使う処理
)))
行頭以外とかも考えるなら、 * の列を探して、長さ 1 だった場合にだけ処理する、ってのが簡単かな。
(save-excursion
(goto-char (point-min))
(save-match-data
(search-forward-regexp "^[*][^*]")
(let ((text (buffer-substring (line-beginning-position) (line-end-position))))
(forward-line 1)
(delete-region (match-beginning 0) (point))
text を使う処理
)))
行頭以外とかも考えるなら、 * の列を探して、長さ 1 だった場合にだけ処理する、ってのが簡単かな。
ありがとうございます。理解できました。
気になったのですが、save-match-dataとsearch-forward-regexpを組み合わせて処理するのと
replace-regexpだけで処理することにはどういう違いがあるのでしょうか
気になったのですが、save-match-dataとsearch-forward-regexpを組み合わせて処理するのと
replace-regexpだけで処理することにはどういう違いがあるのでしょうか
すみません前段はre-search-forward と replace-match の間違いでした
単に(re-search-forward "[^*]\\(\\*[^*\n][^*\n]*\\)" nil t)じゃダメなのか?
NTEmacsスレ過疎ってるのでこっちで聞かせてください
大学の勉強用にNTEmacs入れて、その後でCygwin入れたんですが、Error (initialization): User nas no home directoryが表示されるようになりました
Cygwin入れる時に環境変数HOMEを追加したのが関係してるんでしょうか?
問題なく動きますが気に掛かります
大学の勉強用にNTEmacs入れて、その後でCygwin入れたんですが、Error (initialization): User nas no home directoryが表示されるようになりました
Cygwin入れる時に環境変数HOMEを追加したのが関係してるんでしょうか?
問題なく動きますが気に掛かります
gnupackのNTEmacsならhome directoryが自動的に設定される(相対パスで)
windows環境ならそちらを使えばよいのでは?
windows環境ならそちらを使えばよいのでは?
レスサンクスです。
インストール手順に関して情報が溢れていたので、まずgnupackでないやつでやっていました。
今度また時間が出来たら試してみます。
インストール手順に関して情報が溢れていたので、まずgnupackでないやつでやっていました。
今度また時間が出来たら試してみます。
(ceiling (/ 11 2))
この結果が5になります。
common lispでは6になりました
これはemacsにバグがあるということですか
この結果が5になります。
common lispでは6になりました
これはemacsにバグがあるということですか
whitespace.elのlines-tailを使いたいのだけれど、モード毎に文字数は変えたい。
けれども以下のようにしても上手くいかないんですが、何故でしょうか?
(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
(lambda ()
(setq whitespace-line-column column)))))
(let ((lis '((emacs-lisp-mode 100) (lisp-mode 150)))) ; デフォルトではfill-columnのままがいい
(mapcar (lambda (x) (apply set-whitespace-line-column x))
lis))
; (c-mode nil) とかするとc-modeでは無効とかなったりすると嬉しいけどやり方がわからない。。。
けれども以下のようにしても上手くいかないんですが、何故でしょうか?
(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
(lambda ()
(setq whitespace-line-column column)))))
(let ((lis '((emacs-lisp-mode 100) (lisp-mode 150)))) ; デフォルトではfill-columnのままがいい
(mapcar (lambda (x) (apply set-whitespace-line-column x))
lis))
; (c-mode nil) とかするとc-modeでは無効とかなったりすると嬉しいけどやり方がわからない。。。
>>384 ちょっとだけ
(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
`(lambda ()
(setq whitespace-line-column ,column)))))
あるいは Emacs 24 系で lexical-binding を使うか。
(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
`(lambda ()
(setq whitespace-line-column ,column)))))
あるいは Emacs 24 系で lexical-binding を使うか。
>>384
> ; (c-mode nil) とかするとc-modeでは無効とかなったりすると嬉しいけどやり方がわからない。。。
(kill-local-variable 'whitespace-line-column)
> ; (c-mode nil) とかするとc-modeでは無効とかなったりすると嬉しいけどやり方がわからない。。。
(kill-local-variable 'whitespace-line-column)
>>385
lambdaがclosureを生成しないなんて・・・
(lambda ()
(lexical-let ((column column))
(if column
(setq whitespace-line-column column)
(kill-local-variable 'whitespace-line-column)))))))
だと駄目なんですね。(当たり前だけど。)http://emacswiki.org/emacs/DynamicBindingVsLexicalBinding を見てみましたが、
lambdaにclosureを生成させるには lexical-binding を使うしかないんですかね。(cl使っても無理?)
lambdaがclosureを生成しないなんて・・・
(lambda ()
(lexical-let ((column column))
(if column
(setq whitespace-line-column column)
(kill-local-variable 'whitespace-line-column)))))))
だと駄目なんですね。(当たり前だけど。)http://emacswiki.org/emacs/DynamicBindingVsLexicalBinding を見てみましたが、
lambdaにclosureを生成させるには lexical-binding を使うしかないんですかね。(cl使っても無理?)
>>386
kill-local-variable だとdefalut値(fillcolumn使うとか書いてるくせにwhitespace.elには80でhard codeしてる・・・)
を使うのでうまくいきません。結局次の様にしました。
(make-variable-buffer-local 'whitespace-style)
(setq-default whitespace-style
'(face
tabs spaces newline trailing space-before-tab space-after-tab
space-mark tab-mark newline-mark
lines-tail))
(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
`(lambda ()
(if ,column
(setq whitespace-line-column ,column)
(setq whitespace-style
(srfi-1:remove (lambda (x) (eq 'lines-tail x))
whitespace-style)))))))
(let ((lis '((emacs-lisp-mode nil))))
(mapc (lambda (x) (apply #'set-whitespace-line-column x))
lis))
;; srfi-1:remove
(defun srfi-1:remove (pred xs)
(loop for x in xs
unless (funcall pred x)
collect x))
kill-local-variable だとdefalut値(fillcolumn使うとか書いてるくせにwhitespace.elには80でhard codeしてる・・・)
を使うのでうまくいきません。結局次の様にしました。
(make-variable-buffer-local 'whitespace-style)
(setq-default whitespace-style
'(face
tabs spaces newline trailing space-before-tab space-after-tab
space-mark tab-mark newline-mark
lines-tail))
(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
`(lambda ()
(if ,column
(setq whitespace-line-column ,column)
(setq whitespace-style
(srfi-1:remove (lambda (x) (eq 'lines-tail x))
whitespace-style)))))))
(let ((lis '((emacs-lisp-mode nil))))
(mapc (lambda (x) (apply #'set-whitespace-line-column x))
lis))
;; srfi-1:remove
(defun srfi-1:remove (pred xs)
(loop for x in xs
unless (funcall pred x)
collect x))
>>385 >>386
ありがとうございました。
ところで、変数に関しては lexical-let を使えばいいとして、関数内関数はどうすればいいんでしょう。
(defun f (&rest args)
(defun aux (lis)
...)
(aux args))
(defun g (x y)
(defun aux (x y)
(... (mapcar #'f '(...))))
(aux x y))
とかやって意味不明なエラーを前に数時間を無駄にしたよ…
f-aux, g-auxとかするというのはナシで。
http://lists.gnu.org/archive/html/help-gnu-emacs/2010-12/msg00269.html
(let ((fac (lambda (x) (if (zerop x) 1 (* x (funcall fac (1- x)))))))
(funcall fac 10))
これはちょっときもちわるい。あんまりdynamic bindingに依存したくない。
ありがとうございました。
ところで、変数に関しては lexical-let を使えばいいとして、関数内関数はどうすればいいんでしょう。
(defun f (&rest args)
(defun aux (lis)
...)
(aux args))
(defun g (x y)
(defun aux (x y)
(... (mapcar #'f '(...))))
(aux x y))
とかやって意味不明なエラーを前に数時間を無駄にしたよ…
f-aux, g-auxとかするというのはナシで。
http://lists.gnu.org/archive/html/help-gnu-emacs/2010-12/msg00269.html
(let ((fac (lambda (x) (if (zerop x) 1 (* x (funcall fac (1- x)))))))
(funcall fac 10))
これはちょっときもちわるい。あんまりdynamic bindingに依存したくない。
あー、こうやればいいのか。
(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
(lexical-let ((column column))
(lambda ()
(if column
(setq whitespace-line-column column)
(setq whitespace-style
(srfi-1:remove (lambda (x) (eq 'lines-tail x))
whitespace-style))))))))
(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
(lexical-let ((column column))
(lambda ()
(if column
(setq whitespace-line-column column)
(setq whitespace-style
(srfi-1:remove (lambda (x) (eq 'lines-tail x))
whitespace-style))))))))
関数内関数なら flet とか labels とかつこうたらいいんじゃないかな。
cl だけど。
cl だけど。
みんなはauto-completeとかyasnippetとか使ってる?
できるだけデフォルトで使いたい気持ちもあるんだけど便利にしたい気もする
できるだけデフォルトで使いたい気持ちもあるんだけど便利にしたい気もする
>>391
そもそもCL系では関数内関数をschemeみたく自然に書けないんですね。
(defun my-map (proc &rest lis)
(flet ((aux (proc lis)
(mapcar proc (car lis))))
(aux proc lis)))
(defun mul2 (lis)
(flet ((aux (x)
(* 2 x)))
(my-map (lambda (x) (aux x))
lis)))
(mul2 '(1 2 3))
; => error! wrong-number-of-arguments (lambda (proc lis) (block aux (mapcar proc (car lis)))) 1)
emacs lispだとfletやlabels使ってもだめ。CLだとどっちでもちゃんと動くのに。
そもそもCL系では関数内関数をschemeみたく自然に書けないんですね。
(defun my-map (proc &rest lis)
(flet ((aux (proc lis)
(mapcar proc (car lis))))
(aux proc lis)))
(defun mul2 (lis)
(flet ((aux (x)
(* 2 x)))
(my-map (lambda (x) (aux x))
lis)))
(mul2 '(1 2 3))
; => error! wrong-number-of-arguments (lambda (proc lis) (block aux (mapcar proc (car lis)))) 1)
emacs lispだとfletやlabels使ってもだめ。CLだとどっちでもちゃんと動くのに。
メモ。
http://d.hatena.ne.jp/Nobuhisa/20090123/1232720807
(require 'cl)
(defun foo (x)
(print "YesWeCan")
(if (> x 0)
(labels ((foo (x)
(print "!")
(if (> x 0) (foo (1- x))) ))
(foo x) )))
(defun bar (x)
(print "YesWeCan")
(if (> x 0)
(flet ((bar (x)
(print "!")
(if (> x 0) (bar (1- x))) ))
(bar x) )))
(foo 5) ; => "YesWeCan" "!" "!" "!" "!" "!" "!"
(bar 5) ; => "YesWeCan" "!" "!" "!" "!" "!" "!"
http://d.hatena.ne.jp/Nobuhisa/20090123/1232720807
(require 'cl)
(defun foo (x)
(print "YesWeCan")
(if (> x 0)
(labels ((foo (x)
(print "!")
(if (> x 0) (foo (1- x))) ))
(foo x) )))
(defun bar (x)
(print "YesWeCan")
(if (> x 0)
(flet ((bar (x)
(print "!")
(if (> x 0) (bar (1- x))) ))
(bar x) )))
(foo 5) ; => "YesWeCan" "!" "!" "!" "!" "!" "!"
(bar 5) ; => "YesWeCan" "!" "!" "!" "!" "!" "!"
メモ。
http://d.hatena.ne.jp/kitokitoki/20090816/p9
(require 'cl)
(defun a ()
(labels
((a ()
'b))
'a))
(a)
; => (lambda nil (quote b))
(funcall (a))
; => b
(defun c ()
(flet
((c ()
'd))
'c))
(c)
; => c
(funcall (c))
; => c
http://d.hatena.ne.jp/kitokitoki/20090816/p9
(require 'cl)
(defun a ()
(labels
((a ()
'b))
'a))
(a)
; => (lambda nil (quote b))
(funcall (a))
; => b
(defun c ()
(flet
((c ()
'd))
'c))
(c)
; => c
(funcall (c))
; => c
>>394
ELisp は dynamic binding だからね。
(defun mul2 (lis)
(lexical-let ((aux (lambda (x) (* 2 x))))
(my-map (lambda (x) (funcall aux x))
lis)))
みたいな、かっこわるい解なら思いつくけど。
ELisp は dynamic binding だからね。
(defun mul2 (lis)
(lexical-let ((aux (lambda (x) (* 2 x))))
(my-map (lambda (x) (funcall aux x))
lis)))
みたいな、かっこわるい解なら思いつくけど。
質問です。
次のバージョンでどんな機能をいれるとか、
その手のEmacs最新動向ってどこみればわかるんでしょうか?
http://www.gnu.org/software/emacs/
とかだと8月の更新以降アナウスないですし。
次のバージョンでどんな機能をいれるとか、
その手のEmacs最新動向ってどこみればわかるんでしょうか?
http://www.gnu.org/software/emacs/
とかだと8月の更新以降アナウスないですし。
>>398
emacs-devel mailing listのアーカイブを見る + subscribeする
Savannah Emacs page
http://savannah.gnu.org/projects/emacs/
を見て最新リポジトリをゲットする
emacs-devel mailing listのアーカイブを見る + subscribeする
Savannah Emacs page
http://savannah.gnu.org/projects/emacs/
を見て最新リポジトリをゲットする
前へ 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 42 (1001) - [92%] - 2013/6/9 5:15 △
- Emacs Part 43 (1001) - [92%] - 2013/12/14 11:30
- Emacs Part 44 (1001) - [92%] - 2014/2/8 8:01 △
- Emacs Part 46 (984) - [92%] - 2014/12/24 14:15
- Emacs Part 45 (1001) - [92%] - 2014/6/23 9:45
- Emacs Part 48 (997) - [92%] - 2015/12/9 15:15
- Emacs Part 49 (974) - [92%] - 2016/12/7 9:45
- Emacs Part 51 (1005) - [92%] - 2020/3/26 18:30
- Emacs Part 31 (1001) - [92%] - 2009/10/23 10:31 ○
- 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 ○
トップメニューへ / →のくす牧場書庫について