一部のemacs関数で「デフォルト」(最後に使用した)文字列を削除するにはどうすればよいですか?


12

私には次の問題があります: 'Cx rt'(string-rectangle)を使用すると、選択した四角形を置き換えるために、文字列を入力するように求められます。「;;」と入力するとします。(長方形をコメントアウトするため)。これは正常に機能しますが、次回同じ関数を呼び出して、何も(空の文字列)に置き換えたい場合、「デフォルト」文字列「;;」があるため、それを行うことはできません。私が以前に使用したこと、そしてもし私がちょうどヒットするなら、コマンドはその「;;」を使用します。空の代わりに文字列。空の文字列に設定するにはどうすればよいですか?

いくつかの検索/置換機能で発生した同様の問題。基本的に、最後に使用した文字列を記憶し、それをデフォルトに設定する場合、代わりに空の文字列を「入力」するにはどうすればよいですか?

編集:

YoungFrogが言及したKill-rectangleは特定の問題を解決しますが、別のことを念頭に置いていました:基本的に、関数emacsは最後に入力した値を記憶し、enterを押すと「デフォルト」として使用します。関数を最初に使用する前に、その「デフォルト」を実際のデフォルトであったものにクリアできます。別の例を次に示します。

diredモードでは、「Mx rgrep」の場合、3つの入力を求められます。

1)検索対象:ここで入力したものは、次にrgrepを使用するときにデフォルトとして使用されます。誰かが指摘したように、空の文字列を検索することは意味をなさないため、この「デフォルト」値をクリアすることは実際には必要ないでしょう。

2)次に、検索するファイルを尋ねます。実際のデフォルトは「すべて」のファイルです。* .txtを入力して検索すると、次回rgrepを使用するときに、*。txtが「デフォルト」として使用されます。ここで、この「デフォルト」* .txtをクリアし、「;;」をクリアしたいのと同じように、元のデフォルトの「すべて」に戻したいと思います。文字列矩形関数の「デフォルト」を実際のデフォルトの空の文字列にします。

もちろん、すべてのファイルに関するこの特定の問題は、おそらく*?と入力することで解決できます。しかし、この一般的な問題の可能性は、最後に使用した値を記憶する他のコマンドに残っています。

3)次にベースディレクトリを要求しますが、ここでは問題ありません。

だから、私がそれを見る方法は、emacsがいくつかのコマンドで最後に使用した値を覚えて私を助けようとするたびに(ほとんどの場合非常に役立ちます)、使用した値を決して使用しないかのようにクリアする方法があるはずです前のコマンド。

PS私はまだemacsが初めてであり、おそらくいくつかの回避策があるため、おそらく必要な機能は必要ありませんか?


1
空の文字列の読み取りとデフォルト値の交換は、ほとんどの場合、同じ関数では発生しないため、私はそれが難しいと信じています。この特定のケースでdelete-rectangleはオプションです。
ポリツァ

選択した長方形にスペースを挿入する場合は、を使用できますclear rectangle
カウシャルモディ

単にコメント/コメント解除をブロックする場合は、使用しないのはなぜcomment-dwimですか?また、検索用に「空の」文字列を入力しても意味がありませんが、置換部分に空の文字列を入力できます。ユーザーが空の文字列を入力する必要がある場合の例をもっと見たいです。
カウシャルモディ

3
説明をすぐに見ましたが、commandの設計に問題があるようstring-rectangleです。空の文字列が可能な入力として理にかなっているときはいつでも、デフォルト値を受け入れることと区別して、入力する方法があるはずです。コマンドのドキュメント(およびそれに慣れている場合はそのソースコード)をよく見て、実際にここに設計上の欠陥があるかどうかを確認してください。あると思うなら、それを報告してください:M-x report-emacs-bug
ドリュー

以下のために2)あなたは文字通り入力することができます、allとは少し違って、*:それは一致し.*すぎ。
npostavs

回答:


3

使用しないでくださいC-x r tstring-rectangle)、使用C-x r kkill-rectangle)の代わりに。


1
IMOの一般的なケース(タイトルの質問)は(一般的な)答えを認めないため、私は特定の例にのみ答えました。それでも、C-jRETidoモードのような)場合によっては(の代わりに)役立つかもしれないことに言及したいと思います。
YoungFrog

3

一般的な場合、あなたが望むものは達成できません。これは、Emacsのいくつかのユーティリティとモードが、1つの場所ではなく、異なる変数に読み取り完了履歴を保存するためです。これらの履歴変数をnilC-x r tたとえば(setq string-rectangle-history nil))に手動で設定できますが、スケーリングしません。また、コードを読まずに履歴変数の名前を見つけるのは簡単ではありません。

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