たとえば、次のようなテキストがあるとします。
/ apple
/ orange
/ banana
/ bread
列に連続した整数を効率的に追加するには?
/1 apple
/2 orange
/3 banana
/4 bread
実際の問題では、リストの長さは20行、50行以上である可能性があります。
答え1
vim
1つのアイデアはマクロ機能を使用することです。カーソルを/
最初の位置に置き、/ apple
次の操作を行います。
a1<Esc>
すべてを開始するには、最初の数字を挿入します(<Esc>
Escapeキーで)。次に、新しく挿入された項目にカーソルを置き、1
マクロを記録します(スロットにq
)。
qqyiwj0p<C-a>q
これで、最初の2行に番号が付けられているはずです。これでマクロをn-2
複数回実行できます。ここでのn
総行数は次のとおりです。たとえば、50行がある場合は2行を手動で入力したため、マクロを48回実行します。
48@q
答え2
vimの「外部コマンドによるパイプ」機能を使用できます。 vimでファイルを開き、次のようにします。
:%!cat -n | awk '{print $2, $1, $3;}' | sed 's/ //'
巧妙なawkコードを使用すると、sedを使用する必要はありません(各行の最初のスペースのみを削除します)。 30秒以内に動作しなかったため、sedを使用しました。