私は.vimrcで遊んでいますが、次のアイデアがありました。次の機能があります。
function Fill_line ()
execute "! printf '=%.0s' {1..10}"
endfunction
私の結果は次のとおりです
Hello =test.cpp.0s
私はそれになりたいです:
==========
私もこれを試しました:
function Fill_line ()
execute "! printf '=\%.0s' {1..10}"
endfunction
%
私の質問は、文字をファイル名に置き換えないように文字をエスケープする方法です。これは、他の複雑な機能を単純化した例であることに注意してください。
ベストアンサー1
2つのバックスラッシュを使用するか、単一引用符を使用する必要があります。
execute "! printf '=\\%.0s' {1..10}"
execute '! printf "=\%.0s" {1..10}'
二重引用符で囲まれた文字列()を解析するとき、vimが知っているエスケープ文字(または)を"..."
開始しないすべてのバックスラッシュを削除するため、コマンドに渡された文字列は最終的になり、次のようになるため、これが必要です。現在のファイル名に置き換えられます。\n
\x0a
execute
! printf '=%.0s' {1..10}
%