vi / vimの「貼り付け」の問題に対する解決策を探しています。
テキストファイルの特定の行をリンクする方法は?次のファイルがあります。
15/10/2011 Revolution day
16/10/2011 About Rome
- differents newspapers
blogs an feeds
:) hp
17/10/2011 Yep, another day
数字で始まらないすべての行を貼り付けたいです。次のようなことを試しましたが、うまくいきません。
:[!^[0-9]]!paste -d ' ' -s
答え1
:%s/\(.*\)\n\(^[^0-9]\)/\1\2/g
スペースまたはその間に何かを追加するには、\1と\2の間に追加します。
答え2
可能であれば、VIMで次の2つの手順で実行できます。
まず、すべてのワイヤを1行に接続します。
VIM でファイルを開き、次のキーストロークを実行します。VGJ
- V=視覚モード(文字()ではなく行に基づいてv)
- G=すべての行を強調表示
- J=すべてのワイヤを接続
次に、結果の行が始まる日付形式に従って行を分割します。
VIM でファイルを開き、次のコマンドを実行します。
:%s#\([0-9][0-9]/[0-9][0-9]/[0-9]\)#^M\1#g
これにより、リンクされた単一行でNN / NN / N(ここでN = 0-9)と一致する文字列が検索され、行の先頭の日付形式と一致し、対応する一致に分割されます。
答え3
v
と一緒に使用してくださいjoin
。
:v/^[0-9]/-1,join
分割:
:v
正規表現と一致しない行を選択してください。/^[0-9]/
数字で始まるすべての行-1,
前の行から現在の行にjoin
スペースで区切られた選択した行のマージ
答え4
試してみてください:
:g/^\d/,/^\d/-1j
そしてエラーメッセージを無視してくださいE16:誤った範囲