1

起動時にVimScriptを使用してVimのデフォルトruntimepath(別名)を置き換えようとしています。設定している値が内部にないため使用できません。ただし、Vimは、パターン(2番目のパラメーター)として渡そうとするたびに不平を言うか、何もしないようになります。rtpsubstitute().vimrc.vimrc~substitute()

Vimにチルダを一致させて交換するように指示するにはどうすればよいですか?大まかに私がやりたいのはこれです:

vim -c 'let &rtp = substitute(&rtp, "\\~", "/absolute/path", "g")'

結局のところ\~、私は次のようになります:(E33: No previous substitute regular expressionこれはパターンであり、置き換えではありませんが)。しかし\\~、コマンドラインで上記を使用すると、Vimはエラーを表示しませんが、の値に変化は見られませんruntimepath

注:上記のコマンドラインに追加-c 'set rtp'しているので、Vimはすぐに値を表示します。

VimScriptの変数内ののすべてのインスタンスを置き換える別の方法も受け入れられます。~runtimepath

4

1 に答える 1

1

あなたのことはわかりませんが、ここに&rtpはチルダが1つ含まれていません。すべてのファイルパスは絶対です:/home/romainl/.vim/something

let aaa = substitute(&rtp, "/home/romainl", "~", "g")

関連するすべてのファイルパスをに変換し~/.vim/somethingます。

let bbb = substitute(aaa, "\\~", "/home/romainl", "g")

すべてをに~/.vim/something戻します/home/romainl/.vim/something

于 2013-03-06T22:10:56.090 に答える