2

次のような範囲 ( http://vim.wikia.com/wiki/Ranges ) 操作でマクロを作成しました。

:.,'bs/ .*$\n/ /ge^M

次に、通常は let ( http://vim.wikia.com/wiki/Macros#Editing_a_macro )を使用して編集します。

:let @b=':.,'bs/ .*$\n/ /ge^Mdd'

ただし、これらの例では、マクロ定義の ' が原因で編集が失敗します。これを解決するには?代替範囲構文または定義時に引用符をエスケープする方法。

マクロを再記録できることはわかっていますが、実際のバージョンはこれよりもはるかに長くなります!

4

1 に答える 1

3
  • このような文字列内では、単一引用符を二重にする必要があります。:let @b=':.,''bs/ .*$\n/ /ge^Mdd'
  • 二重引用符を使用できますが、二重バックスラッシュも使用できます (存在する場合):let @b=":.,'bs/ .*$\\n/ /ge^Mdd"
  • の代わりに、スクラッチ バッファに移動し、編集してから、再びレジスタに移動:letすることができます。:put b"by$
于 2016-11-18T13:17:17.797 に答える