Nói rằng tôi có vimscript này là "/tmp/example.vim":Thoát "%" trong Vim khi kích hoạt, vì vậy nó không được mở rộng thành tên tệp?
let g:input = "START; % END"
exec("! clear && echo " . shellescape(g:input))
Nếu tôi mở tập tin đó và chạy nó với :so %
, sản lượng sẽ
START; /tmp/example.vim END
vì "% "được mở rộng đến tên bộ đệm. Tôi muốn đầu ra là
START; % END
Tôi có thể sử dụng phương pháp chung escape()
để thoát khỏi các dấu hiệu phần trăm nói riêng. Công trình này:
let g:input = "START; % END"
exec("! clear && echo " . escape(shellescape(g:input), "%"))
Nhưng đó thực sự là cách tốt nhất? Tôi chắc rằng có nhiều nhân vật hơn tôi nên trốn thoát. Có chức năng thoát cụ thể nào cho mục đích này không? Hoặc một cách tốt hơn để loại bỏ?
Rất tốt, cảm ơn bạn! –