私はVimの中に、現在の行の末尾にテキストを追加したいと思います。私は関数の文脈の中でこれをしたいと思います。Vim関数を使って現在の行の最後にテキストを追加するには?
どうすればいいですか?テキストをエスケープ/サニタイズする必要がありますか?
私はVimの中に、現在の行の末尾にテキストを追加したいと思います。私は関数の文脈の中でこれをしたいと思います。Vim関数を使って現在の行の最後にテキストを追加するには?
どうすればいいですか?テキストをエスケープ/サニタイズする必要がありますか?
あなたはexecute
コマンドでnormal
コマンドを使用することができます。
let text_for_appending = ' # a comment'
execute "normal! A" . text_for_appending
感嘆符が展開されることから、任意のキーマッピングを防ぐために含まれています。詳細は:help :normal
を参照してください。
's /:normal /&!/'です。さもなければ挿入モードマッピングが引き起こされ、OPは副作用を観察したくないようである。 –
Merci、@LucHermitte。私はあなたの提案を組み込むように編集しました。私はまたあなたの答えをアップアップしました。これはかなり賢いです。 –
は:exe
+ :normal!
を使えば、あなたが恐れていたとして、テキストをsanatizeする必要があるかもしれません - それはあなたが使用引用符の種類に依存します、そしてあなたが:normal
を強打することを忘れているかどうかに、あなたが挿入モードのマッピングや略語を持っています。 setline('.', getline('.') . text)
で
、Vimはあなたが追加text
を解釈しようとしません。これは複雑なようだが、これは続行するより堅牢な方法です - あなたはA
で物事を脱出するために開始した場合、それは方法より複雑になることができます。
':時間A' ...。 。 。 。 。 – Kent
@Kent、これは本当にスタートです。しかし、スクリプティングの文脈では、知る必要があるもう少しのことは、このドキュメントのこのセクションでは説明しません。 –