タグ付けされた質問 「start-up」

3
起動時間を短縮するにはどうすればよいですか?
起動時間を短縮するためにできる基本的なことは何ですか? その点で、特に注意すべき点はありますか? 注:起動時間は、Emacsをあまり頻繁に起動せず(セッションごとに1回)、実行中のインスタンスでファイルを開くことで軽減できます。この質問は、セッションの開始時、またはEmacsの起動が必要な他の時のために、起動時間を最小限にすることに関するものです。 Stack Overflowで回答された同じ質問もご覧ください。質問と回答のスコアは50を超えており、30の「お気に入り」のブックマークがあります。ここでの良い答えは、Stack Overflowで利用できるものを超えるはずです。

2
package-initialize:間違った型引数:arrayp、nil
通過しながら、C / C ++エディタとしてEmacsに、私は私の中に含めるために次のコード行に出くわした~/.emacsに接続するには、ファイル melpa archivesのパッケージのインストールに (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (package-initialize) これらの行をemacsに保存した後、emacsを起動するwrong type argument: arrayp, nilと、ミニバッファー領域に 私が試したとき$ emacs --debug -init、私は得た: Debugger entered--Lisp error: (wrong-type-argument arrayp nil) package--add-to-archive-contents(nil "melpa") package-read-archive-contents("melpa") package-read-all-archive-contents() package-initialize() eval-buffer(#<buffer *load*> nil "/home/anupam/.emacs" nil t) ; Reading at buffer position 905 load-with-code-conversion("/home/anupam/.emacs" "/home/anupam/.emacs" t t) …
29 package  start-up 

2
多くのパッケージにもかかわらず、どうすれば起動時間を改善できますか?
TL; DR膨大な量のパッケージがあるため、起動時間が遅くなります。それが事実であると思わない場合は、読み進めてください。 私のEmacsの起動時間は非常に短いです。を使用せず、ほとんどすべてのコードが遅延するように、use-package大量のフックとautoloadsを設定するだけです。現実には、それはクレイジーな混乱のように見えますが、全体が通常0.5秒未満で読み込まれます。 しかし、時間が経つにつれて、起動時間が微妙に遅くなり、不可解になっていることに気付きました。最終的には、起動時間が1秒以上になるまでになりました。私はついに十分になり、問題の根本を掘り下げました。私は最終的に私の全体のコメントアウト~/.emacsファイルを、その起動時間だったまだ ≥1秒。実際、わずか0.2数秒で削り取られ、時にはそれ以下になりました。その後、私は試しemacs -qてみましたが、起動時間は〜0.1秒でした。 Elispマニュアルのこのセクションを調べてみると、emacs -q起動時間を大幅に短縮した理由がわかりました。明らかにemacs -q、起動時にEmacsが3つのことを行うのを停止します。 初期化ファイルをロードする default.elファイルをロードする 呼ぶ package-initialize 私の全体をコメントアウトして~/.emacsもほとんど何も起こらないので、すでに初期化ファイルを除外しています。私はdefault.elファイルを使用しないので、それも除外されます。これがpackage-initializeパフォーマンスヒットの原因となっています。 なぜpackage-initializeそんなに多くのスタートアップ時間を費やしているのでしょうか?それが私が自分に尋ねた最初の質問でした。すべてをオートロードしませんか?はい、そうです。しかし、それはまさに問題です。 「ポスト」パッケージは、自動ロードファイルの読み取りとロードパスの設定で構成されることを説明するこの投稿を見つけました。これは、多くのパッケージを持っている場合、読み込むべきオートロードファイルと設定するパスが多いため、明らかにI / Oペナルティが発生します。残念ながら、これがないと、オートロードを管理するタスクはユーザーの手に落ちます。言い換えれば、package.elファイルとパスを自動ロードするためにファイルシステムをクロールさせずに、それを自分で管理する必要があり、それは退屈でエラーが発生しやすいプロセスになる可能性があります。 私はその道を進んで行きたくない。現在116個のパッケージがあり、そのうち107個はELPAからのもので、25個は依存パッケージです。この途方もない数が、私のパフォーマンスをひどく低下させているのだと確信しています。しかし、パッケージを削除したくないので、私は困惑しています。 このような状況で、雷の起動時間を取り戻すための救済策はありますか? 更新: この問題を解決するために、Stefan Monnierによるいくつかのパッチ(これらのパッチの説明はこちら)について、メーリングリストで新しいスレッドを開始しました。誰でも彼のパッチをテストしてフィードバックを送ることができます。emacs-devel 別の更新: Stefan Monnierはこの問題にもう関心がないか、私のメッセージを受け取っていないようです。私は前者を信じる傾向がありますが、それは問題ありませんが、そうであれば彼からのある種の反応に感謝します。とにかく、この問題のために彼がこれまでに作成したコードは非常にうまく機能しています。彼の最新のパッチは、ここ(Emacs 25.3用)およびここ(Emacsマスターブランチ用)にあります。彼のパッチのおかげで起動時間に良い改善が見られ、カスタマイズの機能を削除することなく可能な限り最適化されているので、起動時間に満足しています。これらのパッチがいつかEmacsメインラインに組み込まれることを望んでいましたが、私(または他の誰か)は今はStefanの代わりにトーチを取る必要があると思います。メーリングリストには、著作権の割り当てとライセンスに関するスパーが少しありました。最初はそうしなかったが、リチャード・ストールマンや他の人からのコメントのために、著作権の譲渡は当初考えていたほど制限的ではないかもしれない。さらに、著作権の譲渡に代わるものとして、作品をパブリックドメインにコミットすることも可能かもしれません。 いずれにせよ、これまでのパッチについてStefanに感謝します!これらの変更の開発を続けていただければ幸いですが、そうでない場合は大丈夫であり、いつか開発を続けることができます。また、この問題を解決するための洞察と貢献を提供してくれたすべての人に感謝します。 さらに別の更新: うわー、この機能がついに登場し、Emacs 27に搭載されるようです。StefanMonnierに感謝します!

3
スプラッシュ画面をrecentfのリストに置き換えます
スプラッシュ画面は最初は便利ですが、もっと便利なものが必要です。事前に定義されたファイルが開かれていない場合、emacsの起動時に最近開いたファイルのリストが表示されます。さらに良いのは、helm-recentfウィンドウにできる場合(helmパッケージを使用)
18 start-up  recentf 

1
`gc-cons-threshold`を非常に高く設定し、アイドル時にガベージを収集することにはマイナス面はありますか?
次の2行をmyの先頭に追加しましたinit.el。 (setq gc-cons-threshold (eval-when-compile (* 1024 1024 1024))) (run-with-idle-timer 2 t (lambda () (garbage-collect))) つまり、割り当てられたメモリの800kbごとにガベージを収集するのではなく、Emacsはアイドル状態、つまり一時停止が気にならないときに収集します。(1GBのメモリを割り当てた後にも収集されますが、そうなるとは思いません)。 これにより、起動時間が約3分の2短縮されました。理論的には、一般にパフォーマンスも改善するはずです。このアプローチには欠点がありますか?

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 

3
Emacsはどのようにして多くのelファイルで瞬時に起動するのですか?
すべてのEmacs'erが知っているように、私は現在、広範なドットEmacs構成に苦しんでいます。私のすべてのパッケージはのコンテナ内にありuse-package、すべての.elファイルをバイトコンパイルしました。それでも、Emacsは6.4秒で起動し、その後残りのパッケージ(そのうちの約40)をロードします。 長い起動時間を解決する別の方法を考えていたところ、何かに気づきました。デフォルトのEmacs(ユーザー構成なし)は.el、すべてのEmacsに含まれている多くのライブラリーを使用します。それらはにあり\shares\emacs\version number\lisp\ます。 多くのlispファイルがあっても、1秒で開始できます。デフォルトのEmacsに含まれている多くのパッケージのファイルを調べていたところ、Emacsが1秒以内に起動する理由を説明できる異常なものは何も見つかりませんでした。何千もの.elファイルがあったとしても、Emacsがそれをどのように管理しているかを誰かに教えてもらえますか?
11 start-up 


1
Emacsデスクトップ保存モード-以前のデスクトップが完全に復元されたときにのみデスクトップを保存します
私には次のものがあります.emacs: (desktop-save-mode 1) (setq desktop-restore-eager 10) (setq desktop-save t) 多くの場合、多くのバッファを開いています(100程度)。これは本当に役立ちます。emacsは、他のことでビジー状態でないときにのみバッファをロードするためです。 さて、ときどき次のことが起こります。ラップトップをシャットダウンする前に、emacsを閉じます。次に、もう1つのファイルをすばやく編集する必要があることに気づきました。もう一度emacsを開き、編集を実行してから閉じます。これが短時間内に発生した場合、desktop-save-mode以前に保存されたすべてのバッファを復元できませんでした。この場合、再びemacsを閉じると、復元されたバッファーのみが保存され、最初のシャットダウン前の状態が失われます。 desktop-save以前に保存されたデスクトップが完全に復元された場合にのみ、これを実行する方法はありますか?
10 start-up  desktop 

1
emacsの起動後にシェルを自動的に起動するにはどうすればよいですか
Emacsを使用する主な理由の1つは、sshリモートマシンにアクセスした後に強力な環境を取得することです。Emacsを起動した後に私が最初に行うM-x shellことは、コマンドラインを取得するために実行することです。Emacsの起動には少し時間がかかるため、初期化ファイルを解析した後、実行時にEmacsにシェルの起動を要求するオプションがあると非常に便利です(シェルフックをいくつか設定して、それぞれ別のことを実行します) )。理想的には、追加のオプションで実行できるようにしたいので、リモートマシンの初期化ファイルに特定のものを追加する必要はありません(bash必要に応じてエイリアスを設定できます)。このようなもの: emacs afile1 afile2 -startShell 実際、セキュリティで保護された接続の確立には約30秒かかるので、私が本当にやりたいことは、「シェルを起動する」をsshコマンド自体に組み込み、with を使用sshし-tて画面ベースのプログラムを起動することです。 ssh -t me@remote emacs afile1 afile2 -startShell Emacsのコマンドライン引数のドキュメントを確認しましたが、まだEmacsとLisp、およびカスタマイズを開始しており、コマンドライン引数を処理する方法をすぐに理解できませんでした。これを行うにはどうすればよいですか? (ユーザー@Nameが言及した関連質問eshell。)
8 shell  start-up 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.