そこで、ファイルを編集したいと思います[1]。問題は、というファイルもあります1。また、cygwinとそのbashシェル、win32cmdおよびLinuxも使用しています。cygwinを使用するvimこともあれば、win32vimとを使用することもありgvimます。
ファイルを開く一貫した方法が見つかりません[1]。多くの場合、ファイルグロブとしてvim表示[1]され、代わりに開き1ます。
Linuxでは、:e [1]失敗しますが、:e \[1]機能します。win32では、:e \[1]失敗します。
fnameescape()、、shellslashおよびオプションを含むパッセージの曲がりくねった迷路に閉じ込められているようでisfname、win32はパス区切り文字としてvim処理しようとします。\
あはは!
:e [[]1]うまくいくようです(?)。確かに、このパターンに到達するための「公式の」方法(vim関数の呼び出しなど)はありますか?(編集:いいえ、これは[1] すでに存在する場合にのみ機能します。ため息をつきます。)
編集
Ingo Karkatの回答の後、私のファイル読み込みbashスクリプトには次のスニペットが含まれています。
# Double single quotes are single quotes in a single-quoted vim string (got that?)
FILE=${FILE//\'/\'\'}
[[ -n $FILE ]] && gvim -u NONE -U NONE -f --remote-send '<c-\><c-n>:let b = bufwinnr('\'"$FILE"\'')|if b != -1|exec b "wincmd w"|else|new `='\'"$FILE"\''`|endif<cr>'
gvim -u NONE -U NONE -e -s --cmd 'let a = remote_foreground("GVIM")|q'