のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,594,005人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレEmacs Part 39

emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
151 : 名無しさん@お腹 - 2011/12/22(木) 14:36:22.41 (+2,-30,-27)
>>148
(setq recenter-positions '(middle))

質問前に \C-h k などを使って Help を見るようにすべき。
152 : 名無しさん@お腹 - 2011/12/22(木) 15:17:02.00 (-1,-30,-59)
>>151
custom-set-variables に
    '(recenter-positions (quote (middle)))
の設定を加えました。

ありがとう、勉強になった。
153 : 名無しさん@お腹 - 2011/12/22(木) 16:50:40.22 (-1,-29,-26)
>>147
shell-commandの方がなぜかただしく動きませんがcdなら大丈夫でした
ありがとうございます
154 : 名無しさん@お腹 - 2011/12/22(木) 18:03:12.62 (+56,+24,-47)
elispを編集しているときに
()の)を入力したときには前括弧が太字になるのですが、
入力したときだけじゃなくてカーソルを合わせたときにも
太字にする方法はあるでしょうか?
155 : 名無しさん@お腹 - 2011/12/22(木) 18:18:50.61 (+27,-29,-13)
>>154
show-paren-mode
156 : 名無しさん@お腹 - 2011/12/22(木) 19:34:35.43 (+36,+10,+2)
>>155
ありがとうございます!
157 : 名無しさん@お腹 - 2011/12/22(木) 22:48:57.09 (-1,-29,-42)
evil-modeとかvimpulse使ってる人いる?
個人的にはモーダルなemacsって最高だと思うんだけど邪道なのかな?
158 : 名無しさん@お腹 - 2011/12/22(木) 22:57:27.11 (+46,-30,-99)
そりゃ素直にvim使えとは思う。
色んなelispをvi系のモードに合わせるのってしんどくない?

モーダルな入力でおもったけど
(setq view-read-only t) にして view-mode をガンガン操作しやすくカスタマイズすれば
C-x C-q (もしくはもっと気楽なキーバインド)をトリガにした素直なモーダル Emacs と言えるんじゃないかな。
159 : 名無しさん@お腹 - 2011/12/23(金) 02:34:38.74 (+3,-29,-83)
xyzzyからemacsに移行しようと思うのですが
キルリングとクリップボードが同期してしまうのをできれば解除したいです

キルリングはemacs内だけで簡潔するようにし(他のアプリのクリップボードと連携せず)、
クリップボードは従来通り他のアプリと連携できるようにする
こういった設定は可能でしょうか?
160 : 名無しさん@お腹 - 2011/12/23(金) 03:03:32.40 (+43,-30,-24)
(setq interprogram-cut-function nil)
(setq interprogram-paste-function nil)

でどう?(試してない)
161 : 名無しさん@お腹 - 2011/12/23(金) 09:42:18.30 (+68,+30,-50)
>>158
おぉ!斬新な考え方だな。
俺はちょっと編集して一息付く時に必ずセーブ→カーソル移動して確認
のような事をしているから、同時にセーブもすればいいんだな。
キーバインドはやっぱりESCだろうね。
162 : 名無しさん@お腹 - 2011/12/23(金) 15:06:12.55 (+16,-30,-159)
shell-commandを非同期実行で順番に使いたいとき、
たとえば
1.hoge.exeを起動して処理する
2.1.の処理後にtest.exeを起動して処理
3.2.の処理後にfoo.exeを起動して処理
4.処理終了
こういうことはemacsで設定できるでしょうか
非同期実行が shell-command と & の組み合わせでできるということまではわかったのですが
その先がよくわかりません
163 : 名無しさん@お腹 - 2011/12/23(金) 15:21:00.40 (+8,-30,-48)
>>162
shell が何かによるけど
(hoge.exe ; test.exe ; fo0.exe) &

それぞれが成功した時だけ(戻り値0の場合だけ)次を実行したい場合は
(hoge.exe && test.exe && foo.exe) &
164 : 名無しさん@お腹 - 2011/12/23(金) 15:21:50.70 (+3,-30,-107)
shell-command だけでやるんならそれぞれのコマンドを && で連結して実行する。

hoge.exe の処理結果を emacs で一旦受けとってから test.exe に渡したいん
なら、低レベル API の start-process を使って hoge.exe を呼び出して
process-sentinel で test.exe 以降を順次実行する。
165 : 名無しさん@お腹 - 2011/12/23(金) 15:27:30.08 (+0,-29,-4)
>>163-164
ありがとうございます。
&&ですかなるほど。もしかするとstart-processを使って調整するかもしれませんでしたので
とても参考になりました。
166 : 名無しさん@お腹 - 2011/12/23(金) 16:09:11.99 (+5,-30,-105)
>162
それは同期実行ではだめなの?
(shell-command "hoge.exe")
(shell-command "test.exe")
(shell-command "foo.exe")
167 : 名無しさん@お腹 - 2011/12/23(金) 16:47:23.22 (+57,+29,-2)
時間かかる処理なら止まっちゃうじゃん。
168 : 名無しさん@お腹 - 2011/12/23(金) 16:57:23.03 (+0,+0,+0)
gnupackのemacsを使っています
eshellをexitで抜けようとしたらエラーが出るようになってしまいました
init.elのいろいろな場所を編集する最中だったため、原因を突き止められていません
*Warning* buffarにはこうあります
These default coding systems were tried to encode text
in the buffer ` *temp*':
(utf-8 ...)
However, each of them encountered characters it couldn't encode:
utf-8 cannot encode these: ...
japanese-shift-jis cannot encode these: ...
init.elでこう設定しています
(set-keyboard-coding-system 'cp932)
(prefer-coding-system 'utf-8-dos)
(set-file-name-coding-system 'cp932)
(setq default-process-coding-system '(cp932 . cp932))
(add-hook 'set-language-environment-hook
(lambda ()
(when (equal "ja_JP.UTF-8" (getenv "LANG"))
(setq default-process-coding-system '(utf-8 . utf-8))
(setq default-file-name-coding-system 'utf-8))
(when (equal "Japanese" current-language-environment)
(setq default-buffer-file-coding-system 'utf-8))))
(set-language-environment "Japanese")
どうも過去に日本語を含むパスのelispの履歴が残っているようで
それを削除すれば解決すると考えているのですが、
そうなるとどのファイルを編集することになるのでしょうか
169 : 名無しさん@お腹 - 2011/12/23(金) 17:17:54.97 (+4,-30,-35)
全然わからんけど session-save-file かなぁ。
おれが思うに eshell なんて使わない方がいいよ。変なのが伝染る。
170 : 名無しさん@お腹 - 2011/12/23(金) 17:24:53.82 (+4,-30,-50)
~/.eshell/history じゃないの?
つーかるびきちの悪影響だよな
eshellなんか使うのは
171 : 名無しさん@お腹 - 2011/12/23(金) 17:36:24.38 (-1,-29,-38)
win+cygwin なもんで ansi-term がまともに動かんから
shell-mode で我慢してる。っていうかあれで充分。シグナル変なのは advice つけて直した
172 : 名無しさん@お腹 - 2011/12/23(金) 18:31:37.90 (+39,+11,-40)
文字符号入り乱れた複数のファイルを標準出力つこて扱う時に
文字化け対策用変換パイププログラムとかねーのかな
173 : 名無しさん@お腹 - 2011/12/23(金) 18:34:00.68 (-1,-29,-14)
iconvとかnkfとかそいうんではなく?
174 : 名無しさん@お腹 - 2011/12/23(金) 19:11:46.96 (+3,-30,-78)
>>169-170
ありがとうございます
そのあたりをあさっていたら ~/.eshell/lastdir のファイルがおかしいことに気づきました
その箇所を削除したら無事終了するようになりました

ところで、>>170の通りるびきちの本をもとにeshellを使いはじめてみたのですが
emacsを使う人は通常他の外部シェルを使うのでしょうか
175 : 名無しさん@お腹 - 2011/12/23(金) 19:18:37.63 (+52,+29,-1)
このスレはるびきちにツンデレだから
176 : 名無しさん@お腹 - 2011/12/23(金) 19:23:02.71 (+91,+29,-36)
一般的かどうかは分からないけど、なんで今さら eshell なんだよって感じは
する。るびきちに関しては感性が相当に偏っているので、彼のいうことにあん
まり没頭しすぎるのは考えものだとは思う。

177 : 名無しさん@お腹 - 2011/12/23(金) 19:27:14.55 (+70,+29,+0)
>>176 そういわれればそうですね
178 : 名無しさん@お腹 - 2011/12/23(金) 19:30:55.80 (-2,-30,-42)
俺はるびキチが使う前からeshellをバリバリ使ってたけど、
msysだのcygwin入れなくても、ls,cp,mv,rm,chmod,とか使えるのは相当便利だよ。
179 : 名無しさん@お腹 - 2011/12/23(金) 19:38:39.16 (-2,-30,-53)
POSIXコマンドがネイティブに使える環境ではあえて eshell 使う理由もないと思う。
シェルをカスタマイズしまくっているなら ansi-term 一択
180 : 名無しさん@お腹 - 2011/12/23(金) 20:06:41.14 (+54,+26,-3)
でも重いんだよねえ。
結構 CPU 負荷がかかる。
181 : 名無しさん@お腹 - 2011/12/23(金) 20:23:56.55 (+10,-24,-11)
>>158
最近evil-mode使い始めたところなんたけど
確かに設定が面倒くさい。
viewモードメインのアプローチも確かに良さそうだね。そっちも試してみる。

182 : 名無しさん@お腹 - 2011/12/23(金) 20:37:24.12 (-2,-30,-26)
migemoをisearch-modeの時はオンにして、RETしてsearch-foward等の時は
オフにするにはどうすればいいですか。
183 : 名無しさん@お腹 - 2011/12/23(金) 22:28:23.45 (+3,-30,-160)
GNU Emacs Lispリファレンスマニュアル: Emacs Lisp関数のアドバイス
http://www.bookshelf.jp/texi/elisp-manual-20-2.5-jp/elisp_17.html
アドバイス機能を使って
>isearch-modeの時はオンにして、RETしてsearch-foward等の時はオフにする
そのとおりに設定するのがよいかと
具体的にはisearch-modeの実行時にmigemoをonに切り替えるようbeforeで設定
isearch-modeの実行終了時に migemoをoffに

こうするとsearch-forward等には手をつけなくていいかと
184 : 名無しさん@お腹 - 2011/12/24(土) 00:09:46.51 (+63,+29,-1)
>>131
お礼が遅くなってすみません
それでうまくいきました
185 : 名無しさん@お腹 - 2011/12/24(土) 02:03:40.31 (+9,-30,-109)
elispの書き方について質問します

(if test
(list (aa) (bb) (cc) (dd) (ee))
(list (aa) (ff) (ee)))

(aa)や(dd)などはすべて文字列を返す関数で、
このような処理をしようと思うのですが、
list関数と aa, ee関数が重複しており編集しづらいです
重複分を削る手はないでしょうか
186 : 名無しさん@お腹 - 2011/12/24(土) 02:45:42.90 (+94,+29,-34)
編集しづらいってコードの編集のことか?
list の中身のソート順をプログラマが考えて決めるんだったらある程度冗長
になるのは仕方ないと思うんだけど。
どうしたいのかいまいちわからない。
187 : 名無しさん@お腹 - 2011/12/24(土) 03:01:13.07 (+43,-30,-74)
重複分とlistを削ってみた。元の方が全然見やすいな。

`(,(aa)
,@(mapcar
#'(lambda (f) (funcall f))
(if test '(bb cc dd) '(ff)))
,(ee))
188 : 名無しさん@お腹 - 2011/12/24(土) 03:27:46.43 (+4,-30,-64)
>>185
こんな感じ?

(append
 (list (aa))
 (if test
    (list (bb) (cc) (dd))
  (list (ff)))
 (list (ee))


(mapcar 'funcall
        `(aa
          ,@(if test
              '(bb cc dd)
              '(ff))
          ee))
189 : 名無しさん@お腹 - 2011/12/24(土) 08:59:28.95 (+0,-28,-9)
みなさんは、WindowsでEmacsって使われてますか?
191 : 名無しさん@お腹 - 2011/12/24(土) 11:05:00.31 (+107,+29,-40)
>>186
そうです。コード編集です。
もっと縮められないものかとおもっていました

>>187-188
ありがとうございます。
appendとバッククオートでそう組み立てるのは思いつきませんでした
例を示していただいて気づいたのですが、自分はリスト生成の内側でifを使いたかったんだなと
192 : 名無しさん@お腹 - 2011/12/24(土) 12:25:44.35 (+101,-29,-44)
ネタだが、Google Insights for Search を使った Emacs ユーザの特性考察がなかなかおもろい。
http://d.hatena.ne.jp/shim0mura/20111220/1324575061
193 : 名無しさん@お腹 - 2011/12/24(土) 12:36:21.37 (+15,-30,-129)
関数の再定義についてお伺いしたいのですが
(require 'hoge)で読み込んでいるファイル hoge.el に書いてある関数を
init.elに新たに関数を書いて上書きしようとしてもうまくいきません

hoge.elの該当部分の関数定義をコメントアウトすると
init.elで再定義したとおりに動きます
どうすればいいのでしょうか
194 : 名無しさん@お腹 - 2011/12/24(土) 12:36:25.61 (+71,+29,-15)
>>191
書きやすいコードより見やすいコードを目指した方がいい。
195 : 名無しさん@お腹 - 2011/12/24(土) 12:58:09.19 (-1,-29,-27)
>>193
新たな関数を (require 'hoge) より前に書いてるというオチではないよな?
196 : 名無しさん@お腹 - 2011/12/24(土) 13:06:18.14 (+7,-30,-51)
>>193
(eval-after-load 'hoge '(defun ...))
とか、多分邪道だけど
(defadvice fuga (around ... )
ad-do-it なし)

にする。
197 : 名無しさん@お腹 - 2011/12/24(土) 14:02:29.09 (+0,-29,-22)
>>193
再定義していると思っている関数のスペルが間違っている
再定義後に再びload-file, load-libraryしている
198 : 名無しさん@お腹 - 2011/12/24(土) 17:38:11.00 (+7,-21,-27)
>>196
なんとなく書き換わるの怖くてdefadvice派だなぁ。
199 : 名無しさん@お腹 - 2011/12/25(日) 05:44:00.27 (+62,+29,-5)
>>192
おそらく一部には反感を買いそうだけど、
楽しんで書いてるのが伝わってきて確かに面白い。
200 : 名無しさん@お腹 - 2011/12/25(日) 10:45:34.31 (+149,+30,-97)
>>192の派生記事でこんなのがあったんだけど
http://d.hatena.ne.jp/takuya_1st/20111222/1324550041
この中にでてくる、EmEditorの「折り返し行表示も論理的にインデントされる」機能って
なかなか素敵だと思うんだけど Emacs 用でそういうのないかな。

自前のソースだったら長くなりすぎないよう適度に分割するんだけど
拾ってきたソース見てる時とかウィンドウ幅細くして眺めてる時とかこれできたらちょっとうれしい気がする。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について