そこで、ファイルを編集したいと思います[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'