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

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

6
バッファ内のすべての正規表現の一致をリストとして取得します
今日のCode Golf Stack Exchangeサイトで、「Webページ上のすべてのリンクを取得する」という質問に対するClojureのこの回答を見つけました。 (->> (slurp "http://www.stroustrup.com") (re-seq #"(?:http://)?www(?:[./#\+-]\w*)+")) 派手なマクロなしで、それはちょうどこれです: (re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp "http://www.stroustrup.com")) これはリストを返します: ("http://www.morganstanley.com/" "http://www.cs.columbia.edu/" "http://www.cse.tamu.edu" ...) Emacs Lispで同様のことができますか? おそらくそのような関数(re-seq regexp (buffer-string))は返します'(firstmatch secondmatch thirdmatch ...)か?

4
インデントされたブロックの前にコードを追加または削除するときに、elispコードを自動的に再インデントする
次のようなelispコードがあるとします。 (+ 2 3▮(+ 3 4)) シンボルを追加または削除したときに、カーソルの後にsexpを自動的に再インデントする方法はありますか? を押した後SPC 4 SPC、私は自動的に取得します: (+ 2 3 4 ▮(+ 3 4)) 私は呼び出すことで、このマニュアルを行うことができますmark-sexpが続きますindent-region。これを行うより良い方法はありますか?

1
Emacsパッケージ開発に適したツールは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 テストに特に役立つツールについてはすでに質問がありますが、実際にコードを書くことについてはどうでしょうか?どのパッケージが開発をスピードアップしていますか?プロジェクトをすばやく簡単にナビゲートして理解するには、どの支援を使用しますか?

4
揃えられたキーワードをインデントする方法は?
おそらくClojureの影響を受け、データ構造としてプロパティリストをより頻繁に使用します。Emacsはほとんどの場合、このようにインデントします。 `(:token ,token :token-quality ,quality) , これは私が好むものです `(:token ,token :token-quality ,quality) . だから、誰かがすでにこれに取り組んでいるのだろうか?
17 elisp 

5
プロパティリストに関数をマッピングしますか?
Q:プロパティリスト全体で関数をマップする慣用的な方法は何ですか? さまざまなマッピング関数(mapcarおよびファミリ)は、リストなどのシーケンスに関数をマッピングします。プロパティリストを扱うとき、つまりリストに含まれる各プロパティ(最初の要素から始まる他のすべての要素)をマップしようとするとき、これらの関数をどのように使用しますか?マッピング関数は、個々の要素としてではなく、要素のペアでリストにアクセスする必要があるように思えます。 おもちゃの例として、プロパティリストを取得してすべてのプロパティ値を収集する方法を教えてください。代わりに関連付けリストである場合、それは非常に簡単です。 (mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c) ループを使用してこれを実行できると確信していますが、少し面倒で、もっと慣用的な方法があるのではないかと思っています。
17 elisp  mapping 

1
評価を中断し、emacs-lispデバッガーで現在のスタックを観察しますか?
メジャーモードフックなどのemacs-lisp関数の実行に予想よりも長い時間がかかっている場合、それを中断して現在のスタックを確認したいことがあります。理想的には、デバッガーで変数値などを見ることもできるようにしたいです。私は意図的にemacs-lispモードで実行しているコードについてではなく、emacsの通常の操作で実行されるコードについて話している。 emacsでemacs-lispコードの実行を直接中断するにはどうすればよいですか?どの関数をデバッグする必要があるかは事前にはわかりません。 たとえば、を入力するとC-g、実行が中断されますが、どの機能が中断されたかについても何もわかりません。
17 elisp  debugging 

2
ロードファイルとロードの違い
私は両方の機能のドキュメントを調べましたが、多くの情報を流していないようです。loadload-fileはインタラクティブなリストコンパイルされた関数であるのに対して、Cソースコードの組み込み関数であるという事実を除いて、実際の違いは何ですか。 init.el両方が同じ仕事をしているように見えるので、使用する推奨機能は何ですか?
17 elisp  functions 

1
組織モードバッファの最上位の見出しを個別のファイルにエクスポートする方法は?
org-modeバッファの各トップレベルの見出しを、対応するCUSTOM_ID+(サニタイズ)タイトルの値にちなんで命名された個別のファイルにエクスポートするにはどうすればよいですか? バッファに次のものが含まれているとしましょう: * Title of Heading 1 :PROPERTIES: :CUSTOM_ID: fibrillogenesis :END: Suspendisse potenti. Mauris ac felis vel velit tristique imperdiet. ** Sub-Heading Nullam rutrum. * Another Title for Heading 2 :PROPERTIES: :CUSTOM_ID: mitochondrion :END: Mauris mollis tincidunt felis. Sed bibendum. 最終結果は、エクスポート時に選択された形式(HTML、LaTeXなど)で、次のファイル名とコンテンツを含む2つの最上位見出しのそれぞれに1つずつ、2つのファイルを含むディレクトリになります。 最初にエクスポートされた見出しのファイル名: fibrillogenesis-title-of-heading-1.[ext] 元の最初のトップレベルの見出しに対応するエクスポートされたコンテンツ: * Title of Heading 1 :PROPERTIES: …

1
Emacs Lispのコメント規約
Emacs Lispリファレンスマニュアルの付録D.7には、コメントのヒントがいくつか記載されています。 ;インラインコメントには単一のセミコロン()を使用する必要があります。 ;;行コメントには二重セミコロン()を使用する必要があります。 トリプルセミコロン(;;;)は、「アウトラインマイナーモードによる見出しと見なされるコメント」に使用する必要があります。 ;;;;プログラムの主要セクションの見出しには、4つのセミコロン()を使用する必要があります。 シングルセミコロンとダブルセミコロンのユースケースは明確ですが、トリプルセミコロンとクアッドセミコロンの間に明確な線引きはないようです。 特に、提供されるEmacsパッケージの標準ドキュメントでauto-insertは、ファイル名や主要セクションなどの最高レベルの見出しであっても、トリプルセミコロンを使用し、4重セミコロンを使用しません。以下の例を参照してください。 ;;; test.el --- A test file. -*- lexical-binding: t; -*- ;; Copyright (C) 2016 ;; Author: John Smith ;; Keywords: ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public …
17 elisp  comment 

2
defcustomを適切に使用するには?
ほとんどのEmacsユーザーと同様に、変数を変更してモードをカスタマイズしました。私が思いつかなかったのは、カスタマイズ可能なあれこれの背後にあるプログラミング精神全体です。これは、eshellのソースコードの一部を調べ始めたときに実現しました。私はelispのプログラマーないんだけど、特にem-ls.el使用するようでdefcustom、defgroupこれはelispのコードが使用することをグローバルに定義された変数の影の世界のように見えるだろうなど、。だから、1つの質問は、defcustom(カスタマイズ可能な)グローバル変数を行う別の方法を使用していますか? 誰がdefcustom、背後にあるアイデア全体を適切に使用する(最初に理解する)方法、使用するとき、なぜ、いつ使用しないかについて点灯するように私に指摘できますか?たぶん、elisp初心者向けの初心者の例でしょう。
16 elisp  defcustom 

3
Elisp正規表現^および$ vs `および '
マニュアルでは、正規表現の特殊文字^とについて説明してい$ます。私が知っているほとんどの正規表現方言のように、それらは文字列の開始または終了に一致するようです。しかし、私もそこにあることを発見した`と'の文字が利用可能。ここにある説明に基づいて、文字列の開始または終了にも一致するようです。誰かがこれらの特殊文字の違いを、それらを使用する場合の例と推奨事項とともに説明していただけますか? の値を見ると、auto-mode-alist文字列の終わりに一致するように交換可能に使用されているようです: (... ("\\.scss\\'" . scss-mode) ("\\.ya?ml$" . yaml-mode) ...)

3
リスト内の要素番号を取得する方法は?
Q:リストで要素番号を取得するにはどうすればよいですか? nthリストから要素番号nを取得します。 (nth 2 '(a b c d)) ; => c 私は逆にしたい:要素を指定して要素番号を取得する: (some-function 'c '(a b c d)) ; => 2 見逃したかもしれませんが、そのような機能はありますか?これをどのように行うのでしょうか?
16 elisp 

3
キーワードの作成方法は?
Q:どのように作成して使用し:keywordsますか? 次のおもちゃリストにアクセスしようとする(単純な、明らかに)試みを検討してください。 (setf alist '((:key-1 "Key no. 1") (:key-2 "Key no. 2"))) (assq :key-1 alist) ; => (:key-1 "Key no. 1") (assq (make-symbol ":key-1") alist) ; => nil 最初のキーは期待どおりに機能しますが、2番目のキーは機能しません。明らかなmake-keyword機能がない限り、どのようにキーワードを作成して使用しますか? 当初の動機:文字列を、putプロパティであるシンボルであるルックアップキーに変換する必要があります。 この質問を定式化する過程で、回答の少なくとも一部に到達しました。これは個別に投稿しています。私は私の心がそれを改善することができるより明るい心を願っています。
16 elisp  symbols 

1
バッファの表示/フォーカス状態を知る方法は?
私は外部プロセスと通信する拡張機能を書いているので、バッファがフォーカスされていないときの「ちょっと元気」のリクエストの量を減らすことは当然のことです。 だから、認識するための最良の方法は何ですか: バッファが表示されフォーカスされているとき バッファーは表示されているがフォーカスされていない場合 バッファーが表示もフォーカスもされていないとき
16 elisp  buffers  focus 

2
一致したペア内にあるかどうかを検出する方法は?
Q:ポイントが文字の一致ペア内にあるかどうかを検出する一般的な方法はありますか? つまり、ポイントが一致したペアまたは任意に選択された文字の間にあるかどうかを判断できる一般的な述語関数(または何か)はありますか?ポイントtを!参照して、たとえば次のシナリオで評価するものについて考えています: "!" (quotes in general) ``!'' (LaTeX quotes) $!$ (LaTeX math) (!) (lisp parens) *!* (org emphasis) 編集:syntax-ppss良い出発点のようですが、どのように複数文字の一致するペア(たとえば、「LaTeX引用符」、さらにはmatched <b>html tags</b>)にそれを適応させるかは明確ではありません。一般的な解決策があるのか​​、それとも専用のパーサーが必要なのか疑問に思っています。
16 elisp  syntax 

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