EmacsまたはVimでのブロック編集*ライブ*


9

jEditはブロック編集をサポートしていますが、EmacsとVimは同じテーマに関していくつかの深刻なユーザビリティの問題を抱えているようです。誰かがここで未知数を記入できれば、どちらかのエディタを使用するほうがはるかに耐えられます。

  • 実際の長方形選択画面上の選択が長方形である場合、Emacsが制限しているように見える領域の計算に使用される線形選択ではありません。
    • jEdit:押したままCtrl選択します。
    • Vim:クリックしCtrl-vて選択します。
    • Emacs:不明 ; 400行以上のプラグインが必要なようです。
  • ライブ長方形編集:ブロックを選択した後に編集すると、すべての線で結果がどのように見えるかを確認できます。
    • jEdit:入力を開始するだけで、最終的な結果が表示されます。
    • Vim:クリックしShift-iて入力します。を押しEscて挿入モードを終了するまで、最終結果は最初の行にのみ表示されます。すべての行の結果をすぐに確認する方法があるかどうかは不明です。
    • Emacs:不明 ; 唯一の方法のように見えC-x r t、を押した後にテキストを埋めるように設定しますRet
  • テキストの外側の位置での選択の開始と終了:たとえば、各行の最初のN文字を削除したいのですが、最初と最後の行に含まれる文字がN未満です。
  • ブロックインラインを貼り付け:あなたは複数行を貼り付けたかのように、すでにそこにテキストをプッシュする、のように、コピーされたブロックを貼り付けダウン、ない権利。
    • jEdit:デフォルト。ブロックをブロックとして貼り付けるには、最初に別のブロックを選択する必要があります。
    • VIM: OEscVp
    • Emacs:不明

一般的なEmacsブロック選択機能はcua-modeプラグインにあります


どうやらEmacsの列編集モードは、何らかの長方形のライブ編集を行うことができます:youtube.com/watch
Tom

emacs 400+行の「プラグイン」に関する単なる観察.. multi-editと呼ばれる、geditのやや類似したアドオンには、1000行以上のPythonコードがあります。私にとって、puginはとても便利です(それなしでどうやって生き残ることができたのでしょうか)、サイズは学術的です...そして、emacsが宣伝どおりに機能する場合、私はそれを使用して満足しますが、ロードエラーが発生しました私はそれを実行したとき、「コマンド・ライン・正規ファイル名:範囲外のArgs: 『』、1」 :( ...それは私も探していただけで何...
Peter.O

4
jEditを使用したことがない人のために、用語を説明してください。ここでの「ライブ」の意味、「ライブの長方形編集」の意味、または「ブロックのインライン貼り付け」の意味がわかりません。
Gilles「SO-邪悪なことをやめ

回答:


7

Vimについては回答できますが、Emacsについては回答できません。

テキストの外側の位置で選択を開始および終了します。

:set virtualedit=blockあなたが望む行動を可能にします。必要に応じて、最初のコロンを削除して.vimrcに追加できます。詳細については、:help 'virtualedit'Vim内から。

ブロックをインラインで貼り付け:

pコマンドモードでヒットした場合、Vimはブロックを挿入し、各行の右側に文字を押します。別のブロックを選択してを押すとp、Vimはそのブロックを貼り付けたブロックに置き換えます。

コマンドモードのキーシーケンスを使用して、「行ごと」にブロックを貼り付けることができますOEscVp。これにより、現在の行の上に行が挿入され(O Esc)、行ごとに選択され(V)、その上に貼り付けられます(p)。これを(たとえば)以下のypようなマッピングで短縮でき:nmap yp O<Esc>Vpます。<Esc>Escapeキーを押すのではなく、5つのキーストロークを使用します。


についての良いヒントvirtualedit; 試してみる必要があります。インライン貼り付けについて、期待される機能の説明については、更新された質問を参照してください。
l0b0 2011年

ブロックを線状に貼り付ける方法で答えを更新しました。
ジャンダー、2011年

5

たとえば、各行の最初のN文字を削除したいのですが、最初と最後の行の文字数がN未満です。

Emacs:最初の行から選択を開始し、不足している文字数(スペースなど)を最後の行に追加し、kill-rectangleを使用します

または、artist-modeまたはpicture-modeを参照して、行の長さに関係なくウィンドウ内を自由に移動できるようにします。

ブロックをインラインで貼り付け

Emacs:まず、ブロックをkill-rectangleまたはレジスターに保存してから、挿入ポイントに移動し、delete-rectangleを使用して、保存された長方形を挿入します。

400行以上のプラグインが必要なようです

Emacsの場合、なぜそれが問題なのですか?プラグインをコンパイルすることができ、emacsの哲学は、コアにすべてを入れるのではなく、プラグインを使用してエディターを拡張することです。


4

あり「CUA-モード」のEmacsen 22.1が付属して以降、またはEmacsの以前のバージョンのダウンロードへのリンクをたどってください。機能を紹介する短いビデオがあります。

一般的な長方形コマンドについては、簡単な紹介を提供するマニュアルを読んでみてください。


emacs cua-modeはよさそうだ!+1 ..あなたが言及したビデオが見つかりませんでした。質問のすぐ下のコメントにあるトムのリンクを見て、(別の?)情報ビデオへのリンクを
探して

@fered Ooops、カット/ペーストエラー、修正。
トレイジャクソン

0

vimでは、最初のn文字を削除する一般的な方法は、のようにすることです:%s/.\{0,6\}//

%ドキュメント全体を行います。これを選択範囲または気になる実際の行に置き換えることができます。sこのコマンドは、「代替」のためです。正規表現を指定したものに置き換え、特定のオプションを追加しない限り、各行で1回だけ一致します。/区切り文字である-これは、任意の文字することができますが/、(あなたがエスケープする必要はありませんので、何か他のものを使用するのが有利である場合を除き、通常使用される/コマンドの残りの部分)。最初の区切り文字の後の引数は、選択範囲内で一致する文字列を検索するために使用される正規表現です。2番目の区切り文字の後の引数は、一致が置き換えられるものです。

したがって、このコマンドは、任意の文字の0〜6個のインスタンスを検索し、それらを何も置き換えません。


私が求めたものではありません。
l0b0 2011年

しかし、この質問を見つけた他の人には役に立たないと思いますか?そうだと思うので、ここに配置しました。
Shawn J. Goff
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.