
Ich habe Windows Vim installiert und meiner .bashrc die folgende Funktion hinzugefügt:
function winvim() {
local win_vim_path='/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/vim.exe'
#local win_vim_args=`cygpath -w -a "$*"`
"$win_vim_path"
}
Wenn ich winvim eingebe, werde ich informiert, dass es keine solche Datei oder kein solches Verzeichnis gibt. Wenn ich den Pfad jedoch explizit in Cygwin eingebe, läuft vim wie erwartet.
Was ist hier falsch?
Antwort1
Wenn Sie den Wert von festlegen win_vim_path
, müssen Sieentwedereinfache Anführungszeichen oder Backslashes, um die Leerzeichen/Klammern zu maskieren, aber nicht beides.
local win_vim_path=/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/vim.exe
oder
local win_vim_path='/cygdrive/c/Program Files (x86)/Vim/vim73/vim.exe'
Die zitierte Version ist vorzuziehen, da sie leichter zu lesen und zu tippen ist.
Antwort2
Aus dem Gedächtnis:
local win_vim_path="$(cygpath -u "$PROGRAMFILES")/Vim/vim73/vim.exe"