Emacs

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

3
ローカルパッケージのオートロードを生成してアクティブにする方法は?
すべてのローカル/カスタム/個人用パッケージが正式にリリースされるべきではないことは明らかであり、組み込みのパッケージ管理サポートから利益を得るためだけにそれを行うのはばかげているでしょう。ローカルパッケージのオートロードを生成してアクティブ化する方法を知りたいですか?これはpackage.el、ELPAからインストールされたパッケージの場合と同様です。ホイールの再発明を回避するために、一部のローカルディレクトリ(それぞれがローカル/カスタム/個人用パッケージであるサブディレクトリを含む)がELPAであるように "偽装"する方法はありますか?またel-get、そのようなシナリオが、たとえばカスタムレシピを介してサポートできるかどうかについても私はオープンに思っています。 このタスクはかなり一般的であり、Emacsを上級レベルで使用する人ならだれでもその時点に到達するでしょう。誰かがこの分野での経験を共有できますか?

2
インクリメンタル検索で現在の一致を選択する(つまり、領域として)
で文字列を検索するときC-s、キーを押して検索モードを終了できるようにしながら、一致の選択を維持したいと思います。そうすれば、すぐに入力を開始して、最後の一致を置き換えることができます。 たとえば、次のドキュメントがあるとします。 The quick brown fox jumps over the lazy dog. 「lazy」を検索すると、emacsはその単語を次のように選択します(角かっこは選択、パイプはカーソルです): The quick brown fox jumps over the [lazy|] dog. ここで、を押すとreturn、emacsはカーソル位置を維持しますが、「lazy」の選択を解除します。 The quick brown fox jumps over the lazy| dog. これの代わりに、上記の2番目の状態のように、検索モードを終了し、現在の一致選択を維持するショートカットが必要です。

1
エコー領域にキーストロークをすぐに表示するにはどうすればよいですか?
エコー領域にキーストロークをすぐに表示するにはどうすればよいですか? たとえば、キーシーケンスを入力すると、C-u jすぐにエコー領域に表示されませんが、次にキーを押すkと、私が事前にタイプミスをしていたことがわかりました。それで、私がいくつかのキーを押してエコー領域のコマンドを呼び出してそれらをすぐに表示するとき、私のような初心者には役立つと思います。

3
Emacsclient:起動から常時1つのemacsプロセスで終了せず、GUIを非表示にする
emacsclientは長いパッケージの読み込み時間を適切に処理できるため、少なくとも1つのemacsプロセスを保持し、ほとんどの場合、1つのemacsプロセスのみをバックグラウンドプロセスとして開いて、GUIを非表示にします。 現在、私は.bashrcで次の関数を定義しています。 emc () { if [[ $# -eq 0 ]]; then emacs --eval "(suspend-frame)" & return fi args=($*); setsid emacsclient -c -e "(find-file \"${args[*]}\")" } また、.bashrcに次の行があります。 emc そのため、シェルを開くたびに、新しいemacsプロセスが発生します。 問題は、多くのシェルを開いた後、多くの不要なemacsプロセスが追加されることです。ただし、起動から常に1つのemacsプロセスを維持したいだけです。

2
Emacsが呼び出すプログラムからemacsclientを呼び出す
AucTexでPDFドキュメントファイルを表示するときに問題が発生しました。私はpdf-toolsEmacs内からPDFファイルを表示するために使用しemacsclient -n、デフォルトのpdf-viewerとして設定しました(Debian Linuxのxdg-mimeを介して)。これはほとんどの状況(Tex-documentation-texdoc ...)で正常に機能しますが、Auctex(C-c ?)の機能を壊します。 問題を1行のコードに絞り込みました。listingsパッケージのドキュメントを表示しようとすると、TeX-documentation-texdocこれが次のsexpに変わります。 (shell-command-to-string "texdoc --view listings") texdoc次にemacsclient、実際にファイルを開くための呼び出し(xdgを介してデスクトップを構成した方法に基づく)。ただし、この時点でEmacsがハングし、C-g制御を戻すために()を終了する必要があります。その後、新しいPDFは開かれません。emacsclientを直接呼び出そうとすると、同じことが起こります。 (shell-command-to-string "emacsclient -n tmp.pdf") どちらのコマンドもコマンドラインで機能します(つまり、emacsclient -n tmp.pdfおよび)texdoc --view listings。 私の質問は、このような場合、Emacs内からどのようにemacsclientを呼び出すのですか?(そして、私はでPDFファイルを開くことができることを知っていfind-fileます。ファイルを見つけるために外部プロセス(texdoc)を呼び出す必要があり、そのプロセスがemacsclientを呼び出すため、ここではオプションではありません)。


2
2つの文字列を互いに置き換える
文字列(たとえばstring1)のすべての出現箇所を別の文字列(たとえばstring2)に変更したいと思います。逆も同様です。正確には、私は長いドキュメントを持っていますが、これらの文字列は何度も発生します。私が現在行っていることは、string1-> string3、次にstring2-> string1、最後にstring3-> string2を置き換えることです。 これを行う関数がemacsにすでにあるかどうか疑問に思っています。他の解決策も歓迎します。 編集:これは実際にはコメントにリンクされている質問の複製です。しかし問題は、その質問の受け入れられた回答が常に機能するとは限らないことです(以下のコメントを参照)。その受け入れられた答えの作者が彼/彼女の答えを訂正するか、または他の解決策が出るまで待つ方が良いと思います。次に、質問を投稿する前に、質問をグーグルで検索したところ、その質問が表示されませんでした。重複する質問が2つあると便利な場合があります。これは、異なる表現を使用しており、ユーザーが重複した質問を見つけた場合、正しい質問を見つけることができるためです。 編集2:テキストを交換するための検索/置換のような機能の受け入れられた答えは今や問題ないようです。

2
ファイルを開かずにファイルのビューを提供するメジャーモードを作成する方法
netCDFファイルを検査するためのメジャーモードを記述したいと思います。これらは、サイズが数GBのバイナリファイルです。だから私はそれらをemacsで開けたくありません。 私が考えている相互作用は次のとおりです。 ユーザーがemacsの他のファイルと同様にnetCDFファイルを開きます。 コマンドラインプログラム(ncdump -h)がファイルに対して実行され、出力はemacsによって解釈されます。 問題は、emacsが実際にファイルを開くのを止める方法がないように見えることです。

1
折りたたまれたときに組織モードのコードブロックの背景色がにじむのを防ぎますか?
私のcolorthemeの次の行に示すように、org-modeのコードブロックに背景色を適用しています。 '(org-block ((t (:background "#F5F5F5" :family "Source Code Pro" :height 140)))) コードブロックを含むアイテムを折りたたむと、コードブロックの背景色がアイテムの見出しの端からウィンドウの端まで伸びますが、これは予期していませんでした。コードブロック。 このようにコードブロックの背景が「にじみ出る」のを防ぐ方法はありますか?
9 org-mode 

1
LaTeXソースブロックの一貫した構文強調表示を行う
org-babelコードブロックの構文強調表示のためのOrgマニュアルのソリューションは、ネイティブフォントをオンにすることです。 (setq org-src-fontify-natively t) ブロックで囲まれたLaTeXコードでうまく機能します #+BEGIN_SRC latex ただし、次のブロックは対象外です。 #+BEGIN_LATEX 両方のタイプのLaTeXソースブロックで同じLaTeX構文強調表示スキーム/設定を使用する方法はありますか?

1
elispにマークを設定し、シフトを選択するにはどうすればよいですか?
トランジェントマークモードがアクティブなときのEmacsの通常の動作は、シフト選択を行うと、次のコマンドが非シフト移動の場合、マークが非アクティブ化されることです。たとえば、コマンドM-l(現在の行を以下の関数でC-fマークする)との後、マークは無効になります。後にelispからその動作をエミュレートするにはどうすればよい(set-mark-command nil)ですか? 例えば: (defun my-mark-current-line () (interactive) (beginning-of-line) (set-mark-command nil) (end-of-line) (forward-char)) (global-set-key (kbd "M-l") 'my-mark-current-line) ここでMl Cfを実行すると、領域が拡大しますが、代わりにデフォルトの動作、つまりCfのときに領域を非アクティブ化し、CSfで拡大します。 編集:これを可能にするset-mark-commandとは異なる関数を使用する必要がありますか?何も見つかりませんでした。
9 mark  mark-ring 

2
複数のカーソルパッケージにより、emacsの実行が遅くなる
私はhtmlファイルでMultiple Cursorsパッケージを使用しており、いくつかのカーソルに最適ですが、30または50を超えるカーソルを作成すると、非常に遅くなり、カーソルを移動するだけで約5秒または6秒かかります。 私はそれを間違って使用していますか、それともそれだけ多くのカーソルを作成する準備ができていないだけですか?

2
コードブロックからヘッダーを含むテーブルを生成する
コードブロックからのヘッダーを持つテーブルを生成したいと思います。このようなもの: #+BEGIN_SRC emacs-lisp :results value table :table-header | First | Second | (identity '((a b) (c d))) #+END_SRC #+RESULTS: | First | Second | |-------+--------| | a | b | | c | d | 残念ながらこんなもの:table-header | First | Second |は存在しません。というか、何か見落としていることを願っています。(ここでは(identity ...)、実際に値を計算するコードのプレースホルダーとして使用しています。) この回避策は私にはまったくうまくいきません: #+BEGIN_SRC emacs-lisp :results value table (cons (list …

3
WindowsのEmacsでのGit Bash
Git for Windowsに付属のBashシェルを実行できます。私はこれを私の中に入れました.emacs: (defun git-bash () (interactive) (let ((explicit-shell-file-name "D:/Program Files/git/bin/bash")) (call-interactively 'shell))) その後M-x git-bash、ほら、bashが実行されていますが、奇妙です。 bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell ^[]0;MINGW64:/c/Users/M??rton^G MĂĄrton@Marci MINGW64 /c/Users/MĂĄrton $ そして^[]、実行するすべてのコマンドの後に、で始まるその行を出力します。また、エンコーディングはめちゃくちゃです。どうすればこれを修正でき.emacsますか?

1
パッケージまたはライブラリツリー全体をアンロードする
ときどきunload-feature、ライブラリをアンロードするために呼び出したい…それがライブラリに依存している…そして別のライブラリがそのライブラリに依存している… 依存関係ツリーを手動で移動せずに、ライブラリとそれに依存するすべてのライブラリをアンロードするにはどうすればよいですか? 一般的な使用例は、パッケージのすべてのライブラリをアンロードすることです(たとえば、アップグレードまたはアンインストール時)。そのための方法があれば、それで十分です。

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