web-dev-qa-db-ja.com

Vimビジュアルモード:カーソルの下の現在のブロックを選択します

現在のデータがあることを考えると:

ID     NAME          AGE 
1      Joan          29
2      Peterson      16
3      Hunt          47
4      Wenche        12
5      Kennedy       29
6      Lottie        31

そして、カーソルはNNAMEにあります。テキストを選択するには、|はビジュアルブロックの区切り文字であり、選択は次のようになります。

ID    |NAME    |     AGE 
1     |Joan    |     29
2     |Peterson|     16
3     |Hunt    |     47
4     |Wenche  |     12
5     |Kennedy |     29
6     |Lottie  |     31

Petersonの幅に一致する各要素の後の末尾の空白は必要ありませんが、現在のブロックが存在する場合は、それをすばやく強調表示する方法が必要です。

7
krystah

NNAMEにカーソルを置くと、ゴルフをあまり気にせずに次のことを実行できます。

<C-v>}hhhhhhhh

しかし textobj-columnプラグイン はまさにあなたが望むことをします。魔法のように。

1
romainl

これを行う1つの方法は次のとおりです。

  1. 最初にcontrol-vを使用して、ビジュアルブロックモードに入ります
  2. 次に、2jと入力して、2行下のPetersonエントリに移動します。
  3. 小文字のeを使用して、ブロック選択をWordの末尾に移動しますPeterson
  4. 4jと入力して、選択範囲を最後の4行下に移動します

編集:あなたが本当に「マジックナンバー」を避けることを主張するならば、あなたはここで説明されるように何かをすることができます: https://stackoverflow.com/questions/3736678/how-do-you-select-a-whole-column- in-visual-block-mode

  1. :set nosolGコマンドがビジュアルブロック選択の最初の行に折り返されないようにするため)
  2. control-v
  3. /P(マジックナンバーはないと言ったが、文字の検索を禁止しなかった。空白が重要でない場合は、これを無視できる)
  4. e(Wordの最後に移動)
  5. G(ブロック選択を一番下に移動)

その他のヒント:

  • 後で同じブロックを再選択する必要がある場合は、gvと入力できます。
  • vは文字単位の視覚モードに使用され、Vは行単位に使用され、上記のcontrol-vはブロック単位の視覚モードに使用されます

有用な参考資料(インターネットは別として):

  • ドリュー・ニールの本Practical Vimは本当によく書かれています
0
treddy

これを簡単にするためのスクリプトが存在しますが、raw vimを使用したい場合は、これを行うための最もよく知られた方法を次に示します。

a。ファイルの最後の行が次のような空白でいっぱいであることを確認してください。

"______________________________________"

次に、「名前」の最初の文字Nに移動します。ヒットctrl-v, w, 999999jそして列が選択されます。

ビジュアルモードではファイルの作成されていない部分を選択できないため、ファイルが改行で終わる場合に備えて、最後の行をスペースで埋める必要があります。最後の行が実行可能なコンテンツである場合、これは必要ありません。 ctrl-v+wは単語を選択し、次に999999j simpleは、カーソルを99999行(ファイルが小さい場合はそれ以下)の「下」に移動します。

注:これは列全体の選択であり、空白はあなたが述べたものとは少し異なることがわかります(ただし、これは重要ではないとあなたは言いました)。私の知る限り、列を次の単語の先頭ではなく最大の単語の末尾に揃えたい場合は、手動で最大の単語サイズを見つけ、その長さを視覚的に選択してから、何かのようなもの 99999j

0
ygoncho

Ygonchoの答えと同じですが、「マジックナンバー」はありません

ctrl-v、w、G

Gは、「9」を数回スマッシュすることなく、ファイルの最後の行に直接移動します。

0
jgeralnik