Emacs Part 46
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2014/06/23(月) 02:42:14.91GNU Emacs - GNU Project - Free Software Foundation (FSF)
https://www.gnu.org/software/emacs/
EmacsWiki: サイトマップ
http://www.emacswiki.org/emacs/
前スレ
Emacs Part 45
http://peace.2ch.net/test/read.cgi/unix/1391839128/
0195名無しさん@お腹いっぱい。
2014/08/22(金) 00:23:59.400196名無しさん@お腹いっぱい。
2014/08/22(金) 09:25:55.49langtoolは文法チェッカーだと思っていたが、スペルもチェックするのか。
>>195
オレもaspellを使っていた頃は、日本人人名を数千人分、辞書にぶち込んでいた。
0197名無しさん@お腹いっぱい。
2014/08/27(水) 05:48:10.08forward-to-word にしてみたけどやっぱりなんか違う
ググったら構文テーブルてのを変えればいいっぽいけど何度読んでも理解できない
みんなどうしてるの?俺が馬鹿なだけ?
0198名無しさん@お腹いっぱい。
2014/08/27(水) 08:36:21.670199名無しさん@お腹いっぱい。
2014/08/27(水) 09:01:24.00標準と言ってもモード毎に実装がマチマチだ
何のモード?
0200名無しさん@お腹いっぱい。
2014/08/27(水) 09:51:23.71勉強中なので主にemacs-lisp-modeです
例えば以下のコードでポイントが「■」の位置の時にforward-wordすると
■
(defun ore (hage)
(if hage
t
nil))
ここに↓移動しますけど
(defun■ore (hage)
(if hage
t
nil))
自分としては↓ここに来てほしいです
(■efun ore (hage)
(if hage
t
nil))
forward-to-wordなら大体いい感じでなんですが
backward-to-wordで戻るとポイントが区切り文字の位置に来ちゃって
ストレス感じてます
0201名無しさん@お腹いっぱい。
2014/08/27(水) 20:38:05.80それはlispの考え方(キーバインド?)が身に付いてないからだな
望んだ場所には C-M-d で行く
他にも C-M-u C-M-f C-M-b を駆使すれば望んだ場所に行けるようになる
これらを覚えればC言語とかでもある程度通用するから覚えるべし
(そうすればカーソルの動きが普通の奴とはあきらかに違くなるw)
0202名無しさん@お腹いっぱい。
2014/08/27(水) 20:46:28.77ちなみに forward-to-word って何だ?俺のEmacsにはないぞ…
0203名無しさん@お腹いっぱい。
2014/08/27(水) 22:32:56.37misc.el
0204名無しさん@お腹いっぱい。
2014/08/27(水) 23:18:11.72ありがとうございます
down-listやbackward-up-listって知りませんでした
なるほどー、出たり入ったりして移動って感じですね
ちょっと考え方変えてみます
0205名無しさん@お腹いっぱい。
2014/08/27(水) 23:26:09.09私はこんな感じのコマンドを使っている。戻る時は只のbackward-wordを使う。
(defun my-forward-word ()
(if (eq (char-syntax (following-char)) ?w) (forward-word 2) (forward-word))
(when (eq (char-syntax (preceding-char)) ?w) (forward-word -1)))
0206名無しさん@お腹いっぱい。
2014/08/28(木) 01:12:26.33あー、そこにあったのか
サンクス
0207名無しさん@お腹いっぱい。
2014/08/28(木) 03:57:59.77pymacs からnltkを使うというのはどうだろう
0208名無しさん@お腹いっぱい。
2014/08/28(木) 04:01:10.57最近使われてるのみないけど
まだ動くよね?
0209名無しさん@お腹いっぱい。
2014/08/28(木) 08:53:57.98ありがとうございます!その動きです!
(setq s1 "@@@")
(setq s2 "abc")
ただこういう↑場合に "@@@" だけ無視されちゃうので、文字列の頭で無理やり止めてみました
(defun my-forward-word ()
(let ((p (point)) i)
(if (eq (char-syntax (following-char)) ?w) (forward-word 2) (forward-word))
(when (eq (char-syntax (preceding-char)) ?w)
(forward-word -1))
(when (setq i (string-match-p "[\s\t\n]\"" (buffer-substring-no-properties p (point))))
(goto-char (+ p (1+ i))))))
(defun my-backward-word ()
(let ((p (point)) (re "[\s\t\n]\""))
(backward-word)
(let* ((s (buffer-substring-no-properties (point) p)) (i (string-match-p re s)) i2)
(when i
(while (setq i2 (string-match-p re s (1+ i))) (setq i i2))
(goto-char (+ (point) (1+ i)))))))
>>207
へえ、そんなもあるですか
0210はちみつ餃子 ◆8X2XSCHEME
2014/08/29(金) 05:44:09.65もっとくれ
吉野屋の続きってないの?
0211名無しさん@お腹いっぱい。
2014/08/30(土) 03:09:05.390212名無しさん@お腹いっぱい。
2014/08/31(日) 16:31:20.40(setq kill-whole-line t)
が効かないのだけどどうすればいいの?
0213名無しさん@お腹いっぱい。
2014/08/31(日) 23:11:16.790214名無しさん@お腹いっぱい。
2014/09/01(月) 02:47:32.350215名無しさん@お腹いっぱい。
2014/09/01(月) 03:50:44.87本家のバイナリは未確認(あるのかすら知らない)
別のモードで上書きされてるとかっていうオチナキがするけど、
関数kill-holw-lineは使えてるみたいだから、好きなキーに割り当てればいいだけじゃないの?
0216名無しさん@お腹いっぱい。
2014/09/01(月) 04:24:29.41M-x describe-variables
kill-whole-line やると
kill-whole-line is a variable defined in `simple.el'.
Its value is t
Original value was nil
Documentation:
If non-nil, `kill-line' with no arg at start of line kills the whole line.
You can customize this variable.
て出ます 参考になります?
0217名無しさん@お腹いっぱい。
2014/09/01(月) 04:44:49.32想定してる状況がいまいちわからんのだけど、
emacs -Q
で起動して*scratch*バッファで
(setq kill-whole-line t)
と書いてその後ろでCtrl-x Ctrl-eして評価しても、そのバッファでkill-lineの挙動かわらないのかな
本家のバイナリは
http://ftp.gnu.org/gnu/emacs/windows/
のemacs-24.3-bin-i386.zipでいいのかな
あとで確認してみるけど、仮にダメでも
>>215の最後に書いてある解決策じゃだめなのかな
0218名無しさん@お腹いっぱい。
2014/09/01(月) 04:56:44.60emacs-24.3-bin-i386.zipを展開して
kill-whole-lineをtにしたら、普通にkill-lineの挙動が変わった
な… 何を言ってるのか わからねーと思うが
おれも何をされたのかわからなかった…
頭がどうにかなりそうだった…
0219名無しさん@お腹いっぱい。
2014/09/01(月) 05:21:20.61emacs腐ってるのかな
0220名無しさん@お腹いっぱい。
2014/09/01(月) 05:33:53.590221名無しさん@お腹いっぱい。
2014/09/01(月) 05:35:13.03でもまったーくできない
いったい
0222名無しさん@お腹いっぱい。
2014/09/01(月) 11:00:42.85確認してみたら変数のkill-whole-line効かなかったわ
関数はちゃんと動いてる
0223名無しさん@お腹いっぱい。
2014/09/01(月) 11:56:08.760224名無しさん@お腹いっぱい。
2014/09/01(月) 12:57:33.66した時の挙動を勘違いしてんだろ
0225名無しさん@お腹いっぱい。
2014/09/01(月) 13:33:18.70その通りだった
俺の頭がおかしかった
0226名無しさん@お腹いっぱい。
2014/09/01(月) 15:24:35.94それはない
そしていまだに解決できてない
0227名無しさん@お腹いっぱい。
2014/09/01(月) 16:08:12.39>>226はとにかく emacs -Q で起動して(setq kill-whole-line t)だけの状態で
問題無いかだけ教える
0228名無しさん@お腹いっぱい。
2014/09/01(月) 16:18:21.30無理でしたーなんでーだーよ!
0229名無しさん@お腹いっぱい。
2014/09/01(月) 17:54:48.90神の意志による奇跡でお前のemacsだけが
使いにくくなってるという結論以外ありえない
いますぐemacsを削除して全て忘れろ
0230名無しさん@お腹いっぱい。
2014/09/01(月) 18:07:37.21駄目ってありえないな
釣り認定する
0231名無しさん@お腹いっぱい。
2014/09/01(月) 22:03:23.82すまん>>225は>>222だ
(setq kill-whole-line t) したときの挙動を完全に勘違いしてた
'If the variable kill-whole-line is non-nil, C-k at the very beginning of a line kills the entire line including the following newline.
行頭にいるときに行末の改行までkillするだけで行の途中だと挙動変わらないのね
0232>>228
2014/09/02(火) 00:04:06.57え
ずっと C-S-BS = (setq kill-whole-line t) かと、、、
みんな、ごめんなさい
0233名無しさん@お腹いっぱい。
2014/09/02(火) 00:22:04.110234>>228
2014/09/02(火) 00:24:47.54C-kの挙動が(setq kill-whole-line t)で
C-S-BSと同じになるのかと思ってたんだ
0235名無しさん@お腹いっぱい。
2014/09/02(火) 00:35:29.23つうか、勘違い野郎は2人居たのかよ
0236名無しさん@お腹いっぱい。
2014/09/02(火) 02:47:29.34こんなコードを
(defun tes ()
(
let (
(a 0
)
(b 1
)
(c 2
)
)
)
)
一発で
(defun tes ()
(let ((a 0)
(b 1)
(c 2))))
にしてくれるコマンドってあります?
0237はちみつ餃子 ◆8X2XSCHEME
2014/09/02(火) 04:01:55.46(princ (with-temp-buffer
(cl-prettyprint form)
(buffer-string))
output-stream))
0238名無しさん@お腹いっぱい。
2014/09/02(火) 04:18:33.990239名無しさん@お腹いっぱい。
2014/09/02(火) 11:45:55.61これをどうやって使うんだ?
0240名無しさん@お腹いっぱい。
2014/09/02(火) 12:17:18.68元のコード書いたやつにメールかIRCで送りつける
0241名無しさん@お腹いっぱい。
2014/09/02(火) 13:52:56.910242名無しさん@お腹いっぱい。
2014/09/02(火) 16:35:50.44ローカルのMySQLにパスワードがないのですが、
SQLi[MySQL] mode を起動する時、パスワードを指定しないようにするには
どうしたら良いでしょう?
0243名無しさん@お腹いっぱい。
2014/09/04(木) 06:38:55.87からの〜
ソースを閲覧10秒くらい
…してみたら
そういうログイン関数作れば?って感じだった
0244名無しさん@お腹いっぱい。
2014/09/04(木) 09:00:02.170245242
2014/09/04(木) 10:16:13.70何も入力せずEnterを押すだけでログインできました。
環境構築中だったので、何か別の原因でログインできなかったようです。
ご回答いただいた方、ありがとうございました。
0246236
2014/09/05(金) 14:25:19.45ありがとうございます。一発で一行になりました。
いい感じにインデント付け直すには自前でやるしかないですかね。
>>238
相手は過去の自分なんですw
0247名無しさん@お腹いっぱい。
2014/09/05(金) 15:10:32.550248名無しさん@お腹いっぱい。
2014/09/05(金) 17:19:18.19(defun my-inside-string-or-comment-p (&optional point)
(let ((point (or point (point))))
(save-excursion
(let ((state (parse-partial-sexp (point-min) (point))))
(or (nth 3 state) (nth 4 state))))))
(defun my-pretty-lisp-code-region (start end)
(interactive "r")
(save-excursion
(save-restriction
(save-match-data
(narrow-to-region start end)
(goto-char (point-min))
;; 正規表現の "[^?\\]" は文字リテラル ?( 及び ?\( への誤一致回避のため
(while (re-search-forward "\\([^?\\](\\)[ \t\n]+" nil t)
(unless (my-inside-string-or-comment-p)
(replace-match (match-string 1))))
(goto-char (point-min))
(while (re-search-forward "[ \t\n]+\\()\\)" nil t)
(unless (or (my-inside-string-or-comment-p)
;; 直前の行末尾がコメント内であれば何もしない
(save-excursion
(forward-line -1)
(end-of-line)
(my-inside-string-or-comment-p)))
(replace-match (match-string 1))))
;; ついでにインデント
(indent-region (point-min) (point-max))))))
0249名無しさん@お腹いっぱい。
2014/09/05(金) 18:07:42.79>>248
末尾が "(" なコメントが含まれているとその次の行をコメント行に連結してしまう不具合を修正
(defun my-inside-string-or-comment-p (&optional point)
(let ((point (or point (point))))
(save-excursion
(let ((state (parse-partial-sexp (point-min) point)))
(or (nth 3 state) (nth 4 state))))))
(defun my-pretty-lisp-code-region (start end)
(interactive "r")
(save-excursion
(save-restriction
(save-match-data
(narrow-to-region start end)
(let ((regexps '("\\([^?\\](\\)[ \t\n]+" "[ \t\n]+\\()\\)"))
re)
(while (setq re (pop regexps))
(goto-char (point-min))
(while (re-search-forward re nil t)
(unless (my-inside-string-or-comment-p (match-beginning 1))
(replace-match (match-string 1))))))
(indent-region (point-min) (point-max))))))
0250名無しさん@お腹いっぱい。
2014/09/05(金) 22:03:00.16ありがとうございます!!
凄い、こんな短いコードで出来るんですね。色々と勉強になりました。
ちなみに最初のバージョンにあった直前の行のチェックはやっぱり必要ですよね。
こんな時に最後の ")" がコメントに行っちゃうので。
(defun tes ()
;; comment
)
0251名無しさん@お腹いっぱい。
2014/09/06(土) 12:26:32.31あー、修正ついでにwhile式を一つだけにしようとしていたら都合よく錯覚したみたい
あと最初の二文字が "(<改行>" の文字列を壊してしまう不具合があったのでそれも直しました
(defun my-inside-string-or-comment-p (&optional point)
(let ((point (or point (point))))
(save-excursion
(let ((state (parse-partial-sexp (point-min) point)))
(or (nth 3 state) (nth 4 state))))))
(defun my-pretty-lisp-code-region (start end)
(interactive "r")
(save-excursion
(save-restriction
(save-match-data
(narrow-to-region start end)
(goto-char (point-min))
(while (re-search-forward "\\((\\)[ \t\n]+" nil t)
(unless (or (my-inside-string-or-comment-p (match-beginning 1))
;; "?(" 及び "\(" を除外
(member (char-after (1- (match-beginning 1))) '(?? ?\\)))
(replace-match (match-string 1))))
(goto-char (point-min))
(while (re-search-forward "[ \t\n]+\\()\\)" nil t)
(unless (or (my-inside-string-or-comment-p (match-beginning 1))
;; 直前の要素(空白類以外)が改行終端型コメントの場合を除外
(my-inside-string-or-comment-p (match-beginning 0)))
(replace-match (match-string 1))))
(indent-region (point-min) (point-max))))))
0252名無しさん@お腹いっぱい。
2014/09/06(土) 12:29:37.13なお、
'(?
)
のように ")" の後方に生の改行による文字リテラルがあるコードには未対応
そんなコードは滅多に無い(普通は ?\n)だろうから問題無いと思うけど
使ってくれる場合は一応覚えておいて下さい
0253名無しさん@お腹いっぱい。
2014/09/07(日) 01:34:24.04Gauche動かしたいのだけど
M-x eshell
で
gosh
としてREPLに入ると
gosh> ←このプロンプトが表示されず、
式入力後の結果も表示されないのはなぜ?
ちなみにエラーは表示されるしそのほかの組み込みコマンド(ls?とか?)
はうまくいく
Scheme 関連の設定はなにもしていない
0254名無しさん@お腹いっぱい。
2014/09/07(日) 01:41:29.980255名無しさん@お腹いっぱい。
2014/09/07(日) 02:24:33.81http://emacs-jp.github.io/reading-initel.html
0256名無しさん@お腹いっぱい。
2014/09/07(日) 06:50:30.80vim 部屋の人も結構沢山いたのが面白かった
0257名無しさん@お腹いっぱい。
2014/09/07(日) 10:25:22.09どうやって解決したの?
0258名無しさん@お腹いっぱい。
2014/09/07(日) 10:52:57.01goshの挙動はレファレンスを見ると
> gosh
のように引数なしで呼ぶとREPLに入るが
入力が「端末」でない場合プロンプトは表示されない
パイプで有効でしょう。みたいに書いてあった
>gosh -i
では入力が「端末」でなくてもプロンプトは表示される
emacsからのeshellとshell(windowsではcmd.exeかな)では
gosh的には入力が「端末」ではない?らしい
よくわからんが、goshに-iをつけることで解決した
0259名無しさん@お腹いっぱい。
2014/09/07(日) 10:54:53.56本物の端末を要求する系は動かないよ。
端末エミュレーションが必要なら term とか ansi-term を使う必要がある。
0260名無しさん@お腹いっぱい。
2014/09/07(日) 12:12:35.24なるほどねありがとー
0261名無しさん@お腹いっぱい。
2014/09/07(日) 15:37:23.050262名無しさん@お腹いっぱい。
2014/09/07(日) 16:04:36.41か
(add-hook 'hogehoge-mode-hook (lambda () (local-set-key (kbd "C-c a") 'do-something))
じゃねえの
0263名無しさん@お腹いっぱい。
2014/09/08(月) 09:05:42.25package-install できると嬉しいんだけど
http://www.slideshare.net/igjit/ac-38506660
0264名無しさん@お腹いっぱい。
2014/09/08(月) 15:30:56.47さんくす!
0265靖国参拝、皇族、国旗国歌、神社神道を異常に嫌うカルト
2014/09/09(火) 18:04:06.27・沢山の人が偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
....
0266名無しさん@お腹いっぱい。
2014/09/10(水) 00:55:09.92利用することができるかと思いますが、Windows版 24.3 で org-mode を
package-list-packages でインストールしましたが、M-x orgtbl-mode と
しても No match と言われ呼び出せません。
例えば M-x org-version を実行したあとだと M-x orgtbl-mode が
呼び出せますがそういうものなのでしょうか。
確認すべき点がありましたらご教示いただけますでしょうか。
よろしくお願いいたします。
0267名無しさん@お腹いっぱい。
2014/09/10(水) 01:21:16.250268名無しさん@お腹いっぱい。
2014/09/10(水) 01:48:57.99ロードとオートロードを知るべし
0269266
2014/09/10(水) 02:37:04.14org に関する設定は
(require 'org-install)
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
のみにしていたのですが、(require 'org) を加えたら
orgtbl-mode が呼び出せるようになりました。
ありがとうございました。
>>268
267さんの方法で呼び出せるようになりました。
(require 'org) を追加する前は、org-version を実行することで
初めて org-mode が読み込まれ、(require 'org) を追加してからは
Emacs 起動時に org-mode が読み込まれることで orgtbl-mode も
呼び出せるようになった、という感じでしょうか。
Emacs Lisp の勉強を重ねたいと思います。
ありがとうございました。
0270名無しさん@お腹いっぱい。
2014/09/11(木) 00:04:34.58マップてscheme-mode-mapじゃないの?
0271名無しさん@お腹いっぱい。
2014/09/11(木) 10:42:18.690272名無しさん@お腹いっぱい。
2014/09/12(金) 09:55:49.37このサイト(http://d.hatena.ne.jp/hnw/20140113)にある
(defvar my/favorite-packages
'(
php-mode
haskell-mode
csharp-mode
yaml-mode
open-junk-file
gtags
anything
)
"起動時に自動的にインストールされるパッケージのリスト")
ですが、これをinit.elに記載しておき、環境移行すれば、確かにインストールも楽になると思いますが、
この方法だと、新たにパッケージをインストールしたり、アンインストールした場合、
init.elも修正が必要になると思います。
パッケージをインストール/アンインストールした時に、別ファイルに書き込み、
(つまり、Emacs終了時に現在入ってるパッケージリストを更新)
起動時に、それを読み込み、インストールされてなければ、インストールする
(もちろんアンインストールしてあったら、アンインストールする)
ような方法ってありますか?
それとも、上記のdefvar my/favorite-packagesの使い方って、
全環境共通にインストールしたいパッケージ一覧で、
それ以外は個別にインストールするもの???
例)
家では、上記パッケージ+○○に関するパッケージ
仕事場では、上記パッケージ+××に関するパッケージ
0273名無しさん@お腹いっぱい。
2014/09/12(金) 15:42:02.570274名無しさん@お腹いっぱい。
2014/09/12(金) 15:44:27.97VimのNeobundle相当のぐらいあるだろう?
0275名無しさん@お腹いっぱい。
2014/09/12(金) 15:58:15.150276名無しさん@お腹いっぱい。
2014/09/12(金) 16:35:35.12package-activated-list あたりを終了時に書き出しといて
起動時に読み込んで差分をインストールでいいんでないの?
0277名無しさん@お腹いっぱい。
2014/09/12(金) 22:27:21.680278名無しさん@お腹いっぱい。
2014/09/13(土) 11:18:33.260279名無しさん@お腹いっぱい。
2014/09/14(日) 12:28:57.37そういうelispをいざ自分で作ろうとしても作り方が分かりません
emacs lispの基本的な構文は分かっているつもりなのですが
他人向けにelispを公開するノウハウはさっぱり仕入れてきませんでした
参考になるものとして何かありますか
0280名無しさん@お腹いっぱい。
2014/09/14(日) 12:37:29.540281名無しさん@お腹いっぱい。
2014/09/14(日) 13:26:16.610282名無しさん@お腹いっぱい。
2014/09/14(日) 13:26:54.86elisp の info に見向きもしないで elisp 入門したがる人はおじさんキライだな
0283名無しさん@お腹いっぱい。
2014/09/14(日) 13:44:19.12ここは私の顔に免じて許してやってはくれまいか
0284名無しさん@お腹いっぱい。
2014/09/14(日) 23:06:48.770285名無しさん@お腹いっぱい。
2014/09/15(月) 00:10:27.300286名無しさん@お腹いっぱい。
2014/09/15(月) 00:44:23.52provide は分かる?
0287名無しさん@お腹いっぱい。
2014/09/15(月) 02:53:37.460288名無しさん@お腹いっぱい。
2014/09/15(月) 04:01:31.95run-at-time 0.05 は必要か
run-at-time 0.08 以上後でやらないととか
どこ調べて判断すればいいの?
0289名無しさん@お腹いっぱい。
2014/09/15(月) 06:12:05.371ファイルすら欠くことなく無償で提供されている膨大なelispコードの山とか
0290名無しさん@お腹いっぱい。
2014/09/15(月) 11:25:25.29優しい Emacs-Lisp 講座
がお探しのものに近いのではないかと思います。
Web版をご一読されてはいかがですか。
0291279
2014/09/15(月) 11:43:37.57ありがとうございました。早速見てみます。
>>他の、俺を罵ってくれた奴ら
俺が超絶スゲーelisp作っても、使わせてやらねえからな!!
0292名無しさん@お腹いっぱい。
2014/09/15(月) 12:08:20.62それ以外の有益な情報も出てくるから
>>279の目的に最もマッチするのは>>282なんじゃないかと思うけどね
「情報の質」よりも「敬語であること」を重視してるようじゃ、まだまだ先は長いわ
0293名無しさん@お腹いっぱい。
2014/09/15(月) 13:13:37.39> 俺が超絶スゲーelisp作っても、使わせてやらねえからな!!
具体的にどうやるんだろ。
ライセンスでしばる?
0294名無しさん@お腹いっぱい。
2014/09/15(月) 13:29:55.77■ このスレッドは過去ログ倉庫に格納されています