Emacs

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


1
diredバッファでは、そのディレクトリの最も重要なファイルにポイントを置きます
Emacsのディレクトリにアクセスする時間の90%は、最初に特定のファイルにポイントを移動して開くことです。多くの場合、開く必要があるファイルは非常に予測可能です。例えば: .texこのディレクトリにファイルがある場合、通常はに直接進みmaster.texます。 Androidプロジェクトのルートでは、通常はAndroidManifest.xmlです。 emacsパッケージを開発するディレクトリでは、ほとんどの場合、パッケージのメインソースファイルです。通常は、常にではありませんが、.elこのディレクトリにある唯一のファイルです。 これらのディレクトリを開くときに、これらのファイルに自動的にポイントを置く方法はありますか? これは多くの利便性を提供します(単にヒットするだけで開くことができますRET)が、他のファイルにアクセスする柔軟性を提供します。
14 dired 

2
キーシーケンスが実際に行うことを確認する方法
テキストを編集するときに、予期しない動作を時々観察します。私の最初の手段は、通常C-h k、特定のキーシーケンスによって呼び出されている関数を見つけるために使用することです。ただし、ドキュメントが観察された動作と矛盾する場合があります。これらの場合、私は通常、他のパッケージがその関数またはキーシーケンスにフックし、その動作を変更していると想定します。 キーシーケンスにどの 関数がフックしているかを調べるにはどうすればよいですか? 最近出会った一例は、"キーを押して、アクティブ領域の最初と最後に引用符が挿入されたことです。これはデフォルトのEmacsの動作ではないのではないかと疑われたため、C-h k "実際にどの関数が呼び出されているのかを調べていました。 describe-keyドキュメントには、関数があることを私に言ったself-insert-command、組み込みの関数である、と呼ばれていました。長い話を短くするために、ある程度の試行錯誤の後、私は行動がによって引き起こされたと判断することができましたelectric-pair-mode。将来、疑わしいパッケージを一度に1つずつオフにして犯人を見つけるよりも、この結論に達するより速い方法がありますか?
14 keymap  hooks 

3
コンソールとGUI用に2つの個別のemacsデーモンを起動します
通常、GUIでemacsを起動し、すぐにサーバーを起動します(server-start)。これで、ターミナルを介してemacsclient -n <file>、またはファイルブラウザから、既存のemacsセッションにドキュメントを簡単に開くことができます。 ただし、ときどき、を使用して端末内でemacsを実行しemacsclient -tます。これは、Gitコミットログの書き込み時または他の非常に小さなタスクの実行時に最も頻繁に発生します。それらのインスタンスでは、initファイルがemacsのGUIインスタンスにロードされたという事実は、TTY emacsに固有のカスタマイズがまったく得られないことを意味します。 走れることを知っている emacs -nw -q -l "some-custom-init-file.el" しかし、それはすべてのパッケージを毎回リロードします。両方の長所を活用できますか?「TTYデーモン」をセットアップして、ターミナル内で実行するのと、既存のemacsウィンドウでファイルを表示するのとで別々のカスタマイズを使用できるようにする方法はありますか?
14 daemon 

5
emacsにはプロセスビューアー(リソースマネージャー)または同等のものがありますか?
時折、emacsはCPU使用率100%に達することがあります。明らかにこれが発生すると、暴走プロセスに問題があります。 emacsで実行中のすべてのプロセスを表示する方法があるかどうか疑問に思っていますか? Unix htopのようなもの、インタラクティブなシステムプロセスモニターとビューア... htop
14 process 


3
アクティブなウィンドウのフリンジの色を変更する方法はありますか?
フォーカスされたウィンドウとそうでない残りのウィンドウを区別するために、このウィンドウのフリンジの色を変更したいと思います。フリンジキーワードによるカスタマイズの発見アクティブな色とアクティブでない色に異なる色を設定することなく、bgカラーを変更する方法のみを見つけました。まったく可能ですか?THX。

1
警告の抑制:自由変数(およびその他)への割り当て
emacs lispファイルをバイトコンパイルする際に、「自由変数への割り当て」警告を抑制するにはどうすればよいですか? 私は実際に、flycheckを使用するときに特定のバッファーでそれを抑制することに主に興味を持っていますが、これはバイトコンパイラに渡されることを理解しています。 また、抑制できるすべての警告/エラーのリストを取得することもできます。 更新: 完全を期すために、コンパイラの警告を無効にする理由は(言語に依存しない)多くの理由があることを明確にさせてください。いくつかの例:レガシーコードのリント適用フレームワークへの移行を容易にするため、スクラッチファイルおよびレシピをライブコンテキスト内で実行するため、優先度の高い問題を修正しながらノイズを除去するため、またはコンパイラーが間違っているため。

2
EmacsがLinuxよりもWindowsで起動するのに時間がかかるのはなぜですか?
構成: 1つのシステム デュアルブートとしてのOS Windows 10 デュアルブートとしてのOS Ubuntu 15.10 GUIを使用したEmacs 25.0.1 1つのdot-emacsファイルとすべてが.emacs.dフォルダーにあります(パッケージもにあります.emacs.d)。これらのファイルはすべて1つのDropboxフォルダーにあります。 Windowsの10日:私は、シンボリックリンクdot-emacsと.emacs.dWindowsでホームフォルダからDropboxの中の場所へ。 Linux / Ubuntu 15.10の場合:Ubuntuホームフォルダー(/ home / user /からDropboxの場所へのシンボリックリンクもdot-emacsあり.emacs.dます。 そのため、Emacsに関連するすべてのファイルは、さまざまなオペレーティングシステムにわたって1つのDropboxフォルダーに保存されます。 WindowsとLinuxは同じディスク上でデュアルブートとして実行されているため、同じハードウェアも実行されています。 WindowsでEmacsを起動すると、起動に7.4秒かかります。 LinuxでEmacsを起動すると、起動に2.3秒しかかかりません。 これは、グラフィカルGUIを備えたEmacsとバージョン25.0.1の両方で発生します。両方のオペレーティングシステムは、同じSSDドライブ上の同じコンピューターにあります。したがって、同じハードウェアでもあります。 次のことは、オペレーティングシステム(Windows 10とUbuntu 15.10)で同じです。 Emacsソフトウェア、バージョン25.0.1 構成ファイル(.emacs.d) 1つのハードディスク( `.emacs.d内のすべてのファイル)と両方のOSが同じSSD上にあります)。 ハードウェア 1つの違い: WindowsまたはLinux用のコンパイル済みEmacsは、それぞれWindowsまたはLinuxプラットフォームで実行されています。それが唯一の違いです。 UbuntuでのEmacsの起動時間がWindowsよりも著しく短い理由を理解するのに苦労しています。
14 start-up 

2
Trampモードは、sshに端末を使用するよりもはるかに遅い
私はOSX YosemiteでEmacsのMacportsフレーバーを使用しており、ここでTrampのすべてのスレッドを調べましたが、解決策はありません。 Trampは使用可能ですが、すべてのアクションの間に約100ミリ秒の遅延があります。ターミナル/ iTermを使用して同じサーバーにsshするだけの場合、この遅延は存在しないため、サーバー側の問題ではありません。 問題はファイルの編集に限られているのではないかと思っていましたが、それはどこにでもあることがわかりました。リモートシェルだけを使用している場合でも、M-x(ヘルムを使用して)押すだけでも、すべて遅延します。 解決策なしで接続する方法としてssh、scp、rsyncを試しました。またControlMaster auto、効果なしで試してみました。 他の誰かがこの問題を抱えていて、それを解決できましたか?
14 shell  tramp  remote 

1
特定の顔のテキストを挿入するにはどうすればよいですか?
このように作成された顔があります: (defface test-face '((t . (:height 2.0))) "A face for testing.") その顔にテキストを挿入したいと思います。しかし、これらの方法は顔なしでテキストを挿入します: (insert (propertize "text to insert" 'face 'test-face)) (let ((current-string "text to insert")) (put-text-property 1 (length current-string) 'face 'test-face) (insert current-string)) そして、最初にテキストを挿入してから、戻ってその上に顔を置くことも機能しません: (progn (insert "text to insert") (add-text-properties (save-excursion (backward-word 3) (point)) (point) '(face test-face))) 問題は、顔の定義ではありません。カスタマイズに行けば、すでに2倍の高さで表示されているからです。それでも、顔のインライン化も機能しません。 (insert (propertize "to …
14 faces  insert 

1
Emacs let-bound advice
コード内の関数を一時的にオーバーライドしたいと思います。 たとえば、次のことを考えてください。 (defun nadvice/load-quiet (args) (cl-destructuring-bind (file &optional noerror nomessage nosuffix must-suffix) args (list file noerror t nosuffix must-suffix))) (defun nadvice/idle-require-quiet (old-fun &rest args) (advice-add 'load :filter-args #'nadvice/load-quiet) (apply old-fun args) (advice-remove #'load #'nadvice/load-quiet)) (advice-add 'idle-require-load-next :around #'nadvice/idle-require-quiet) 動作しないもの: この。アドバイスを手動で有効または無効にすることを避け、Emacsのシングルスレッドの性質を信頼して物事を処理できれば、ずっときれいになります。 cl-letf元の関数を参照させないため、:filter-args通常行うことを実装できません。 cl-flet 他の関数の関数をオーバーライドすることはできません。 noflet避けたい外部パッケージです。(また、私が必要とする以上のことをします)

7
現在の行が「空」であるかどうかを確認する最も簡単な方法(空白を無視)?
現在の行が空であるかどうかを確認したいだけです(空白のみが含まれている場合は、空であると見なします)。 これが私の初期バージョンです。 (defun strip-text-properties(txt) (set-text-properties 0 (length txt) nil txt) txt) (defun is-current-line-empty () (interactive) (setq c-line (thing-at-point 'line)) (string-match "^\s*$" (strip-text-properties c-line))) 現在の行が空かどうかを確認する最も簡単な方法は何ですか?
14 whitespace 

3
組織モードでのLaTeX方程式のラベル付けと参照
これは、ラテックスおよびHTML参照へのOrgエクスポートに似ていますが、方程式に関するものです。 次のように、組織ファイルでLaTeX数学スニペットを使用したい * The Quadratic Equation The roots of $ax^2 + bx + c$ are given by \begin{equation} \label{eq:1} x = \frac{-b \pm \sqrt{b^2-4ac}}{2a} \end{equation} According to Equation \ref{eq:1}, ... LaTeXにエクスポートする\ref{eq:1}と、式へのハイパーリンクに正しく変わります。しかし、私は次の追加の動作を達成したいと思います: 組織ファイル内で、テキストをクリックすることができます\ref{eq:1}(テキストは必須ではありません\ref{eq:1}、ハイパーリンクが必要です)。方程式に移動できます。この機能はヘッダーに存在し[[The Quadratic Equation]]、Orgモードではクリック可能になります。 HTMLにエクスポートするとき、参照を保持する必要があります(実際には、ラベル(1)はHTMLエクスポートにも表示されません)。 これを達成する方法はありますか?
14 org-mode  latex 

2
emacs.dフォルダー内のセッションファイル
session.10110ac205e127d7e2143131143297155100000021880037私の.emacs.dフォルダのようなファイルがあります。私はそれについて何かをしたいのですが、何をすべきか理解できませんでした。 これらのファイルは何のためですか? emacsが複数のファイルを生成する理由
14 session 

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