現在のデータがあることを考えると:
ID NAME AGE
1 Joan 29
2 Peterson 16
3 Hunt 47
4 Wenche 12
5 Kennedy 29
6 Lottie 31
そして、カーソルはN
のNAME
にあります。テキストを選択するには、|
はビジュアルブロックの区切り文字であり、選択は次のようになります。
ID |NAME | AGE
1 |Joan | 29
2 |Peterson| 16
3 |Hunt | 47
4 |Wenche | 12
5 |Kennedy | 29
6 |Lottie | 31
Peterson
の幅に一致する各要素の後の末尾の空白は必要ありませんが、現在のブロックが存在する場合は、それをすばやく強調表示する方法が必要です。
N
のNAME
にカーソルを置くと、ゴルフをあまり気にせずに次のことを実行できます。
<C-v>}hhhhhhhh
しかし textobj-columnプラグイン はまさにあなたが望むことをします。魔法のように。
これを行う1つの方法は次のとおりです。
control-v
を使用して、ビジュアルブロックモードに入ります2j
と入力して、2行下のPeterson
エントリに移動します。e
を使用して、ブロック選択をWordの末尾に移動しますPeterson
4j
と入力して、選択範囲を最後の4行下に移動します編集:あなたが本当に「マジックナンバー」を避けることを主張するならば、あなたはここで説明されるように何かをすることができます: https://stackoverflow.com/questions/3736678/how-do-you-select-a-whole-column- in-visual-block-mode
:set nosol
(G
コマンドがビジュアルブロック選択の最初の行に折り返されないようにするため)control-v
/P
(マジックナンバーはないと言ったが、文字の検索を禁止しなかった。空白が重要でない場合は、これを無視できる)e
(Wordの最後に移動)G
(ブロック選択を一番下に移動)その他のヒント:
gv
と入力できます。v
は文字単位の視覚モードに使用され、V
は行単位に使用され、上記のcontrol-v
はブロック単位の視覚モードに使用されます有用な参考資料(インターネットは別として):
Practical Vim
は本当によく書かれていますこれを簡単にするためのスクリプトが存在しますが、raw vimを使用したい場合は、これを行うための最もよく知られた方法を次に示します。
a。ファイルの最後の行が次のような空白でいっぱいであることを確認してください。
"______________________________________"
。
次に、「名前」の最初の文字Nに移動します。ヒットctrl-v, w, 999999j
そして列が選択されます。
ビジュアルモードではファイルの作成されていない部分を選択できないため、ファイルが改行で終わる場合に備えて、最後の行をスペースで埋める必要があります。最後の行が実行可能なコンテンツである場合、これは必要ありません。 ctrl-v+w
は単語を選択し、次に999999j
simpleは、カーソルを99999行(ファイルが小さい場合はそれ以下)の「下」に移動します。
注:これは列全体の選択であり、空白はあなたが述べたものとは少し異なることがわかります(ただし、これは重要ではないとあなたは言いました)。私の知る限り、列を次の単語の先頭ではなく最大の単語の末尾に揃えたい場合は、手動で最大の単語サイズを見つけ、その長さを視覚的に選択してから、何かのようなもの 99999j
。
Ygonchoの答えと同じですが、「マジックナンバー」はありません
ctrl-v、w、G
Gは、「9」を数回スマッシュすることなく、ファイルの最後の行に直接移動します。