私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレEmacs Part 43
emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
evil使ってるとforward-sexpが行末で止まってしまうんですが、これはevil-move-cursor-backをnilにする以外では避けようがないんですかね
anything-c-moccor-occur-by-moccorを
あらかじめキーワードを指定した状態で呼び出したいです。
ミニバッファに
patter:キーワード
↑キーワードがすでに打ち込まれた状態でキーバインドから呼び出したいのですが、
わかる方いらっしゃいますか?
あらかじめキーワードを指定した状態で呼び出したいです。
ミニバッファに
patter:キーワード
↑キーワードがすでに打ち込まれた状態でキーバインドから呼び出したいのですが、
わかる方いらっしゃいますか?
>>903
あんまりEmacsに慣れてないからよくわかんないんだけど
・閉じ括弧でC-M-f(forward-sexp)を呼ぶと、モード・位置関係なく Scan error: "Containing expression ends prematurely" と出てカーソルは移動しない
・それ以外の場合はEmacsモードでは普通に動作する
・evilのnormalステートだとカーソルが行の最後の要素の一番後ろの文字の上に乗った状態で引っかかる。閉じ括弧じゃないならエラーメッセージは出ないけどやっぱり動かない
・evil-move-cursor-backをnilにするか、行末にスペースがあるとちゃんと次の要素に飛んでくれる
っていう状態です
誰か助けて
ちなみに
GNU Emacs 24.3.1 (i386-mingw-nt6.0.6002)で
evilのバージョンは1.0.8です
あんまりEmacsに慣れてないからよくわかんないんだけど
・閉じ括弧でC-M-f(forward-sexp)を呼ぶと、モード・位置関係なく Scan error: "Containing expression ends prematurely" と出てカーソルは移動しない
・それ以外の場合はEmacsモードでは普通に動作する
・evilのnormalステートだとカーソルが行の最後の要素の一番後ろの文字の上に乗った状態で引っかかる。閉じ括弧じゃないならエラーメッセージは出ないけどやっぱり動かない
・evil-move-cursor-backをnilにするか、行末にスペースがあるとちゃんと次の要素に飛んでくれる
っていう状態です
誰か助けて
ちなみに
GNU Emacs 24.3.1 (i386-mingw-nt6.0.6002)で
evilのバージョンは1.0.8です
evilのメリットってctrlを使わないでカーソル移動ができることなのかな
そうだとするならばモード移動の切り替えも面倒な気がするけれど
慣れてしまったせいかemacsのctrl+n, ctrl+pの方がモードを気にせず楽だと思うけれどね
そうだとするならばモード移動の切り替えも面倒な気がするけれど
慣れてしまったせいかemacsのctrl+n, ctrl+pの方がモードを気にせず楽だと思うけれどね
>>907 は、 cursor 位置の emacs と、vi 系の違いを理解していない。と思う。
試しに、forward-sexp を、evil の insert state や emacs state で、やってみ。
normal mode のbox cursor と、 emacs での box cursor の位置の解釈の仕方が、
違うんだ。
行末での cursor 位置の違いを emacs state と normal state で
見比べてみると、一個ずれてるのに気づくと思うけど。
ちなみに、エラーメッセージの意味は、閉じカッコの手前で forward に進もうとするから、進めねーよ(意訳)ってことだろう?
対策としては、advice とか使って、ちょっと、手を加えるとかになるんじゃないんかな。
おれは、insert state で使ってすましてる。
試しに、forward-sexp を、evil の insert state や emacs state で、やってみ。
normal mode のbox cursor と、 emacs での box cursor の位置の解釈の仕方が、
違うんだ。
行末での cursor 位置の違いを emacs state と normal state で
見比べてみると、一個ずれてるのに気づくと思うけど。
ちなみに、エラーメッセージの意味は、閉じカッコの手前で forward に進もうとするから、進めねーよ(意訳)ってことだろう?
対策としては、advice とか使って、ちょっと、手を加えるとかになるんじゃないんかな。
おれは、insert state で使ってすましてる。
変更されているバッファを一度にすべて保存するコマンドはありますか?
今はemacs終了時に変更されているバッファを保存するかどうか聞かれるのでyを何度も押しています
今はemacs終了時に変更されているバッファを保存するかどうか聞かれるのでyを何度も押しています
>>911
save-some-buffers に universal-argument を付けて実行。
C-u C-x s かな。
buffer-save-without-query を t にしておけば C-x s で問答無用で保存してくれるようになる。
そのかわり終了時にも聞かれなくなるかもしれない。
save-some-buffers に universal-argument を付けて実行。
C-u C-x s かな。
buffer-save-without-query を t にしておけば C-x s で問答無用で保存してくれるようになる。
そのかわり終了時にも聞かれなくなるかもしれない。
>>912
ありがとうございます
ありがとうございます
>>910
ほんとだ、insertステートだと問題なく動く
多分、normalステートだと行末の改行にカーソルが乗らずに一文字戻るって仕様なんだね
理屈は分かったから後はこっちで色々いじってみるよ
どうもありがとう
ほんとだ、insertステートだと問題なく動く
多分、normalステートだと行末の改行にカーソルが乗らずに一文字戻るって仕様なんだね
理屈は分かったから後はこっちで色々いじってみるよ
どうもありがとう
smart-compile とか flymake とか quickrun ってなんか上手に統合出来そうな気もするんだけど
すでにそういうパッケージってあったりするんだろうか
すでにそういうパッケージってあったりするんだろうか
(interactive "s表示用テキスト : ")
ミニバッファ側
表示用テキスト : 「」
「」に初期値を入れておきたいのですが、やりかたが見つからず。
C-x C-fのようなかんじです。
よろしくおねがいします。
ミニバッファ側
表示用テキスト : 「」
「」に初期値を入れておきたいのですが、やりかたが見つからず。
C-x C-fのようなかんじです。
よろしくおねがいします。
それこそその find-file を見てみりゃわかると思うけど
単に自前でプロンプト出す関数を使ってるだけの話だね。
(defun with-default-input (text)
(interactive (list (read-input "Text: " "hello, world")))
(message "Input text: %s" text))
単に自前でプロンプト出す関数を使ってるだけの話だね。
(defun with-default-input (text)
(interactive (list (read-input "Text: " "hello, world")))
(message "Input text: %s" text))
popup-select-windowの表示方法でバッファ一覧を確認できないのでしょうか?
http://d.hatena.ne.jp/khiker/20100924/popup_select_window のスクリーンショットが一番わかりやすいです。
http://d.hatena.ne.jp/khiker/20100924/popup_select_window のスクリーンショットが一番わかりやすいです。
説明読んだがどういう動きするのかよくわからなかった・・・
3つ以上に分割してる時に選んだ先のウィンドウをわかりやすく表示するってこと?
3つ以上に分割してる時に選んだ先のウィンドウをわかりやすく表示するってこと?
使ったらすぐ分かった。ウィンドウが 3つ以上の時に popup で選択先を選べて
かつ選ぶウィンドウをわかりやすく色付けするって拡張だったのか。
バッファ選択の場合、iswitchb なんかだと↓付けることで
現在選ぼうとしてるバッファがリアルタイムで表示されてちょっとはわかりやすくなるんじゃないかな
popup.el で表示させたいんだったら自分でなんか書かないとだめじゃないかね。
(require 'cl-lib)
(defadvice iswitchb-exhibit
(after ad-iswitchb-exhibit-with-display-buffer activate)
"選択しているバッファをウィンドウに表示する."
(when (and (eq iswitchb-method iswitchb-default-method)
iswitchb-matches)
(let ((iswitchb-method 'samewindow)
(selected (get-buffer-window
(cl-find-if-not 'minibufferp (buffer-list)))))
(when selected
(select-window selected)
(iswitchb-visit-buffer
(get-buffer (car iswitchb-matches)))
(select-window (minibuffer-window))))
))
かつ選ぶウィンドウをわかりやすく色付けするって拡張だったのか。
バッファ選択の場合、iswitchb なんかだと↓付けることで
現在選ぼうとしてるバッファがリアルタイムで表示されてちょっとはわかりやすくなるんじゃないかな
popup.el で表示させたいんだったら自分でなんか書かないとだめじゃないかね。
(require 'cl-lib)
(defadvice iswitchb-exhibit
(after ad-iswitchb-exhibit-with-display-buffer activate)
"選択しているバッファをウィンドウに表示する."
(when (and (eq iswitchb-method iswitchb-default-method)
iswitchb-matches)
(let ((iswitchb-method 'samewindow)
(selected (get-buffer-window
(cl-find-if-not 'minibufferp (buffer-list)))))
(when selected
(select-window selected)
(iswitchb-visit-buffer
(get-buffer (car iswitchb-matches)))
(select-window (minibuffer-window))))
))
popupで表示して選ぶだけならこれでいける
(switch-to-buffer
(popup-menu* (mapcar
(lambda (b) (popup-make-item (buffer-name b) :value b))
(cl-remove-if (lambda (b)
(string-match "^ " (buffer-name b)))
(buffer-list)
))))
(switch-to-buffer
(popup-menu* (mapcar
(lambda (b) (popup-make-item (buffer-name b) :value b))
(cl-remove-if (lambda (b)
(string-match "^ " (buffer-name b)))
(buffer-list)
))))
>>923
delq はもっと使われていい。
(switch-to-buffer
(popup-menu*
(delq nil (mapcar
(lambda (buf)
(unless (string-match "^ " (buffer-name buf))
(popup-make-item (buffer-name b) :value buf)))
(buffer-list)))))
delq はもっと使われていい。
(switch-to-buffer
(popup-menu*
(delq nil (mapcar
(lambda (buf)
(unless (string-match "^ " (buffer-name buf))
(popup-make-item (buffer-name b) :value buf)))
(buffer-list)))))
smartrep.elでenterキーにコマンドを割り当てたいです
keyboard-quitを割り当てたいのですが("<enter>" . 'keyboard-quit)と書いても何も起きませんでした
keyboard-quitを割り当てたいのですが("<enter>" . 'keyboard-quit)と書いても何も起きませんでした
>>926
そうでした...
そうでした...
えんたあああああああああああああああああああいああああああああああああ!!!!
魔がさした。反省はしてない
魔がさした。反省はしてない
しかしキーボードにはEnterって書いてあるのに、Returnキーとはこれいかに
昔の名残か
昔の名残か
enterは電算端末
returnはタイプライター、パンチカードの名残り
押すとキャリッジがリターンしたから
returnはタイプライター、パンチカードの名残り
押すとキャリッジがリターンしたから
>>933
キーボードに?
キーボードに?
compile について質問です。
エラーが発生するまで *compilation* ウィンドウを開かない方法はないでしょうか?
エラーが発生するまで *compilation* ウィンドウを開かない方法はないでしょうか?
http://yohshiy.blog.fc2.com/blog-entry-132.html
ここにそれっぽい事が書いてある
ここにそれっぽい事が書いてある
>>938
ありがとうございます。正常なら開かないのではなく正常なら閉じる、しかなさそうな感じですね。
gcc とかだとコンパイルエラーでも終了時のステータスが 0 だったので face で判断するのを書いてみました。
(add-hook 'compilation-finish-functions
(lambda (buffer msg)
(unless (with-current-buffer buffer
(let ((cur (point-min)) found)
(while (and cur (not found))
(setq found
(let ((face (get-text-property cur 'face)))
(memq 'compilation-error
(if (listp face)
face
(cons face nil)))))
(setq cur (next-property-change cur)))
found))
(when (get-buffer-window buffer)
(delete-window (get-buffer-window buffer))))))
ありがとうございます。正常なら開かないのではなく正常なら閉じる、しかなさそうな感じですね。
gcc とかだとコンパイルエラーでも終了時のステータスが 0 だったので face で判断するのを書いてみました。
(add-hook 'compilation-finish-functions
(lambda (buffer msg)
(unless (with-current-buffer buffer
(let ((cur (point-min)) found)
(while (and cur (not found))
(setq found
(let ((face (get-text-property cur 'face)))
(memq 'compilation-error
(if (listp face)
face
(cons face nil)))))
(setq cur (next-property-change cur)))
found))
(when (get-buffer-window buffer)
(delete-window (get-buffer-window buffer))))))
>>939
compilation-messageの方使うともうちょい短くなるな。
(add-hook 'compilation-finish-functions
(lambda (buffer msg)
(when (and (not (with-current-buffer buffer
(text-property-not-all (point-min) (point-max)
'compilation-message nil)))
(get-buffer-window buffer))
(delete-window (get-buffer-window buffer)))))
compilation-messageの方使うともうちょい短くなるな。
(add-hook 'compilation-finish-functions
(lambda (buffer msg)
(when (and (not (with-current-buffer buffer
(text-property-not-all (point-min) (point-max)
'compilation-message nil)))
(get-buffer-window buffer))
(delete-window (get-buffer-window buffer)))))
compilation buffer を最初から表示させないのを作ってみた。エラーの時だけ表示される。
font-lock のとこもうちょっとなんとかならんのかしら。
エラーが起きたかどうかをテキストプロパティから判別してるんだけど、
font-lock が遅延評価かなんかしてるせいか display-buffer しないとプロパティが設定されない。
fontify-buffer は font-lock-mode だと機能してくれなくて 一旦 font-lock-mode 解除とか間抜けなことするはめに。
(defadvice compilation-start (around compile-silently activate)
"コンパイル時にバッファを表示しない."
(cl-letf (((symbol-function 'display-buffer) 'ignore))
ad-do-it))
;; コンパイルエラー時のみ *compilation* バッファ表示
(add-hook 'compilation-finish-functions
(lambda (buffer msg)
(with-current-buffer buffer
(font-lock-mode -1)
(font-lock-fontify-buffer)
(font-lock-mode 1)
(when
(text-property-not-all (point-min) (point-max)
'compilation-message nil)
(display-buffer buffer))))
)
font-lock のとこもうちょっとなんとかならんのかしら。
エラーが起きたかどうかをテキストプロパティから判別してるんだけど、
font-lock が遅延評価かなんかしてるせいか display-buffer しないとプロパティが設定されない。
fontify-buffer は font-lock-mode だと機能してくれなくて 一旦 font-lock-mode 解除とか間抜けなことするはめに。
(defadvice compilation-start (around compile-silently activate)
"コンパイル時にバッファを表示しない."
(cl-letf (((symbol-function 'display-buffer) 'ignore))
ad-do-it))
;; コンパイルエラー時のみ *compilation* バッファ表示
(add-hook 'compilation-finish-functions
(lambda (buffer msg)
(with-current-buffer buffer
(font-lock-mode -1)
(font-lock-fontify-buffer)
(font-lock-mode 1)
(when
(text-property-not-all (point-min) (point-max)
'compilation-message nil)
(display-buffer buffer))))
)
emacs 上でテストを書く時にサポートしてくれるようなパッケージってありますでしょうか?
具体的には本体とテストを簡単に行き来出来るようなパッケージを探しています。
具体的には本体とテストを簡単に行き来出来るようなパッケージを探しています。
>>944
`ff-find-other-file' を使えば出来る気がする。
そう思ってググったらCofeeScript用の設定例が見つかった。
http://github.com/yasuyk/coffee-fof/blob/master/coffee-fof.el
`ff-find-other-file' を使えば出来る気がする。
そう思ってググったらCofeeScript用の設定例が見つかった。
http://github.com/yasuyk/coffee-fof/blob/master/coffee-fof.el
direx でディレクトリを先に表示するようなのを書いた
(defadvice direx:node-children (around sort-files activate)
"direx でディレクトリを最初に表示する."
(let ((org-directory-files (symbol-function 'directory-files)))
(cl-letf (((symbol-function 'directory-files)
(lambda (directory &optional full match nosort)
(if nosort
(funcall org-directory-files directory full match nosort)
(sort (funcall org-directory-files directory full match)
(lambda (a b)
(let ((dir-a (file-directory-p a))
(dir-b (file-directory-p b)))
(if (eq dir-a dir-b)
(string-lessp a b)
(if dir-a t)))))))))
ad-do-it)))
(defadvice direx:node-children (around sort-files activate)
"direx でディレクトリを最初に表示する."
(let ((org-directory-files (symbol-function 'directory-files)))
(cl-letf (((symbol-function 'directory-files)
(lambda (directory &optional full match nosort)
(if nosort
(funcall org-directory-files directory full match nosort)
(sort (funcall org-directory-files directory full match)
(lambda (a b)
(let ((dir-a (file-directory-p a))
(dir-b (file-directory-p b)))
(if (eq dir-a dir-b)
(string-lessp a b)
(if dir-a t)))))))))
ad-do-it)))
設定ファイル内で、
コンパイル時にライブラリが存在してるかどうかチェックして require したり
実行ファイルが存在するかチェックして設定したり、なんてのがよくありますが、
Cのプリプロセッサみたいにコンパイル時にチェックを済ませてしまうことって出来ないんでしょうか?
(if (executable-find "ruby") (setq hoge "aaa"))
みたいなのがあった場合、コンパイル時に executable-find を実行、if の条件判断までやってしまって
ruby がない場合は elc ファイル内になにも残らず、存在する場合は setq だけ残したいです。
コンパイル時にライブラリが存在してるかどうかチェックして require したり
実行ファイルが存在するかチェックして設定したり、なんてのがよくありますが、
Cのプリプロセッサみたいにコンパイル時にチェックを済ませてしまうことって出来ないんでしょうか?
(if (executable-find "ruby") (setq hoge "aaa"))
みたいなのがあった場合、コンパイル時に executable-find を実行、if の条件判断までやってしまって
ruby がない場合は elc ファイル内になにも残らず、存在する場合は setq だけ残したいです。
マクロを使え
(defmacro if-on-compile (cond &rest form)
(when cond `(progn ,@form)))
(defmacro if-on-compile (cond &rest form)
(when cond `(progn ,@form)))
common lispなら
(if #.(executable-find "ruby") (setq hoge "aaa"))
でいけると思う。
emacs lispでも#.は使えるみたいだけど狙った結果になるかわからん
(if #.(executable-find "ruby") (setq hoge "aaa"))
でいけると思う。
emacs lispでも#.は使えるみたいだけど狙った結果になるかわからん
前へ 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 44 (1001) - [92%] - 2014/2/8 8:01 △
- Emacs Part 53 (989) - [92%] - 2022/12/5 12:45
- 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 33 (1001) - [92%] - 2010/3/9 20:01 ○
- Emacs Part 41 (1001) - [92%] - 2012/12/24 4:15
- Emacs Part 32 (1001) - [84%] - 2009/12/20 2:04 ○
- Emacs Part 31 (1001) - [84%] - 2009/10/23 10:31 ○
- Emacs part 23 (1001) - [84%] - 2008/2/8 0:04 ☆
トップメニューへ / →のくす牧場書庫について