私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレEmacs Part 49
emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
Common Lispよりも今はClojureの方が業務での採用率は高そうだ (あくまでもLisp系の中ではという意味)
ただClojureはCommon Lispやelispとはだいぶ違っててあまり好きになれんが
ただClojureはCommon Lispやelispとはだいぶ違っててあまり好きになれんが
稼働中に repl を叩けるのは大きいと思うけど
金融系こそ lisp じゃあるまいか
金融系こそ lisp じゃあるまいか
稼働中にreplはどこかでみたんだろうけど
金融系こそlispってのはどうしてそう思うの?
金融系こそlispってのはどうしてそう思うの?
open-line(C-o)すると同じバッファにありそうな行が挿入される
変なバグ踏んじゃったかな
変なバグ踏んじゃったかな
知らないうちにfill-prefixが設定されててそれが挿入されてただけだった
どうもLispが好きになれんのだが
慣れてないだけなのだろうか?
有難味が良くわからん
どのあたりが優れてるんだ?
慣れてないだけなのだろうか?
有難味が良くわからん
どのあたりが優れてるんだ?
みんなレベルが高い人が多くて
ライブラリを使わず書いちゃう人が多いのか
ライブラリちょっと弱くない
Lisp系列って
ライブラリを使わず書いちゃう人が多いのか
ライブラリちょっと弱くない
Lisp系列って
emacs24 の 正規表現では 先読み・後読み に対応してないみたいだけど
対応の予定ってあるのでしょうか。
対応の予定ってあるのでしょうか。
LispはEmacsを使って編集してると編集する事自体が気持ち良くなってくる
あとオブジェクト指向とか遅延評価や継続みたいな他の言語だと処理系が対応しないと出来そうにない事もマクロを使って実装出来る
ただネイティブ対応してる言語に比べると機能が不完全とか余計な記述が必要とかしょうがない面はある
要するに構文なんて無いに等しいがマクロのお陰で工夫次第で色々出来る奥深さがあるという事だな
あとオブジェクト指向とか遅延評価や継続みたいな他の言語だと処理系が対応しないと出来そうにない事もマクロを使って実装出来る
ただネイティブ対応してる言語に比べると機能が不完全とか余計な記述が必要とかしょうがない面はある
要するに構文なんて無いに等しいがマクロのお陰で工夫次第で色々出来る奥深さがあるという事だな
ちなみにEmacs公式ページにあるPareditの動画見ると気持ち良さが分かるかも
括弧の対応が面倒で嫌いだったけど
なるほど
それ使えば楽そうだね
また試してみます
なるほど
それ使えば楽そうだね
また試してみます
s.el dash.el cl-lib.el あたりが出てきたのが最近ってのは割と不思議に思う
それまで remove-if とか when-let すら、堂々と使えなかったって・・・
それまで remove-if とか when-let すら、堂々と使えなかったって・・・
Paredit使うと括弧の対応が楽になるんじゃなくて考える必要が全く無くなるんだ
こんな重要なものが標準で入ってないのが信じられん
お陰で色々亜種が氾濫しちゃってるけど
俺はSmartparensを自前キーバインド派だ
こんな重要なものが標準で入ってないのが信じられん
お陰で色々亜種が氾濫しちゃってるけど
俺はSmartparensを自前キーバインド派だ
ちなみに>>710のマクロ云々は全部On Lispに書いてある
読むのはスゲー大変だが…
読むのはスゲー大変だが…
シンボルlexical-bindingに非nilを設定した場合の動作について、
NEWSにはdolistやcl-labels/labelsでの注意点が記述されていますが、
それ以外に注意することはありますか?
lexical-letでは不可能だったことが(setq lexical-binding t)でできるようになった、
あるいは同様の記述でもlexical-letとは動作が異なる、というようなことはありますか?
NEWSにはdolistやcl-labels/labelsでの注意点が記述されていますが、
それ以外に注意することはありますか?
lexical-letでは不可能だったことが(setq lexical-binding t)でできるようになった、
あるいは同様の記述でもlexical-letとは動作が異なる、というようなことはありますか?
elispだとグローバル変数は全てhoge-countみたいにプリフィックスを付けるのが約束だから
let内でcountとか作ってもグローバル変数を上書きする事は皆無なんでlexical-letは使った事ないな
ちなみにmapcとかにクロージャーを渡すとレキシカルバインドでは問題無いけど
ダイナミックバインドだとエラーになる可能性は出て来る
だからレキシカルバインドだとエラーになる可能性が低くなるだけで特に気にした事はないな
返答になってないか
let内でcountとか作ってもグローバル変数を上書きする事は皆無なんでlexical-letは使った事ないな
ちなみにmapcとかにクロージャーを渡すとレキシカルバインドでは問題無いけど
ダイナミックバインドだとエラーになる可能性は出て来る
だからレキシカルバインドだとエラーになる可能性が低くなるだけで特に気にした事はないな
返答になってないか
xwidgetの件、Emacs内でブラウザが動くとかっていう紹介のされ方が多いけど、
アレはAtom動かしているElectronみたいにアプリウィジェットを提供する目標でもあるのでしょうか?
例えば 独特なUIな widget.el を置き換えるとか…
アレはAtom動かしているElectronみたいにアプリウィジェットを提供する目標でもあるのでしょうか?
例えば 独特なUIな widget.el を置き換えるとか…
GTK+はLinux以外で動かすのは難しいから標準になられても困るよ
WindowsでもMacでもGTK+版が標準になればxwidgetが標準に成り得るかもしれんが
WindowsでもMacでもGTK+版が標準になればxwidgetが標準に成り得るかもしれんが
>>716
括弧の対応を取るのは最低限のものは標準でも入ってた。lisp.elにある
キーにバインドされてないから自分で設定する必要があったり
必ず括弧の上にカーソルがないと駄目だったり使い勝手はちょっと微妙だけど標準という安心感はある
括弧の対応を取るのは最低限のものは標準でも入ってた。lisp.elにある
キーにバインドされてないから自分で設定する必要があったり
必ず括弧の上にカーソルがないと駄目だったり使い勝手はちょっと微妙だけど標準という安心感はある
[~/.emacs.d/init.el]
; ロードパスの設定
(setq load-path (append (list
(expand-file-name "~/.emacs.d/init.el")
(expand-file-name "~/.emacs.d/site-lisp" ")
)
load-path))
; ロードパスの設定
(setq load-path (append (list
(expand-file-name "~/.emacs.d/init.el")
(expand-file-name "~/.emacs.d/site-lisp" ")
)
load-path))
>>733
ロードパスにファイルを指定しても意味無くないか?
ロードパスにファイルを指定しても意味無くないか?
特定の文字列を強調したいのですが、いい書き方ありませんか?
(defface my1-keyword-face '((t :foreground "DeepSkyBlue2"))
"face for 正誤入力")
(defface my2-keyword-face '((t :foreground "OrangeRed1"))
"face for 正誤入力")
(defface my3-keyword-face '((t :foreground "orange1"))
"face for 正誤入力")
(font-lock-add-keywords 'text-mode
'(("0" . 'my1-keyword-face)
("2" . 'my2-keyword-face)
("4" . 'my3-keyword-face)))
(defface my1-keyword-face '((t :foreground "DeepSkyBlue2"))
"face for 正誤入力")
(defface my2-keyword-face '((t :foreground "OrangeRed1"))
"face for 正誤入力")
(defface my3-keyword-face '((t :foreground "orange1"))
"face for 正誤入力")
(font-lock-add-keywords 'text-mode
'(("0" . 'my1-keyword-face)
("2" . 'my2-keyword-face)
("4" . 'my3-keyword-face)))
>>733
一体何がしたいのか
一体何がしたいのか
initchart.el (https://github.com/yuttie/initchart) 試していたところ、
recentfのスタートアップ時、高々25要素のファイル名リストをload-fileで読み込むのに、
100ミリ秒近くもかかっているんですけど、これって欠陥なんでしょうか?
試しに、local-variableコメントを付加しない、バイトコンパイルあり、load-fileの代わりに
requireを使うバージョンのrecentfに書き換えたら、5ミリ秒くらいになったのですが。
recentfのスタートアップ時、高々25要素のファイル名リストをload-fileで読み込むのに、
100ミリ秒近くもかかっているんですけど、これって欠陥なんでしょうか?
試しに、local-variableコメントを付加しない、バイトコンパイルあり、load-fileの代わりに
requireを使うバージョンのrecentfに書き換えたら、5ミリ秒くらいになったのですが。
recentf は tramp とのからみだったかで死ぬほど遅くなる的な記事を昔どっかで見たことあるな
>>739
おっしゃる通りです。数字ちゃんと取って貼った方が良かったですね。
25個のファイル名リストをsetqするelispを、各手段で読み込んだ実行時間
- load el (lvあり) 97.316182 ms
- load el (lvなし) 3.016255 ms
- require elc 2.263857 ms
- load elc 0.690197 ms
※ lv = local-variableコメント
※ elcファイルはバイトコンパイルの段階でlv情報が捨てられている
どうも local-variableコですメントのロードがかなり時間を食うみたい。
バイトコンパイルの効果は、1/4くらいと案外大きい。
requireは、パス探索が必要な分のロスが生じる。
問題はこのrecentf、わざわざいらないcoding情報を付加するためだけに
local-variableコメントなんか使っているんですよね・・・。
バイトコンパイルまで面倒見てくれる dump-variable-to-file なる関数が
標準であると良いんだけどなあ。
おっしゃる通りです。数字ちゃんと取って貼った方が良かったですね。
25個のファイル名リストをsetqするelispを、各手段で読み込んだ実行時間
- load el (lvあり) 97.316182 ms
- load el (lvなし) 3.016255 ms
- require elc 2.263857 ms
- load elc 0.690197 ms
※ lv = local-variableコメント
※ elcファイルはバイトコンパイルの段階でlv情報が捨てられている
どうも local-variableコですメントのロードがかなり時間を食うみたい。
バイトコンパイルの効果は、1/4くらいと案外大きい。
requireは、パス探索が必要な分のロスが生じる。
問題はこのrecentf、わざわざいらないcoding情報を付加するためだけに
local-variableコメントなんか使っているんですよね・・・。
バイトコンパイルまで面倒見てくれる dump-variable-to-file なる関数が
標準であると良いんだけどなあ。
>>719
*scratch*でmapcを使ってみたけどlexical-letとlexical-binding: tのletは同じ結果になった
emacs-version "24.5.1"
(require 'cl-lib) cl-lib
(setq lexical-binding nil) nil
(let ((count 4)) (mapc (let ((count 8)) (lambda (x) (print (incf count)))) '(a b c)))
5
6
7
(a b c)
(setq lexical-binding nil) nil
(let ((count 4)) (mapc (lexical-let ((count 8)) (lambda (x) (print (incf count)))) '(a b c)))
9
10
11
(a b c)
(setq lexical-binding t) t
(let ((count 4)) (mapc (let ((count 8)) (lambda (x) (print (incf count)))) '(a b c)))
9
10
11
(a b c)
*scratch*でmapcを使ってみたけどlexical-letとlexical-binding: tのletは同じ結果になった
emacs-version "24.5.1"
(require 'cl-lib) cl-lib
(setq lexical-binding nil) nil
(let ((count 4)) (mapc (let ((count 8)) (lambda (x) (print (incf count)))) '(a b c)))
5
6
7
(a b c)
(setq lexical-binding nil) nil
(let ((count 4)) (mapc (lexical-let ((count 8)) (lambda (x) (print (incf count)))) '(a b c)))
9
10
11
(a b c)
(setq lexical-binding t) t
(let ((count 4)) (mapc (let ((count 8)) (lambda (x) (print (incf count)))) '(a b c)))
9
10
11
(a b c)
>>741 超訂正
load-fileでもキャッシュが大きく有効するらしいので影響しないように取り直し
local-variableは関係なくて、load-fileの性能に問題ありなのか?
- load el (lvあり) 100 ms
- load el (lvなし) 98 ms
- load elc 92 ms
- require elc 2.4 ms
load-fileでもキャッシュが大きく有効するらしいので影響しないように取り直し
local-variableは関係なくて、load-fileの性能に問題ありなのか?
- load el (lvあり) 100 ms
- load el (lvなし) 98 ms
- load elc 92 ms
- require elc 2.4 ms
>>742
lexical-let はファイル先頭に書いた時だけ有効なんでなかったっけ
lexical-let はファイル先頭に書いた時だけ有効なんでなかったっけ
>>744
lexical-let は (require 'cl) で使えるようになる。
ファイルの先頭に書くのは -*- lexical-binding: t -*- で、lexical-binding が non-nil ならそのバッファがレキシカルスコープになる
lexical-let は (require 'cl) で使えるようになる。
ファイルの先頭に書くのは -*- lexical-binding: t -*- で、lexical-binding が non-nil ならそのバッファがレキシカルスコープになる
dired でファイル名を変更せずにディレクトリ
位置だけを移動させる方法を教えてください。
自分の理解の範囲では、
マークして R で移動させる方法で、
元と同じファイル名をタイプすればいいというところまではわかるのですが、
毎回ファイル名を入れなおすのが(特にファイル名が長い場合など)手間で
間違いも多いので、「同じファイル名でそのまま移動させる」方法があれば
教えてください。
環境は以下の通りです。
$ cat /proc/version
Linux version 3.13.0-91-generic (buildd@lgw01-21) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #138-Ubuntu SMP Fri Jun 24 17:00:34 UTC 2016
$ emacs --version
GNU Emacs 24.3.1
Copyright (C) 2013 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
位置だけを移動させる方法を教えてください。
自分の理解の範囲では、
マークして R で移動させる方法で、
元と同じファイル名をタイプすればいいというところまではわかるのですが、
毎回ファイル名を入れなおすのが(特にファイル名が長い場合など)手間で
間違いも多いので、「同じファイル名でそのまま移動させる」方法があれば
教えてください。
環境は以下の通りです。
$ cat /proc/version
Linux version 3.13.0-91-generic (buildd@lgw01-21) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #138-Ubuntu SMP Fri Jun 24 17:00:34 UTC 2016
$ emacs --version
GNU Emacs 24.3.1
Copyright (C) 2013 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
>>747
Rで移動先のディレクトリ名を入れてやれば良い
Rで移動先のディレクトリ名を入れてやれば良い
以下のようなフォーマットの index 付きの文字列を
`index文字'`space'`文字列'`space'`index文字'`space'`文字列'`space'`index文字'`space'`文字列'...
その index を区切り文字として分割して、結果を index 付きのリストとして変換したいんだけど
何かいい方法はないだろうか?とりあえず以下で実現はできた
(setq msg "1 ほげ 2 ふが 3 ほげほげ 4 ふがふが") ;; 元のインデックス付き文字列
(setq lst) ;; 出力用変数
(let ((i 0) idx)
(dolist (str (split-string msg " " t))
(if (= (% i 2) 0)
(setq idx str)
(setq lst (append lst (list (format "%s %s" idx str)))))
(setq i (1+ i))))
lst ;; -> ("1 ほげ" "2 ふが" "3 ほげほげ" "4 ふがふが")
`index文字'`space'`文字列'`space'`index文字'`space'`文字列'`space'`index文字'`space'`文字列'...
その index を区切り文字として分割して、結果を index 付きのリストとして変換したいんだけど
何かいい方法はないだろうか?とりあえず以下で実現はできた
(setq msg "1 ほげ 2 ふが 3 ほげほげ 4 ふがふが") ;; 元のインデックス付き文字列
(setq lst) ;; 出力用変数
(let ((i 0) idx)
(dolist (str (split-string msg " " t))
(if (= (% i 2) 0)
(setq idx str)
(setq lst (append lst (list (format "%s %s" idx str)))))
(setq i (1+ i))))
lst ;; -> ("1 ほげ" "2 ふが" "3 ほげほげ" "4 ふがふが")
俺はC-x m lで登録してあるお気に入りのフォルダーのリストに
移動してそこからファイルを選んでるけれど、これより効率な
やり方ないだろうな。これまでemacsが2回もクラッシュしただよ。
編集中だったものが全てパア。ウインドーズだからだろうな。
移動してそこからファイルを選んでるけれど、これより効率な
やり方ないだろうな。これまでemacsが2回もクラッシュしただよ。
編集中だったものが全てパア。ウインドーズだからだろうな。
前へ 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 46 (984) - [92%] - 2014/12/24 14:15
- Emacs Part 39 (990) - [92%] - 2012/2/9 19:45
- Emacs Part 42 (1001) - [92%] - 2013/6/9 5:15 △
- Emacs Part 43 (1001) - [92%] - 2013/12/14 11:30
- Emacs Part 44 (1001) - [92%] - 2014/2/8 8:01 △
- Emacs Part 41 (1001) - [92%] - 2012/12/24 4:15
- Emacs Part 45 (1001) - [92%] - 2014/6/23 9:45
- Emacs Part 47 (995) - [92%] - 2015/4/19 13:01
- Emacs Part 48 (997) - [92%] - 2015/12/9 15:15
- Emacs Part 34 (1001) - [84%] - 2010/6/21 19:45 ○
- Emacs Part 33 (1001) - [84%] - 2010/3/9 20:01 ○
- Emacs Part 32 (1001) - [84%] - 2009/12/20 2:04 ○
- Emacs Part 35 (1001) - [84%] - 2010/9/19 17:01
トップメニューへ / →のくす牧場書庫について