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

    私的良スレ書庫

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

    元スレEmacs Part 46

    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
    201 : 名無しさん@お腹 - 2014/08/27(水) 20:38:05.80 .net (+9,-29,-64)
    >>200
    それはlispの考え方(キーバインド?)が身に付いてないからだな
    望んだ場所には C-M-d で行く
    他にも C-M-u C-M-f C-M-b を駆使すれば望んだ場所に行けるようになる

    これらを覚えればC言語とかでもある程度通用するから覚えるべし
    (そうすればカーソルの動きが普通の奴とはあきらかに違くなるw)
    202 : 名無しさん@お腹 - 2014/08/27(水) 20:46:28.77 .net (+2,-29,-21)
    >>200
    ちなみに forward-to-word って何だ?俺のEmacsにはないぞ…
    203 : 名無しさん@お腹 - 2014/08/27(水) 22:32:56.37 .net (+28,-29,+2)
    >>202
    misc.el
    204 : 名無しさん@お腹 - 2014/08/27(水) 23:18:11.72 .net (+0,-29,-23)
    >>201
    ありがとうございます
    down-listやbackward-up-listって知りませんでした
    なるほどー、出たり入ったりして移動って感じですね
    ちょっと考え方変えてみます
    205 : 名無しさん@お腹 - 2014/08/27(水) 23:26:09.09 .net (+0,-30,-179)
    forward-to-wordは漢字混じりの文章でうまく動かないので、
    私はこんな感じのコマンドを使っている。戻る時は只の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)))
    206 : 名無しさん@お腹 - 2014/08/28(木) 01:12:26.33 .net (+61,+29,+0)
    >>203
    あー、そこにあったのか
    サンクス
    207 : 名無しさん@お腹 - 2014/08/28(木) 03:57:59.77 .net (+0,-29,-3)
    >>197

    pymacs からnltkを使うというのはどうだろう
    208 : 名無しさん@お腹 - 2014/08/28(木) 04:01:10.57 .net (+30,+2,-6)
    pymacs
    最近使われてるのみないけど
    まだ動くよね?
    209 : 名無しさん@お腹 - 2014/08/28(木) 08:53:57.98 .net (+0,+0,+0)
    >>205
    ありがとうございます!その動きです!

    (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
    へえ、そんなもあるですか
    210 : はちみつ餃子 ◆ - 2014/08/29(金) 05:44:09.65 .net (-1,-29,-29)
    ID:Rw3tzfsV0

    もっとくれ
    吉野屋の続きってないの?
    211 : 名無しさん@お腹 - 2014/08/30(土) 03:09:05.39 .net (+39,+21,-1)
    どこの誤爆だ?
    212 : 名無しさん@お腹 - 2014/08/31(日) 16:31:20.40 .net (-2,-30,-32)
    Windows版GNU Emacs24.3で
    (setq kill-whole-line t)
    が効かないのだけどどうすればいいの?
    213 : 名無しさん@お腹 - 2014/08/31(日) 23:11:16.79 .net (-6,-29,-2)
    代わりに、C-S-<BS> 使ってみる。
    214 : 名無しさん@お腹 - 2014/09/01(月) 02:47:32.35 .net (+52,+29,+0)
    どうやらそれはできるようですが。。。
    215 : 名無しさん@お腹 - 2014/09/01(月) 03:50:44.87 .net (+9,-30,-90)
    windows7上のgnupack版emacs24.3.1で変数kill-whole-lineが有効なことを確認
    本家のバイナリは未確認(あるのかすら知らない)

    別のモードで上書きされてるとかっていうオチナキがするけど、
    関数kill-holw-lineは使えてるみたいだから、好きなキーに割り当てればいいだけじゃないの?
    216 : 名無しさん@お腹 - 2014/09/01(月) 04:24:29.41 .net (+3,-30,-145)
    使っているのは本家のバイナリです

    M-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.

    て出ます 参考になります?
    217 : 名無しさん@お腹 - 2014/09/01(月) 04:44:49.32 .net (+4,-30,-131)
    その情報はまったく参考にならないから、elispまったく知らなそうだというのはわかった

    想定してる状況がいまいちわからんのだけど、
    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の最後に書いてある解決策じゃだめなのかな
    218 : 名無しさん@お腹 - 2014/09/01(月) 04:56:44.60 .net (+3,-29,-70)
    あ…ありのまま 今 起こった事を話すぜ!

    emacs-24.3-bin-i386.zipを展開して
    kill-whole-lineをtにしたら、普通にkill-lineの挙動が変わった

    な… 何を言ってるのか わからねーと思うが
    おれも何をされたのかわからなかった…

    頭がどうにかなりそうだった…
    219 : 名無しさん@お腹 - 2014/09/01(月) 05:21:20.61 .net (+57,+29,+0)
    全然できません。。。なぜ

    emacs腐ってるのかな
    220 : 名無しさん@お腹 - 2014/09/01(月) 05:33:53.59 .net (+50,+27,+0)
    腐ってんのはemacsじゃないよ
    221 : 名無しさん@お腹 - 2014/09/01(月) 05:35:13.03 .net (+57,+29,-2)
    自分か
    でもまったーくできない
    いったい
    222 : 名無しさん@お腹 - 2014/09/01(月) 11:00:42.85 .net (+8,-29,-56)
    macで開発版の24.4.50をビルドして使ってるけど
    確認してみたら変数のkill-whole-line効かなかったわ
    関数はちゃんと動いてる
    223 : 名無しさん@お腹 - 2014/09/01(月) 11:56:08.76 .net (+52,+29,+0)
    マジで頭が原因なのか
    224 : 名無しさん@お腹 - 2014/09/01(月) 12:57:33.66 .net (+65,-29,-28)
    (setq kill-whole-line t)
    した時の挙動を勘違いしてんだろ
    225 : 名無しさん@お腹 - 2014/09/01(月) 13:33:18.70 .net (+74,+29,+0)
    >>224
    その通りだった
    俺の頭がおかしかった
    226 : 名無しさん@お腹 - 2014/09/01(月) 15:24:35.94 .net (+73,+29,-3)
    >>224
    それはない
    そしていまだに解決できてない
    227 : 名無しさん@お腹 - 2014/09/01(月) 16:08:12.39 .net (+49,-29,-16)
    >>225がsageてるから偽もんの気がしたがなw
    >>226はとにかく emacs -Q で起動して(setq kill-whole-line t)だけの状態で
    問題無いかだけ教える
    228 : 名無しさん@お腹 - 2014/09/01(月) 16:18:21.30 .net (+83,+29,+0)
    >>227
    無理でしたーなんでーだーよ!
    229 : 名無しさん@お腹 - 2014/09/01(月) 17:54:48.90 .net (+58,+30,-37)
    設定ミスでもバグでもないとなると
    神の意志による奇跡でお前のemacsだけが
    使いにくくなってるという結論以外ありえない
    いますぐemacsを削除して全て忘れろ
    230 : 名無しさん@お腹 - 2014/09/01(月) 18:07:37.21 .net (-2,-30,-16)
    公式バイナリ使って emacs -Q で起動して (setq kill-whole-line t) だけの状態で
    駄目ってありえないな
    釣り認定する
    231 : 名無しさん@お腹 - 2014/09/01(月) 22:03:23.82 .net (+14,-30,-124)
    >>227
    すまん>>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するだけで行の途中だと挙動変わらないのね
    232 : 0 - 2014/09/02(火) 00:04:06.57 .net (+0,-30,-10)
    >>231




    ずっと C-S-BS = (setq kill-whole-line t) かと、、、



    みんな、ごめんなさい
    233 : 名無しさん@お腹 - 2014/09/02(火) 00:22:04.11 .net (+46,+14,-1)
    setqがキーに割り当てられてるわけないだろ
    234 : 0 - 2014/09/02(火) 00:24:47.54 .net (+4,-30,-36)
    >>233
    C-kの挙動が(setq kill-whole-line t)で
    C-S-BSと同じになるのかと思ってたんだ
    235 : 名無しさん@お腹 - 2014/09/02(火) 00:35:29.23 .net (+57,+29,-20)
    だから勘違いしてんだろとあれ程言ってたのによーー
    つうか、勘違い野郎は2人居たのかよ
    236 : 名無しさん@お腹 - 2014/09/02(火) 02:47:29.34 .net (+0,-30,-63)
    便乗質問ですみません。
    こんなコードを

    (defun tes ()
    (
    let (
    (a 0
    )
    (b 1
    )
    (c 2
    )
    )
    )
    )

    一発で

    (defun tes ()
    (let ((a 0)
    (b 1)
    (c 2))))

    にしてくれるコマンドってあります?
    237 : はちみつ餃子 ◆ - 2014/09/02(火) 04:01:55.46 .net (+70,-30,-72)
    (defun pprint (form &optional output-stream)
    (princ (with-temp-buffer
    (cl-prettyprint form)
    (buffer-string))
    output-stream))
    238 : 名無しさん@お腹 - 2014/09/02(火) 04:18:33.99 .net (+94,+29,-18)
    一発ぶん殴ってコーディングスタイルを更正させる
    239 : 名無しさん@お腹 - 2014/09/02(火) 11:45:55.61 .net (+86,+28,-2)
    >>237
    これをどうやって使うんだ?
    240 : 名無しさん@お腹 - 2014/09/02(火) 12:17:18.68 .net (+50,+11,-2)
    >>239
    元のコード書いたやつにメールかIRCで送りつける
    241 : 名無しさん@お腹 - 2014/09/02(火) 13:52:56.91 .net (-1,-29,-8)
    common lispのreplにクォート付きで渡せば一発
    242 : 名無しさん@お腹 - 2014/09/02(火) 16:35:50.44 .net (+8,-29,-50)
    すみませんが、質問です。
    ローカルのMySQLにパスワードがないのですが、
    SQLi[MySQL] mode を起動する時、パスワードを指定しないようにするには
    どうしたら良いでしょう?
    243 : 名無しさん@お腹 - 2014/09/04(木) 06:38:55.87 .net (-1,-29,-26)
    発作的なdescribe-function
    からの~
    ソースを閲覧10秒くらい
    …してみたら
    そういうログイン関数作れば?って感じだった
    244 : 名無しさん@お腹 - 2014/09/04(木) 09:00:02.17 .net (-1,-29,-23)
    MySQLのコマンドを、パスワード無視するシェルスクリプトにすれば?
    245 : 242 - 2014/09/04(木) 10:16:13.70 .net (+62,+29,-53)
    ごめんなさい、試し直したら、パスワードのダイアログで
    何も入力せずEnterを押すだけでログインできました。
    環境構築中だったので、何か別の原因でログインできなかったようです。
    ご回答いただいた方、ありがとうございました。
    246 : 236 - 2014/09/05(金) 14:25:19.45 .net (+71,+29,-38)
    >>237,241
    ありがとうございます。一発で一行になりました。
    いい感じにインデント付け直すには自前でやるしかないですかね。

    >>238
    相手は過去の自分なんですw
    247 : 名無しさん@お腹 - 2014/09/05(金) 15:10:32.55 .net (-1,-29,-3)
    indent-regionとかじゃだめ?
    248 : 名無しさん@お腹 - 2014/09/05(金) 17:19:18.19 .net (+0,+0,+0)
    >>236
    (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))))))
    249 : 名無しさん@お腹 - 2014/09/05(金) 18:07:42.79 .net (+0,-30,+0)
    >>236
    >>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))))))
    250 : 名無しさん@お腹 - 2014/09/05(金) 22:03:00.16 .net (+0,-29,-42)
    >>248-249
    ありがとうございます!!
    凄い、こんな短いコードで出来るんですね。色々と勉強になりました。

    ちなみに最初のバージョンにあった直前の行のチェックはやっぱり必要ですよね。
    こんな時に最後の ")" がコメントに行っちゃうので。
    (defun tes ()
    ;; comment
    )
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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