Emacs

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

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に感謝します!

4
emacsでjsx(react)ファイルを編集するには?
js2-modeを使用しましたが、javascriptでhtmlを適切にインデントしません。このレポジトリhttps://github.com/jsx/jsx-mode.elを見つけましたが、反応するためではなく、他のjsxのためです。 jsxファイルを使用してReactアプリケーションを編集するには何を使用しますか?

2
引用をマークアップする方法は?
org-modeで引用符を指定して、githubで適切にレンダリングするにはどうすればよいですか?マークダウンでは、次のようにレンダリングされます。 2つのことは無限です:宇宙と人間の愚かさ。そして、私は宇宙について確信がありません。- アルバート・エンシュタイン 前もって感謝します。
19 org-mode 

1
WindowsにEmacs 25.1用のGnuTLSをインストールするにはどうすればよいですか?
Windows 10マシンでEmacsを24.5から25.1にアップグレードしました。Emacs 24.5ではGnuTLSを正しくセットアップし、25.1では私が覚えていたと思ったことをやった: GNU Emacs Webサイトのダウンロードページから、事前に構築されたEmacsバイナリを入手しました。32ビットWindowsを使用しているので、Emacsのi686バージョンを入手しました。 GnuTLSのコピーをezwinportsから取得し、zipファイルをEmacsと同じディレクトリに抽出しました-gnutls zipの編成方法は、gnutlsのdllとexeの両方がEmacs exeと同じディレクトリに配置されることを意味します。(今回はバージョン3.3.11を入手しました。バージョン24.5のEmacsを使用していたときに、どのバージョンのGnuTLSを使用したか覚えていません。) 今回はうまくいきませんでした。gnutls-available-pを返しますnil。パッケージマネージャは、httpリポジトリではなくhttpリポジトリにのみ接続できます。ewwもhttpsを処理できません。 Emacs 25.1用にGnuTLSをセットアップするにはどうすればよいですか?24.5で行ったことを思い出しませんか?たぶん、GNU Emacs WebサイトからのバイナリはGnuTLSなしでコンパイルされており、24.5では実際にどこか別の場所からバイナリを取得しました...

3
Magit、システムのsshエージェントを使用する方法とパスワードを要求しない方法
MagitのFAQとWikiをグーグルで読んでみましたが、これを理解することはできません。Windowsについての答えしか見つかりません... 実行中のssh-agentセッションを使用し、プッシュの実行時にパスワードを要求しないようにMagitを構成するにはどうすればよいですか。 私はlinuxを実行しています。端末でssh-agentを起動してからキーをロック解除すると、毎回パスワードを入力しなくてもgit pushなどを実行できます。 Env: Arch Linux Emacs 24.4 キーが追加されたssh-agent。最初に開いた端末でロックを解除します。 編集:私はパスフレーズを使用するつもりでした、あなたはsshキーなどを知っています。 そして、私はBitbucketにプッシュしていますが、重要な問題はMagitが私のsshエージェントを話したり認識したりしていないことだと思います。 たぶん設定する設定があり、それを実行していることを伝えますか?
19 magit  linux  ssh 

3
いつ/なぜprognを使用する必要がありますか?
progn経験豊富なEmacsユーザーの構成ファイルを参照するときに、かなり頻繁に使用されるのを見てきました。のこの素晴らしい説明prognを見つけましたが、私が本当に興味を持っているのは、この関数を使用する利点は何ですか?たとえば、次のスニペット(Sacha Chuaの構成から取得)をご覧ください。 (use-package undo-tree :defer t :ensure t :diminish undo-tree-mode :config (progn (global-undo-tree-mode) (setq undo-tree-visualizer-timestamps t) (setq undo-tree-visualizer-diff t))) 上記の構成とこれに大きな違いはありますか? (use-package undo-tree :defer t :ensure t :diminish undo-tree-mode :config (global-undo-tree-mode) (setq undo-tree-visualizer-timestamps t) (setq undo-tree-visualizer-diff t)) 最初の例はより構文が多いにも関わらず、よりクリーンであるように感じます。また、私の直感では、を使用することで何らかのパフォーマンスの向上があるかもしれませんがprogn、よくわかりません。洞察力をありがとう!
19 lisp 

1
EmacsはすべてのOSクリップボードでEvils Visualモードに貼り付けられません
セットアップ: GUIバージョンGNU Emacs 25.0.50.1(x86_64-w64-mingw32)on 2015-07-25 on KAEL EmacsW64 からコンパイル。 MELPAの最新バージョンのEvilを使用したパッケージEvil Windows 7 x64ビット。 状況: Evilのみを有効にして空のEmacs設定でテストしました。Windowsアプリケーションからテキストをコピーします。それから私は、Emacsの内部に貼り付けnormal modeてp。テキストが表示されます。 次に、Windowsアプリケーションに切り替え、別のテキストを選択してコピーします。Emacsに戻り、テキストを視覚的に選択して、内部に貼り付けますvisual mode。ただし、領域内のテキストは、Windowsクリップボードのテキストに置き換えられません。 これはデフォルトのVimではありません。視覚的なテキストが最新のコピーアクション(この場合はWindowsクリップボード)に置き換えられるように構成するにはどうすればよいですか?


1
GitHubマークダウンモード
GitHub Flavored Markdown用のEmacsモードはありますか? GitHub Flavored Markdown は、従来のMarkdownに多くの機能を追加します:アンダースコア処理、URLオートリンク、取り消し線、およびテーブル。これらの追加機能(特にテーブル)をサポートするEmacsモードがあると便利です。
19 markdown  github 

1
もつれたコードブロックでflyspellがトリガーされることなく、組織バッファーでflyspellを使用するにはどうすればよいですか?
次のようなEmacsの組織バッファーを想像してください。 * Title Some text describing the title and the codew (sic) and whatnot. #+BEGIN_SRC emacs_lisp (setq backup-by-copying t) #+END_SRC flyspellで組織バッファをチェックし(スペルミスをキャッチする)、#+ BEGIN_SRCマークと#+ END_SRCマークの間のコンテンツを無視するようにします。どのようにそれについて行くのですか?

2
時計レポートから「\ emsp」を削除することはできますが、インデントは保持できますか?
「\ emsp」を単なるスペースに置き換えることは可能ですか? つまり、時計レポートには、これらの「\ emsp」がたくさんあります。(以下の例を参照してください。) ':indent nil'を設定することでそれらを取り除くことができます。しかし、これはすべてのインデントを完全に削除するため、望ましくありません。物をエクスポートする場合、それらを取り除くこともできます。しかし、アジェンダビューではレポートをエクスポートせず、\ emspは視覚的に気を散らすだけです。 これまでのところ、ここで説明するように、フォーマッタを介して「TODO」キーワードを削除できました。しかし、フォーマッタは「\ emsp」を認識していないようで、削除できません。後で追加されるようです。 |-----------+-------------------------------------------------------------------+---------+------| | dev.org | *File time* | *9:54* | | | | Dev | 9:54 | | | | \emsp Configure VMs for testing [[elisp:(my/goto-parent)][parent]] | | 5:03 | | | \emsp test if DND works in outline view in Mars …
19 org-mode 

1
orgmodeコードブロックでデフォルトのヘッダー引数を指定する方法
次のように、組織ファイル内のコードブロックにデフォルトのヘッダー引数を設定します。 #+PROPERTY: header-args :session *my_python_session* #+PROPERTY: header-args :results silent #+PROPERTY: header-args :tangle yes 私のコードブロックは次のようになります。 #+BEGIN_SRC python import pandas as pd #+END_SRC ただし、org-babel-tangleこのバッファーから呼び出すと、filename.orgからTangled 0コードブロックが取得されます。行:tangle yesの最後に追加すると、#+BEGIN_SRCを呼び出しorg-babel-tangleたときにコードブロックがエクスポートされます。 :tangle yes各コードブロックに設定する必要がないと思います。何が間違っていますか?

2
大きなバッファーで `line-number-at-pos`を取得するより高速な方法
この機能line-number-at-pos(約50回繰り返した場合)は、ポイントがバッファーの終わり近くにあるときに、セミラインバッファー(たとえば50,000行)で顕著なスローダウンを引き起こしています。スローダウンとは、合計で約1.35秒を意味します。 100%のelisp関数を使用して行をカウントし、バッファーの先頭に移動する代わりに、モード行に表示される行番号に関与する組み込みのC機能を活用するハイブリッドメソッドに興味があります。モードラインに表示される行番号は、バッファのサイズに関係なく、軽い速度で発生します。 テスト関数は次のとおりです。 (defmacro measure-time (&rest body) "Measure the time it takes to evaluate BODY. http://lists.gnu.org/archive/html/help-gnu-emacs/2008-06/msg00087.html" `(let ((time (current-time))) ,@body (message "%.06f" (float-time (time-since time))))) (measure-time (let* ( line-numbers (window-start (window-start)) (window-end (window-end))) (save-excursion (goto-char window-end) (while (re-search-backward "\n" window-start t) (push (line-number-at-pos) line-numbers))) line-numbers))


1
Emacsを別のグラフィカルツールキットではなくグラフィカルツールキットでコンパイルする利点はありますか?
オプションはgtk、gtk2、gtk3、明idまたはアテナ、モチーフのようです。もちろん、視覚的な違いがあり、1つのツールキットが他のツールキットよりも好みに合っている場合があります。それとは別に、パフォーマンスや機能に関して他に違いはありますか?他のアプリケーションとの視覚的な一貫性のために、私はgtkを使用してEmacsをコンパイルしていましたが、lucidを使用してコンパイルしたとき、gtkよりもlucidの方がレンダリングが高速であると感じました。

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