Vim でテキストをアンラップしたい。行を結合すると、文間に追加のスペースができます。
何故ですか?
私はこれがあなたが本当に望んでいるものだと感じています:gJ
から:h gJ
:
gJ Join [count] lines, with a minimum of two lines.
Don't insert or remove any spaces. {not in Vi}
これは、ターミナルから何かをコピーし、それを 1 行ではなく大きな長方形のブロックとして vim に貼り付けた場合に便利です。
通常はビジュアルモードで使用します。ハイライトのもの、gJ.
フォーマットは情報を破壊します。一度フォーマットすると同じものになるテキストの多くの異なるブロックがあります。したがって、事前の知識なしに操作を元に戻す (つまり、元に戻す) 方法はありません。
未フォーマット:
Unformatted text could start out as either all one line, or several, yet look the same when formatted.
Unformatted text could start out as either all one line, or several,
yet look the same when formatted.
フォーマット:
Unformatted text could start out as
either all one line, or several,
yet look the same when formatted.
段落をすべて 1 行にまとめたい場合、または少し手動で操作しても問題ない場合は、 を使用J
して行を結合することができます。ビジュアル モードを使用J
して、一度に複数の行にコマンドを適用できます。たとえば、段落と組み合わせap
たりip
、段落を選択したりできますvipJ
。繰り返しますが、それでも一部の情報は失われます。書式設定前の改行での複数のスペースは、1 つのスペースに折りたたまれてしまいます。gJ
(代わりに を使用してスペースを変更せずに実際に参加することはできJ
ますが、フォーマットしたときに既に失われています)
文の後の余分なスペース (!、?、または . で終わる行) が気になる場合は、joinspaces をオフにします。set nojoinspaces
これは私にとってうまくいった答えです。私のユースケースでは上記のどれもうまくいきませんでした。
基本的に、他の複数の人が言ったように gJ を使用しますが、すべてのファイルを強調表示するため、コマンドモードでggVGgJ.
作業中の行がスペースで終わっていない場合、結合後に余分なスペースが1つ残っています。通常、これは望ましい動作です。例
first line without space
second line
との合流後J
、なる
first line without space second line
場合によっては適用したくない場合もありますが、
myInstance->methodA()
->methodB()
myInstance->methodA()->methodB()
そして、間にスペースを入れずに結合したいと思います!
ここで私が使用するヘルパーマッピング
nmap <leader>jj Jx
<leader> キーは で確認できます。:let mapleader
デフォルトはキー\
だと思います。
したがって、通常モードでは、\jj
余分なスペースなしで結合を実行するだけです!