タグ付けされた質問 「elisp」

他の言語、特に他のLisp方言と比較した、言語としてのEmacs Lispに関する質問。つまり、*言語*自体についての質問です。* Emacs Lispの*使用*についての質問には*使用しないでください*。Emacs Lispは、Emacsエディターが組み込まれているスクリプトおよびプログラミング言語です。

2
バッファローカル変数のデフォルト値は最初の `setq`まで設定されません
私がバッファローカル変数を定義し、fooそのデフォルト値が "a"であるとしましょう: (defvar foo "a") (make-variable-buffer-local 'foo) (default-value 'foo) ;; => "a" この直後に、次のコードを実行します。 (let ((foo "b")) (with-temp-buffer (message "foo: %s" foo))) ;; => "b" 結果は "b"です。これは、で設定した値letです。 setq変数の設定に使用する場合は、前とまったく同じコードを再実行します。 (setq foo "c") ;; => "c" (let ((foo "b")) (with-temp-buffer (message "foo: %s" foo))) ;; => "a" 結果は "a"で、これが現在のデフォルト値です。 質問:一時バッファの場合、のデフォルト値はfoo使用するまで設定されませんsetqか?そしてsetq、私が使用しない限りlet、他のバッファのデフォルト値を変更するために使用できますか? 編集:@npostavsが言ったように、これはmake-varible-buffer-local本当に意味することです。make-variable-buffer-local自分で使えば、setqその後いつでも使えます。しかし、これはのような「組み込み」のバッファローカル変数では本当にトリッキーになりますcase-fold-search。私がパッケージ作成者として外部でバインドcase-fold-searchし、でデフォルト値(ユーザーが設定したかどうかにかかわらず)を使用したい場合、デフォルト値が実際にあることを確認する前に使用する必要があります場合に使用されているユーザはそれを持っていない、彼/彼女に。バッファローカル変数の場合、おそらく、値を設定するときよりも常に安全であることを意味します。デザインやドキュメンテーションは改善できるのかしら。nilletwith-temp-buffersetqwith-temp-buffersetqinit.elsetqlet

3
Emacsに再起動せずに私のinitファイルのエラーを見つける方法は?
私の初期化ファイルの1つにエラーがあると、Emacsを起動すると次のような漠然としたメッセージが表示されます。 Warning (initialization): An error occurred while loading /Users/im/.emacs.d/init.elc: (wrong-type-argument listp helm-find-files-actions) 多くの構成ファイルのどれにエラーが含まれているか、どの行にあるかはわかりません。ファイルを検索しても役に立たない、というのは、関数helm-find-files-actionsが実際にはどのinitファイルにも含まれていないためです。問題のあるコード行を追跡するために、私はしなければなりません$ emacs --debug-init。 Emacsに問題のある行がどこにあるかを自動的に知らせる方法はありません$ emacs --debug-initか?ファイルを手動で2分割+評価できることはわかっていますが、さらに遅くなります。私のinitファイルの1つにエラーがある場合、Emacsが次のことができると、はるかに良いでしょう。 どのinitファイルを教えてください エラーを含む行番号を教えてください 理想的には、その初期化ファイルを開いて、問題のある行に連れて行ってください これはEmacsで可能ですか、それともファンタジーの世界に住んでいますか?

3
選択した行を上下に移動
私はしばらくの間日食を使用しており、特にAlt + Up / Downを使用して長方形のラインの選択を上下に移動する機能など、いくつかのショートカットが非常に便利であることに気付きました。私はemacsでこの機能を探していました。これまでのところ、次のスクリプトを見つけました。 (defun move-text-internal (arg) (cond ((and mark-active transient-mark-mode) (if (> (point) (mark)) (exchange-point-and-mark)) (let ((column (current-column)) (text (delete-and-extract-region (point) (mark)))) (forward-line arg) (move-to-column column t) (set-mark (point)) (insert text) (exchange-point-and-mark) (setq deactivate-mark nil))) (t (beginning-of-line) (when (or (> arg 0) (not (bobp))) (forward-line) (when (or (< …
7 elisp 

2
helm-helm-Mxをhelmソースに追加する
このようにヘルムに追加のソースをいくつか追加できます (setq helm-mini-default-sources '(helm-source-buffers-list helm-source-recentf helm-source-dired-recent-dirs helm-chrome-source hgs/helm-c-source-stars hgs/helm-c-source-repos hgs/helm-c-source-search helm-source-buffer-not-found)) これに追加する必要がある最後のものはhelm-M-xです。すべてのコマンドをデフォルトのソースに追加するだけです。これにより、単一の関数を呼び出すことができ、何にでも行くことができます。または、任意のコマンドを呼び出すことができます。 しかしhelm-M-x、それは関数であり、そのソースコードにはソースがありません。これを達成する方法について何か助けはありますか?
7 elisp  helm  m-x 

2
バッファー内の単語の頻度の統計を取得する方法
言語学者や他の多くの科学者にとって、テキストに現れる単語の頻度を分析することは素晴らしいツールです。一部の商用テキストエディタと一部のWebサイトは、このツールを提供しています。 単語の頻度分析。単語を頻度の降順で並べ替えます。このテキストの例 Emacs Stack Exchange is a question and answer site for those using, extending, or developing the emacs text editor. It's built and run by you as part of the Stack Exchange network of Q&A sites. With your help, we're working together to build a library of detailed answers …
7 elisp  text 



4
emacsパッケージのフィードバック/レビューをお探しですか?
それはメタっぽい質問ですが、この場合、グーグルは役に立ちません。 彼/彼女の新しいemacsパッケージに関するフィードバックを探す場所/方法/場所の標準化された習慣はありますか?特に-それを公開する前に。 私の特定のケースは、.emacsのより長く、おそらく再利用可能な部分の抽出とパッケージ化を開始したことです(最初の項目はテーマスイッチャーですが、いくつかのアイデアがあります)。他の誰かがこのコードの恩恵を受ける可能性がある(そしておそらく改善を提供する)可能性があるので、それをmelpaに公開することを検討します。それでも、私のelispの知識は非常に基本的なものであるため、スクリーニングなしでパッケージを提供することをためらっています。残念ながら、elispを知っている同僚はいません。 ここに投稿できる場所は私のパッケージですが、質問を確認できますか?このstackexchangeは正しい場所ですか?それとも、ニュースグループやメーリングリストでしょうか。

2
完全な `package-alist`値(切り捨て文字「…」なし)を表示するにはどうすればよいですか?
私がするときC-h v package-alist、私は次のようなものを見ます ((PACKAGE-NAME1 [cl-struct-package-desc PACKAGE-NAME1 (VERSION1) "DESCRIPTION1" (DEPENDENCIES-ALIST1) nil nil "LOCAL-INST-PATH1" (URL-ALIST1) nil]) (PACKAGE-NAME2 [cl-struct-package-desc PACKAGE-NAME2 (VERSION2) "DESCRIPTION2" (DEPENDENCIES-ALIST2) nil nil "LOCAL-INST-PATH2" (URL-ALIST2) nil]) ...) 省略記号が最後に付いた省略形ではなく、完全な alist を表示するにはどうすればよい...ですか?

1
いつトランザクションキューを使用するのですか?
tq-enqueue外部プロセスとの通信にトランザクションキュー(など)を使用するパッケージが少ないように見える理由はありますか?私が調べたパッケージのほとんどは、通常のフィルターメカニズムを好むようです。
7 elisp 

2
シンボルプロパティを使用する場合
シンボルをディレクトリに関連付ける必要があるとします。これは、少数のboundpシンボルに対してのみ行う必要があります。 私の見方では、2つの簡単な方法があります。 この関連付けを別の変数(alistまたはハッシュマップ)に格納します。これにより、各シンボルのディレクトリにでアクセスできるようになります(cdr (assq SYMBOL my-alist))。 これをシンボルプロパティに格納します。これにより、でアクセスできるようになります(get SYMBOL 'my-directory)。 これらのうち、この情報を追跡する慣用的な方法はどれですか?
7 elisp  symbols 


1
「アーカイブモード」からハードドライブにファイルを抽出します
を使用して、アーカイブ(* .zip、*。gzなど)から個々のファイルやマークされたファイルをハードドライブに(バッファーで開かずに)抽出する手段を探していますarchive-mode。(この新しい機能を許可する)そのメジャーモードの提案された変更は非常に高く評価されます。 http://www.gnu.org/software/emacs/manual/html_node/emacs/File-Archives.html

2
シンボルと文字列の比較におけるパフォーマンスの違い
ではsx.el、引数として、GETまたはPOST引数として渡したかどうかを確認する必要がある場合があります。 現在、文字列として渡される引数があり、(string= "GET" url-method)それをと比較するために使用してい"GET"ます。 シンボルに変更することによるelisp / byteコンパイルの利点はあります(equal url-method 'GET)か?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.