Emacs

Emacsを使っている、拡張している、または開発している人のためのQ&A



3
フック関数を一度だけ実行する方法はありますか?
コンテキスト emacsクライアント/サーバー構成でafter-make-frame-functionsテーマを適切にロードするためにフックを使用しています。具体的には、これを作成するために使用するコードスニペットです(このSO回答に基づいています)。 (if (daemonp) (add-hook 'after-make-frame-functions (lambda (frame) (select-frame frame) (load-theme 'monokai t) ;; setup the smart-mode-line and its theme (sml/setup))) (progn (load-theme 'monokai t) (sml/setup))) 問題 新しいemacsclient -c/tセッションが開始されると、フックは新しいフレームだけでなく、以前のすべての既存のフレーム(他のemacsclientセッション)でも実行され、非常に迷惑な視覚効果をもたらします(テーマはすべてのフレームで再び読み込まれます)。さらに悪いことに、ターミナルクライアントでは、既に開いているテーマの色が完全に台無しになります。明らかに、同じemacsサーバーに接続されているemacsクライアントでのみ発生します。この動作の理由は明らかであり、フックはサーバー上で実行され、すべてのクライアントが影響を受けます。 質問 この関数を一度だけ実行する方法や、フックを使用せずに同じ結果を取得する方法はありますか? 部分的な解決策 @Drewの回答のおかげで、このコードが完成しました。しかし、まだ問題があります。ターミナルでクライアントセッションを開始すると、GUIはテーマを適切にロードせず、その逆も同様です。多くのテストを行った結果、動作はどのemacsclientが最初に起動するかに依存していることを認識し、さまざまなものを破棄した後、ロードされたカラーパレットに関連している可能性があると思います。手動でリロードすると、テーマはすべて正常に機能するため、初期構成のように毎回フックによって関数が呼び出されたときにこの動作が表示されません。 (defun emacsclient-setup-theme-function (frame) (progn (select-frame frame) (load-theme 'monokai t) ;; setup the smart-mode-line and its theme (sml/setup) …

5
フックを「グループ化」するにはどうすればよいですか?
末尾の空白の表示、バッファ境界の表示、虹色の区切り文字など、特定の機能があります。ほとんどのモードで有効にしたいのですが、プログラミングやテキスト関連のすべてのモードを有効にします(末尾のスペースを表示するため、たとえばediff-mode、例外ルールでグローバル化されたマイナーモードを使用する代わりに、メジャーモードと競合します。ほとんどのモードは、いずれかに由来しているためprog-modeかtext-mode、両方に該当の機能を追加prog-mode-hookしてtext-mode-hook作業を行い、しかし、そのような、本明細書以下ではない十分なモードがあるcss-modeかはLaTeX-mode。 とりあえずこれらのすべてのモードを含むフックを定義して、1つのフックに機能を追加するだけにします。呼び出しましょうnon-special-mode-hook(区別するためspecial-mode-hook)。そのために作られたすべての主要なモードで実行されるフックをどのように作成できますか?
14 init-file 


1
setqとdefvarの違いは何ですか
Emacs Lisp setqとdefvarEmacs Lispの違いは何ですか? /programming/3855862に同じ質問の一般的なLispバージョンがあります。Elispでも同じですか?
14 defvar  setq 

2
org-latex-export-to-pdfを使用してPDFにエクスポートする場合、\ author、\ date、および\ titleを非表示にします
私はLaTeXを初めて使い、組織モードファイルをPDFにエクスポートします。コマンドを実行するorg-latex-export-to-pdfと、エクスポートされたpdfの上部にタイトル、著者名、および日付が追加されます。生成されたLaTeXを見ると、それは次の行に由来すると思います。 \author{Ethan Skinner} \date{\today} \title{My Title} これらのプロパティなしでPDFをエクスポートするにはどうすればよいですか?私は両方使って試してみました VISIBLE-ONLYし、BODY-ONLY引数にorg-latex-export-to-pdf、これは私のために動作しませんでした
14 org-mode  latex  pdf 

1
「cのorg-babel-execute関数なし」および「c ++のno-org-babel-execute関数」
私のemacsバージョンは24.3.1です。 Emacsが読み取れるパスにob-C.el(ここから入手可能)を配置する必要があることを理解しています。 最初にその.elファイルから.emacsファイルにコードをコピーアンドペーストし、emacsを再起動しました。次に、(組織ファイル内の)Cコードブロックに移動し、(Cc Ccを使用して)それを実行しようとしました。ミニバッファは「Cのorg-babel-execute関数はありません」と述べました。C ++コードブロックを実行しようとしても、同じ話が続きました。Rとpythonは、私の組織ファイル内から完全に評価されることに注意してください。問題はこれらのコンパイルされた言語のみにあるようです。 次に、このob-C.elを〜/ .emacs.dディレクトリ内に配置して、問題が解決するかどうかを確認しました。emacsを再起動して確認しました。うまくいきませんでした。 それをディレクトリ〜/ .emacs.d / lispに入れて、次の行を.emacsファイルに追加しました (add-to-list 'load-path "~/.emacs.d/lisp/") (load "ob-C.el") (require 'ob-C) emacsを再起動した後、orgファイル内からのCまたはC ++コードブロックの評価はまだ機能しません。「C用のorg-babel-execute関数がありません」または「C ++用のorg-babel-execute関数がありません」という同じエラーが表示され続けます。 更新 emacsバージョンを24.5にアップグレードし、〜/ .emacs.dディレクトリにある以前のelpaおよびmelpaサブディレクトリをすべて削除しました。それは私が私の配置した順序に関係していると疑っています (custom-set-variables '(org-babel-load-languages (quote ((emacs-lisp . t) (C . t) (css . t) (sh . t) (awk . t) (R . t)))) そして ;; load the pathnames …
14 org-babel 

4
「自動保存…完了」メッセージを無効にする
ドキュメントを自動保存したいのですが、数分ごとに「Auto-saving ... done」というメッセージが表示されることはありません。 このメッセージを無効にする方法はありますが、自動保存機能はありませんか? 私は成功せずに次のことを試しました:https : //stackoverflow.com/questions/22511847/how-to-disable-auto-save-message

1
組織モードでコードブロックのデフォルト言語を設定する
文書ヘッダーの組織モードコードブロックのデフォルト言語を定義する方法はありますか?通常、1つの組織文書内では1つのプログラミング言語しか使用しないため、常に書くのは面倒です #+BEGIN_SRC python [...] #+END_SRC 次のようなことができるといいですね #+PROPERTY: header-args :session *mysession* :tangle yes :results silent :language python [...] #+BEGIN_SRC [...] #+END_SRC これを達成する方法はありますか?

2
マークダウンでセクションを折りたたむ
Emacsでの記述にはmarkdown-mode(と組み合わせてwriteroom-mode)使用します。マークダウンファイルは一般的に非常に大きくなるので、特定のセクションに長時間集中できるようにしたいと考えています。 どうすればこれを達成できますか?具体的には、現在のセクションで作業している間、他のセクション(見出しとそのテキスト)を非表示にするか折りたたみます。http://www.foldingtext.comはこのように動作します。

6
#+ BEGIN_SRC#+ END_SRCのショートカットを設定するにはどうすればよいですか?
組織モードのマニュアルを読みましたが、挿入するショートカットが見つかりませんでした。 #+BEGIN_SRC #+END_SRC ショートカットを設定するために〜/ .emacsに設定を作成する必要があると思いますか?または、ショートカットはありますが、知りませんでしたか? 私はemacsでRをたくさん使用しています。これを作成する別のショートカットを作成する方法はありますか? #+BEGIN_SRC R #+END_SRC
14 org-mode 

2
バッファ内のアクティブなマイナーモードのリストを取得します
現在のバッファーでアクティブなマイナーモードのリストを取得するにはどうすればよいですか? ドキュメントは(info "(elisp)Minor Mode Conventions")言う: Define a variable whose name ends in ‘-mode’. We call this the "mode variable". The minor mode command should set this variable. The value will be ‘nil’ if the mode is disabled, and non-‘nil’ if the mode is enabled. The variable should be buffer-local if …
14 minor-mode 


2
2つのリストを連結する方法は?
申し訳ありませんが、elispは私のベストではありません。この方法で文字列の2つのリストを組み合わせる必要があります。 ("a" "b" "c") + ("d" "e" "f") -> ("a" "b" "c" "d" "e" "f") さて、順序は重要ではないので、このコードを書きました。 (while lista (add-to-list 'listb (car lista)) (setq lista (cdr lista))) それは動作しますが、私はすでにこれを行う機能があるのだろうかと思っています。 どんな手掛かり?前もって感謝します。
13 list 

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