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/
0170名無しさん@お腹いっぱい。
2014/08/16(土) 13:18:52.360171名無しさん@お腹いっぱい。
2014/08/16(土) 13:38:51.080172名無しさん@お腹いっぱい。
2014/08/16(土) 14:01:14.80ここは日本、胡散臭いエゲレス人はおよびでないよ
0173名無しさん@お腹いっぱい。
2014/08/16(土) 14:31:21.44だからと言ってGnusでHTMLメールは見れたもんじゃない
たまに文字を赤く強調して送ってくる人がいるが、そういうのは再現できるレベル
0174名無しさん@お腹いっぱい。
2014/08/16(土) 20:51:14.97気付かせてくれた>>173には感謝する
0175名無しさん@お腹いっぱい。
2014/08/18(月) 11:21:38.28(wrong-type-argument char-or-string-p nil)
ってエラーになるのは何ですかね。
出力先を 'echo-area か 'popup にすれば出ますけど。
0176名無しさん@お腹いっぱい。
2014/08/18(月) 11:44:36.31google-translate-output-destinationがnilの状態でなんのエラーも出ないよ
Emacs 24.3.92
0177名無しさん@お腹いっぱい。
2014/08/18(月) 12:59:56.8220140421.658 が残ってたので戻しました。
んー、全然困らないけど気になる。
0178名無しさん@お腹いっぱい。
2014/08/18(月) 14:03:21.46emacs -qで起動して
(add-to-list 'load-path "~/.emacs.d/elpa/google-translate-20140814.1508/")
(require 'google-translate)
(require 'google-translate-default-ui)
(global-set-key "\C-ct" 'google-translate-at-point)
だけでやってみた。
ということで設定出してもらえたらわかるかも。
0179名無しさん@お腹いっぱい。
2014/08/18(月) 15:47:29.54意地になって調べてたら、google-translate-core-ui.el の549行目の
(when google-translate-listen-program
(google-translate--listen-button gtos))
で止まってたので
init.el で (setq google-translate-listen-program t) としたら直りました!!
(insert 〜〜〜) の中に nil が出ちゃったってオチでした。
0180名無しさん@お腹いっぱい。
2014/08/18(月) 16:19:33.01プレイヤーのパス指定しないと
(setq google-translate-listen-program "/usr/local/bin/ffplay")
0181名無しさん@お腹いっぱい。
2014/08/18(月) 16:37:32.96その部分は、意図どおりにするなら
whenの部分を消して、一つ上の条件に組み込むのいいんじゃないですかね。
(if (null google-translate-listen-program)
"\n%s\n"
"\n%s"
(google-translate--listen-button gtos)
))
(google-translate--text-phonetic gtos "\n%s\n")
0182名無しさん@お腹いっぱい。
2014/08/18(月) 22:04:09.99google-translate-listen-program にシェルスクリプトのパス指定しておけば
ファイルにURL追記しながら QuickTime Player で聴ける。
#!/bin/sh
echo $1 >> ~/google-translate-listen.txt
open -a "/Applications/QuickTime Player.app" $*
0183名無しさん@お腹いっぱい。
2014/08/19(火) 02:11:13.230184名無しさん@お腹いっぱい。
2014/08/19(火) 05:28:45.300185名無しさん@お腹いっぱい。
2014/08/19(火) 12:21:24.94とか、やってる人もいるみたいなのでそれなりの需要があるんじゃないかな
0186名無しさん@お腹いっぱい。
2014/08/19(火) 13:33:15.340187名無しさん@お腹いっぱい。
2014/08/19(火) 15:27:52.18transpose-char はよく使う。
あと、プログラミングの際に命令文の前後を入れ替えるときは
transpose-sexp も便利だと思う。
「マーク開始」→「カーソル移動」→「領域キル」→「カーソルを移動」
→「ヤンク」がキー一発でできるので便利。
0188名無しさん@お腹いっぱい。
2014/08/19(火) 17:52:16.88transpose-words も引数の順番変える時便利そうね
0189名無しさん@お腹いっぱい。
2014/08/20(水) 21:23:05.75びっくりした。
長い行があるときだけ表示されるのかと思ったけど、常に表示されるみたいから
速攻非表示にしたよ。
0190名無しさん@お腹いっぱい。
2014/08/20(水) 23:38:51.44でも、長い行の折り返しを無効にした時に途方に暮れる事があるから必要だ
不要な時に消えるようになればいいけど
0191名無しさん@お腹いっぱい。
2014/08/21(木) 07:06:21.89最近のemacsはスペルチェックの機能が最初からついてたりするの?
0192名無しさん@お腹いっぱい。
2014/08/21(木) 07:09:51.640193名無しさん@お腹いっぱい。
2014/08/21(木) 16:09:19.05おれはLireOfficeと同じhunspellを使っている。
(setq ispell-program-name "hunspell")
(setq ispell-really-hunspell t) ;hunspellの拡張を使う
0194名無しさん@お腹いっぱい。
2014/08/21(木) 21:37:03.470195名無しさん@お腹いっぱい。
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 の勉強を重ねたいと思います。
ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています