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

Emacsのグラフィカルなシステムレベルの「ウィンドウ」です。最初は1つのウィンドウを含み、通常はメニューバー、ツールバー、およびエコー領域も含みます。



2
バッファ、ファイル、ウィンドウ、フレームの違いは何ですか?
このサイト上の質問にポーズをするとき、人は時々について話「窓」その意味「のフレームを、」そして「バッファ」または「ファイル」その意味「のウィンドウを。」そう: Q: バッファ、ファイル、ウィンドウ、フレームの違いは何ですか? (このQ&Aコンボの精神でこの質問を提起しています:用語の正しい使用を促進するためです。)
28 buffers  window  frames  files 

6
ウィンドウレイアウトの切り替え
カスタムレイアウトを設定し、一時的に1つのファイルを全画面表示して、そのレイアウトを元に戻したい場合、手動でリフローする必要があります。 レイアウトを保存し、保存されたレイアウトを切り替えることができるプラグイン/ elispコードが欲しいです。 更新 皆さん、ありがとうございました。 勝者モードを使用するabo-aboの提案は本当に素晴らしく、ゼロ時間で動作するようになりました。 wasamasaは、私が聞いたことがない素晴らしいプラグインの束を提案し、レジスタの使用方法に関する情報を提供しました。 Jordon Biondoがレジスターの使用方法を説明してくれたので、実際に私が欲しかったのはこのようなものです。 皆さん、ありがとうございました。
24 window  package  frames 

2
フレームの下部に沿って単語のリストを表示しますか?
私は開いているすべてのemacsフレームの下部に沿って水平に別々の行に3つの単語のリストを表示したいと思います(上部も機能しますが)。私はこれを行う6つの方法を考えましたが、それらにはすべて問題があります: 最初に考えたのは、モード行に行を追加することでしたが、モード行で改行文字を使用することはできません。「^ J」に変換されるだけです。 私の2番目の考えは、画面の上部に行を持ち、ヘッダー行を使用することでしたが、改行文字もサポートしていません。 ウィンドウの最後の3行にオーバーレイを表示できましたが、これを堅牢にするのは難しいようです。ウィンドウの実際の端ではなく、ポイントがオーバーレイに達したときにスクロールをトリガーする必要があり、常に再配置する必要がありますオーバーレイはウィンドウスペースではなくテキストスペースにあるため、オーバーレイ。 フレームの下部に専用の窓を作ってみることができました。私はこれをコーディングしようとしましたが、あまり堅牢ではありません。フレームにすでに分割ウィンドウが含まれていて、Cx、1を無視するカスタムバージョンのdelete-other-windowsに再バインドする必要がある場合、正しく動作しないようです私の特別な窓と私は他のコーナーケースがあると確信しています。また、ヘルプウィンドウが開くと、水平方向の分割が既にあると考えられるため、垂直方向に開きます(技術的には存在しますが、1行のウィンドウのみを表示します)。 これに専用のフレームを用意することもできますが、その場合、設定はターミナルモードで動作しません。また、ウィンドウマネージャーのスクリプトを作成して、画面の下部に沿って保持し、選択不能にしてレイアウトに影響を与えないようにする必要があります。などなど 3行のテキストを直接ミニバッファーに挿入できます。これが部分的に機能するようになったので、ミニバッファーを増やして3行を収容し、表示できます。ただし、メッセージがエコーされるたびに、別のコマンドを発行して行が再表示されるまで、行は消えます。理想的には、3本の線とエコーエリアが重ならないので、両方を見ることができます。どのメッセージをエコーエリアに送信するかを確実にフィルタリングできれば、これは面倒ではありません-EmacsWikiで解決策を見つけましたが、emacs Cソースに由来するメッセージでは機能しないようです(具体的には、タイマーで頻繁に自動保存するため、メッセージを保存するファイルを取り除きます)。 コンテキストに関して、私の目標は、現在のバッファーで最も頻繁に使用される単語、現在のバッファーで最も近いポイント、および現在のバッファーで最近使用された単語を常に表示することです。私は音声コマンドを介してそれらをバッファに挿入できるようにするつもりです。したがって、「最近接2」と言って、ポイントに最も近い単語のリストから2番目の項目を選択して挿入することができます。私は、現在編集しているバッファが何であれ、単語リストが表示されることだけに関心があります。リストが常に表示される必要があるため、さまざまなコード補完モードで使用されるポップアップウィンドウを使用したくありません。

3
Emacsデーモンを使用する場合のターミナルフレームとグラフィカルフレームのさまざまなテーマ
Emacs24で次の動作を実現しようとしています。 実行中のサーバーに端末フレームで接続するかどうかに応じて、異なるテーマ(solarized-dark vs. solarized-light)を使用したい % emacsclient -t またはgtkフレーム付き % emacsclient -c これは古いEmacsで機能していたようですが、現在のEmacsには方法が見つかりませんでした。私はSO(例えば、確認alreday /programming//q/18904529/152439と回答)とメーリングリスト(例えば、https://lists.gnu.org/archive/html/help-gnu-emacs/ 2012-02 / msg00227.htmlおよびhttps://lists.gnu.org/archive/html/help-gnu-emacs/2012-02/msg00237.html)。 私の現在のセットアップは次のようになります。 (add-to-list 'custom-theme-load-path "~/.emacs.d/themes/solarized") (if (daemonp) (add-hook 'after-make-frame-functions (lambda (frame) (select-frame frame) (if (display-graphic-p frame) (load-theme 'solarized-light t) (load-theme 'solarized-dark t) ) ) ) (load-theme 'solarized-light t) ) この問題は、グラフィカルフレームを開いてからでターミナルフレームを開くとemacsclient -t、テーマsolarized-darkが新しいターミナルフレーム(正しい)と既に開いているグラフィカルフレーム(残すべき)の両方に適用されることです。理想的にはそのまま)。ターミナルフレームが既に開いていて、新しいグラフィカルフレームをで開くと、同等のことが起こりemacsclient -cます。 編集:現在のEmacs24でこれが不可能な場合、再び可能にする計画はありますか?
20 frames  daemon  themes 


2
ネイティブelispを使用してemacsをアクティブ化(前面に移動)できますか?(たとえば、別のプログラムで作業している場合)
特定の状況で、emacsを強制的にアクティブにし、葉状体に購入させ、フォーカスを「盗む」ことを望みます。たとえば、組織-ポモドーロを終えたとき、または重要な予定のリマインダー中。 今、私は外部の依存関係を減らすために、そうするための「ネイティブ」な方法を探しています。(Linuxだけで問題ありません。クロスプラットフォームの方が良いでしょう)。 これは、emacs内から技術的に可能ですか? [編集]解決策: GUIを使用している場合、これはうまく機能します。 (x-focus-frame nil) [歴史的な理由から...]私は試しました: フレームの可視性(機能しません) (make-frame-visible) そしてまた: (make-frame-invisible) (make-frame-visible) しかし、これらはEmacsがすでにアクティブになっている場合にのみ機能するようです。 フレーム上げ(機能しません) フレームを下げると、実際にはemacsが隠されるようです。 (lower-frame) ただし、タイマーからフレームを上げることはできません。すなわち、何も起こりません。 (raise-frame) 上げる前に「activate-emacs」が欠落しているようです。 [外部ソリューションに関する注意] 現在、(回避策/解決策として)私は少しelispを使用しています: (call-process "activateEmacs") そして、それぞれのbashスクリプト:(最初にシステムにxdotoolをインストールする必要があるかもしれません) #!/bin/sh sleep 0.5 xdotool search --onlyvisible --class emacs windowactivate
16 frames 

1
フレームの分割をブロックするにはどうすればよいですか?
現在、私はrubyとrspecを使用しています。コンパイルバッファを表示する別のモニターに別のフレームを持つというアイデアが本当に好きです。現在の設定では、「コード」フレーム(実際の作業を行う)と「テスト結果」フレーム(rspecの結果を見る)を使用しています。 問題は、「テスト結果」フレームでコンパイルエラーまたはファイルを開こうとすると、そのフレームでウィンドウが分割されることです。私が本当にやりたいのは、「コード」フレームで開くことです。 私はすでにオプションを使用していますdisplay-buffer-reuse-frames。コンパイル結果ウィンドウも設定しようとしましたが、dedicatedemacsが新しいウィンドウを開こうとするたびに、新しいフレームが作成されます(Helmを使用する場合は特にひどいです)。 これを達成する簡単な方法はありますか?
16 window  frames 

2
Emacs GUIモードでフルスクリーンを切り替える方法(Kubuntuでは「フルスクリーン」オプションがグレー表示されます)?
これはとても基本的な質問ですが、私は本当に途方に暮れています(Google検索はOS Xのソリューションを明らかにしただけです)。 最近まで、私は主にターミナルモード(デスクトップ環境のシェルウィンドウのフルスクリーンショートカットを使用してフルスクリーンを作成できます)を使用していましたが、フォントを選択できるようにしたいのでGUIに切り替えました。 助言がありますか?ウィンドウのタイトルバーのボタンを使用して最大化しても、真のフルスクリーンにはなりません。タスクバーとウィンドウのタイトルバーが表示されたままです。 編集:Full-screenオプションを追加する必要があります(つまり、ウィンドウのタイトルバーを右クリックした後)はグレー表示されます(以下の展示1を参照)。また、Full Screen下で設定を変更すると、Special Applications Settings自動的に無効になります。 このNo borderオプションは、ウィンドウのタイトルバーを非表示にするという点で部分的な解決策を提供します(ただし、タスクバーは表示されたままです)-キーボードショートカットを使用してKDEとemacsを指定してフルスクリーンを簡単に切り替える方法があると便利ですカスタマイズ可能性、私はKDEでありemacs n00bであるため、それはプロベイビーだと思います。 図表1: 更新: 誤ってカスタマイズした可能性のある設定から保護するために、(関連するプラズマファイルを削除して)kdeデスクトップをリセットしました。再起動Special Window SettingsするとForce、アプリケーションのダイアログボックスを使用して全画面モードになりました(ダイアログボックスは、メニューのAlt+F3-> More actions-> を呼び出してアクセスしますSpecial window settings)。(下のスクリーンショット。) 一般的な意味で、私はまだパプリカの答えを好みます。それはより良い解決策であるため、グローバルキーボードショートカットを作成することを含みます。他の人々が彼らのemacsがfull screenグローバルキーボードショートカットを受け入れることを拒否していることに気付いた場合に備えて、私のラウンドアバウトの修正を含めたかっただけです。 Special Window Settingsダイアログボックスから全画面モードを強制する:

1
ediffでフレームを作成しない
一般的に、私はフレームが嫌いです。今、私は使っています (setq ediff-window-setup-function #'ediff-setup-windows-plain) ediff開始時にフレームが作成されないようにするため。 ただし、ediff-show-registry新しいフレームを開くようなコマンドもあります。 フレームの作成を完全に無効にする方法はありますediffか?
14 frames  ediff 

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) ...

2
ウィンドウをフレームに「ポップ」する
多くの場合、現在のフレームにすべてのウィンドウに十分な不動産がないと任意に決定するまで、ウィンドウは自動的に分割されます。これが発生したら、手動でウィンドウを削除し、フレームを作成して、その削除されたウィンドウに切り替えます。これを行うelisp関数を作成するにはどうすればよいですか? 私は試した: (defun pop-window-into-frame () (interactive) (delete-window) (make-frame-command) (switch-to-prev-buffer)) しかし、何らかの理由で、これは私が考えるはずのことをしません。
13 window  frames 

1
バッファを切り替えるとき、emacsが自動的にフレームを切り替えるのを防ぎます
バッファーを切り替えると、バッファーが既に開かれている場合、emacsは既存のフレームに切り替えます。 私はidoを使用して切り替えるときにそれを防ぐ方法を見つけました: (setq ido-default-buffer-method 'selected-window) しかし、それだけでは十分ではありません。たとえば、Lispエラーが発生した場合、emacsは自動的にバッファ* Backtrace *に切り替え、すでに開いている場合はフレームを切り替えます。 emacsが既存のフレームに完全に切り替わるのを防ぐ方法はありますか?

3
フレームが削除されたときにバッファを殺す
フレームを閉じるとき、そのバッファを削除したいです。 バッファが他のフレームに表示されている場合、バッファを強制終了しないでください。 フレームに複数のバッファが表示されている場合は、何もしません。 これを設定する良い方法は何ですか?
12 buffers  frames 

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