it-swarm-ja.com

列を選択してからGNU Emacsで編集する方法は?

私はViM、TextMate、およびGNU Emacsを何年も使用しています。

たとえば、これが私が編集したいテキストです

foo
foo
foo

そして、これが私が欲しいテキスト結果です

bar foo
bar foo
bar foo

Vimを使用しているときは、最初の行と最初の列で「Ctrl v」を実行し、次に「2 j」を押し、次に「i」を押してから「bar」と入力します。

Textmateを使用している場合、(マウスで)下を選択しているときに[Apple Command Option]を押してから、「bar」と入力して完了です。

しかし、私がGNU Emacs 23.1を使用しているときは、その方法がわかりません。:((

EmacsWikiを検索してグーグルで検索しましたが、解決策が見つかりませんでした。私の解決策を知っているなら私を導いてください。そのことに感謝します。

15
Arie

2つのオプションが思い浮かびます。 1つは長方形です(別の回答で述べたように)。そのための明確な指示は次のとおりです。

  1. 最初の行、最初の列に移動
  2. C-SPC
  3. 最後の行(最初の列)に移動
  4. C-x r t bar SPC RET

非常に優れた長方形/列編集コマンドを提供する別のオプションは CUAモード です。これが ブログ投稿 (開示:私のブログ)で、その使用方法を説明しています。 CUAモードの威力を見るには、一見の価値があります この3分間のビデオ

CUAモードを次のものと統合します(一時的なマークモードを使用したくないため)。

(setq cua-enable-cua-keys nil)
(setq cua-highlight-region-shift-only t) ;; no transient mark mode
(setq cua-toggle-set-mark nil) ;; original set-mark behavior, i.e. no transient-mark-mode
(cua-mode)
16
Trey Jackson

Emacs-24.4では、長方形の基本サポートが少し改善されたため、C-SPCの後にC-x r tを使用する代わりに、次のことができます。

C-x SPC
down down
C-t bar RET

C-SPCメソッドと比較した場合の良い点の1つは、選択している四角形に関する視覚的なフィードバックが得られることです。もちろん、cua-modeメソッドも同様に機能します(同様に機能します)。

11
Stefan

Emacsでは、これらの種類の列は「長方形」と呼ばれます。つまり this は関連するドキュメントページです。

これらすべてのコマンドでは、領域に操作している長方形が含まれている必要があります。したがって、長方形の左上の文字にマークを設定し、領域を長方形の右下の文字まで拡張する必要があります。あなたがしているコマンドはM-x string-insert-rectangle次に、挿入する文字列の入力を求められます。

2
nedned

最短の答え:CUA長方形モードを有効にする C-RET

だから、あなたの場合、それは

  1. 最初の行、最初の列に移動してヒット C-RET CUAモードに入る
  2. 最後の行の最初の列に移動し、単にbarと入力しますSPC
  3. 経由でCUAモードを終了します ESC またはC-G

より複雑なソリューションとCUAへのリンクについては、@ Treyの回答を参照してください。

1
Martin

これにはreplace-regexpを使用できます。

  1. 最後の行にマークを設定-> C SPCと最後の行に移動
  2. ミニバッファーでM-x replace-regexp RETと入力します(このM-rのキーバインディングがあります)。
  3. ^ RETを与える
  4. バーを入力してRETを押します

これにより、行の先頭にバーが追加されます。

0
Neelesh