Emacs

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

2
関数またはマクロはバイトコンパイラの警告を指定できますか?
原則として、任意の数の引数を取る関数を作成しています。ただし、実際には、偶数の引数のみが渡される必要があり、 そうでない場合は望ましくない結果が生成されます。 コンテキストのダミーの例を次に示します。 (defun my-caller (&rest args) (while args (call-other-function (pop args) (pop args)))) elispファイルがバイトコンパイルされると、バイトコンパイラーは、間違った数の引数で呼び出されている関数を検出すると、警告をスローします。明らかに、これはで発生my-callerすることはありません。これは、任意の数を取るように定義されているためです。 それでも、設定できるシンボルプロパティや、(declare)その定義に追加できるフォームがあるかもしれません。この関数には偶数個の引数のみを指定する必要があることをユーザーに通知するもの。 この制限をバイトコンパイラに通知する方法はありますか? そうでない場合、関数の代わりにマクロで可能ですか?

2
端末でEmacsがShift + Upを認識しない
Emacsでリージョンを選択するには、Shift+ を使用することが非常に多いUp/Downです。GUIモードでは正常に動作しますが、オプションemacsで呼び出された場合-nw、Shift+でのみ行を選択できますDown。Shift+は、Up仕事は、私はミニバッファでこのエラーメッセージを取得できません。 <select> is undefined この問題を解決するにはどうすればよいですか?

2
Emacs用の自動整列パッケージまたはモードはありますか?
バッファの内容をその場で調整したいファイル(たとえば、Puppetマニフェスト)を編集している場合があります。たとえば、私はそれを選択している限り、このようなコードを使用しalign-regexpたりalign、整列させることができることを知っています: # M-x align-regexp "=>" will line everything up nicely file { "/etc/foo": ensure => present, mode => "0666", source => "puppet:///modules/example/foo", } しかし、私が本当に望んでいるのは、これをオンザフライで実行することです。リージョンまたはバッファ全体を選択する必要はありません。これを行うパッケージまたはモードはありますか、それとも私が興味のあるモードに組み込まなければならないものですか? 編集:私はPuppetとCFEngineについて尋ねました、それは私が最近ほとんどコーディングするものであり、私は整列されたテキストを強く好みているからです。ただし、オンザフライのアライメントがEmacsモード(主にプログラミング言語のモード)で一般的な機能であるかどうか、またはほとんどの人が保存時または特定の場所でアライメントする場合、他のポイント。
15 align 

1
バッファのコンテンツを取得する
したがってbuffer-string、現在のバッファのコンテンツを取得します。ただし、他のバッファを指定することはできません。 どうすればそれを回避できますか?機能save-window-excursionさせるために何か必要ですか?

2
タッチされた行の空白のみをクリーンアップする
私が取り組んでいるほとんどのプロジェクトでは、を使用しbefore-save-hookて実行しますwhitespace-cleanup。これは、チームの全員がスペースをクリーンアップする場合は問題ありませんが、ほとんどのファイルが末尾の白で散らかっていて、既に実行中のプロジェクトに関与している場合があります。現在、私は単に保存フックをオフにしてスペースのシェアを追加しますが、理想的には差分をきしみにしたいです。 私が触れた行の空白のみをクリーンアップするパッケージはありますか?

2
Emacsフリンジでの実用的なコードの折りたたみ
Emacsフリンジを構成して、コードの折りたたみセクションを表示したいと思います。 たとえば、MacのBBEditはJSONファイルを編集するときに次のように表示されます。 マーク自体は実行可能です。マークをクリックすると、対応するコードセクションが展開または縮小されます。ドキュメントにコード折りたたみをサポートするモードがない場合、フリンジは表示されません。 このような方法でEmacsのフリンジ機能を拡張することは可能ですか?

2
Perlの正規表現をインタラクティブにテストおよび使用するにはどうすればよいですか?
テキスト付きのバッファがあるとします。バッファーに対して正規表現(理想的にはPerlタイプ)をテストし、Emacsにその一致を強調表示させたいと思います。 たとえば、次の正規表現(ウィキペディアから取得): (?<=\.) {2,}(?=[A-Z]) 次のテキストで次のように一致します。 この正規表現は、特に、ピリオドの後(.)、大文字の前にある少なくとも2つのスペースに一致します。 Emacs はPerlの正規表現用のインタラクティブな正規表現マッチャーを提供しますか? 後者の答えがノーの場合: Perlの正規表現のネイティブサポートがEmacsで(一度も)考慮されなかった理由はありますか?(Unix / Linuxでよく知られている標準であることを考慮して) このようなPerl正規表現マッチャーの構築をどのように進めることができますか?(おそらく、Perlを内部で呼び出すか、Perlの正規表現をサポートされているバリアントに事前に変換しますか?)

2
TABとは異なるCiをバインドする方法は?
Control-i実行したいindent-region(基本的にはXcodeがそのマッスルメモリを既に構築しているため)。 私はそれを実現Control-iし、tabアスキーの意味では区別できないが、彼らはキーコードの意味です。 私は明白なことを試しました: (global-unset-key (kbd "C-i")) (global-set-key (kbd "C-i") 'indent-region) 役に立たない-を押すとControl-i、tabキーが現在のコンテキストで行うことは何でも実行されます。Emacsがタブボタンを別の方法で扱うのを助けるためにできることはありますControl-iか? 更新:リージョンが選択されたときにtab/ Control-iプレスが何をするかを再マッピングできることで、同等の結果が達成されると思います。
15 keymap 

6
すべての行の最初のn文字を削除する方法は?
私は最近尋ねました: すべての行にプレフィックスを追加する方法は? だから、以下のコードから行きます: I said Hello I said There I said I am some code 次のようにコーディングするには: Hello There I am some code では、行からn個の文字を削除するにはどうすればよいですか?


2
.dir-locals.elファイルの場所を基準にしてディレクトリローカル変数を設定するにはどうすればよいですか?
相対パスをディレクトリローカル変数として指定するように言われている状況に私はしばしば気づきます。例えばcmakeの-IDEさんcmake-ide-project-dirとcmake-ide-build-dir。もちろん、これはあまり移植性がありません。 の代わりに .dir-locals.el: ((nil . ((cmake-ide-project-dir . "/home/user/code/project")))) みたいなものが欲しい ((nil . ((cmake-ide-project-dir . directory-of-current-dir-locals-file)))) そのような変数をどのように定義できますdirectory-of-current-dir-locals-fileか?そして、たとえばcmake-ide-build-dir、通常はどのように設定し(concat directory-of-current-dir-locals-file "build")ますか?

3
インデントでナビゲートする
インデントに基づいてファイルの行間を移動したい。ファイルはインデントによって構成されます。前の行よりもインデントされている行は前の行の子であり、前の行と同じインデントを持つ行はその兄弟です。私は主に3つのコマンドを探しています: 次の兄弟、つまり同じインデントを持つ次の行に移動します。インデントの多い行をスキップしますが、インデントの少ない行をスキップしません。 前の兄弟、つまり他の方向に同じものに移動します。 親、つまりインデントの少ない前の行に移動します。 ポイントの列位置は変更しないでください。 これらは、への字下げ構造化データの類似体であるforward-sexp、backward-sexpとbackward-up-listS式構造化データのため。インデントは、HaskellやPythonなどの言語のプログラム構造に対応しています。これらの関数は、このコンテキストでは特に役立ちますが、モード固有のものは探していません(私の主な使用例は、別のファイル形式内の意図構造化データです)。 インデントレベルの色付けは、Up/を使用して手動で移動するのに役立ちますが、Down自動的に何かが必要です。 このスーパーユーザーの質問は似ていますが、要件はより低く、現在、私の要件を満たす答えはありません。

3
組織モードからのラテックスを使用したユニコード文字のPDFへのエクスポート
こんにちはEmacsの善良な人々! Unicode数学記号をバッファ(org-mode)からpdfファイルにエクスポートするのに問題があります。 1.問題の説明: シンボルは、Unicode文字としてバッファーに挿入されます(TEX入力メソッドまたは company-mathを介して) ソースコードのデモは次のとおりです。 #+TITLE: Unicode characters export test #+AUThor: #+date: Unicode characters: ℝ ℤ ℕ ⇒ ∈ ∀ Same symbols in latex format: $$\Bbb{R} \Bbb{Z} \Bbb{N} \Rightarrow \in \forall$$ 生成された.texファイルには、Unicodeシンボルが含まれています。 % Created 2016-03-04 Pá 21:01 \documentclass[11pt]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{fixltx2e} \usepackage{graphicx} \usepackage{longtable} \usepackage{float} \usepackage{wrapfig} \usepackage{rotating} \usepackage[normalem]{ulem} \usepackage{amsmath} \usepackage{textcomp} …

2
MagitはWindowsで非常に遅くなります。最適化する方法
プロジェクトにWindows 10を使用せざるを得ません。はい、むしろGNU / Linuxを使用します。私の正気を保つために、私はWindowsをEmacsのブートローダーと見なそうとしました:) 残念ながら、Magit(Windowsでのコマンドラインの不足を補うEmacsの私のお気に入りの部分の1つ)は、耐えられないほど遅いです。SSD、16 GBのRAM、クアッドコアi7がありますが、小さなリポジトリで実行するには8秒かかりmagit-statusます。その後、別の変更をステージングする場合、ファイルごとに約5秒かかります。 私が試したものは次のとおりです。 $ git config --global core.preloadindex true $ git config --global core.fscache true $ git config --global gc.auto 256 プロジェクト全体をWindows Defender(私の唯一のAV)除外リストに追加する magit-git-executableを、ダウンロードした通常のmsysgitに設定します(https://git-for-windows.github.io/)。私はチェックしgit statusましたが、ここでは1秒未満かかります。私はそれmagit-statusがより多くの方法を行うことを知っているが、これは多すぎる。 誰もこれを速くする方法を提案できますか?このようにWindowsでMagitを使用している人は誰もいません。 この質問は重複していることが示唆されましたが、彼らは尋ねました: UbuntuでのEmacsの起動時間がWindowsよりも著しく短い理由を理解するのに苦労しています。誰もが答えを知っていますか? Emacs、Git、およびMagitがWindowsで遅い理由を少なくともいくつか知っています。Magitを最適化して、機能を犠牲にしている場合でも、より少ないことを実行したり、結果などをキャッシュしたりする方法を尋ねています。

2
Python組織モードのソースブロックの出力は常に「:なし」です
これは私のソースブロックです。 #+BEGIN_SRC python print "hello" #+END_SRC 出力は常に: #+RESULTS: : None これは私のorg-babel設定です: (org-babel-do-load-languages 'org-babel-load-languages '((python . t) (C . t) (calc . t) (latex . t) (java . t) (ruby . t) (scheme . t) (sh . t) (sqlite . t) (js . t))) Pythonは私のPATH上にあり、ターミナル経由で実行可能です。 Emacs-lisp SRCブロックは問題なく動作します。 なぜNone代わりに取得するのhelloですか?

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