Como executo o Windows vim a partir de uma função dentro do meu .bashrc?

Como executo o Windows vim a partir de uma função dentro do meu .bashrc?

Instalei o Windows Vim e adicionei a seguinte função ao meu .bashrc:

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"
}

Quando digito winvim, sou informado de que não existe esse arquivo ou diretório. No entanto, se eu digitar o caminho explicitamente no cygwin, o vim será executado conforme o esperado.

O que há de errado aqui?

Responder1

Ao definir o valor de win_vim_path, você precisaqualqueraspas simples ou barras invertidas para escapar dos espaços/parênteses, mas não ambos.

local win_vim_path=/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/vim.exe

ou

local win_vim_path='/cygdrive/c/Program Files (x86)/Vim/vim73/vim.exe'

A versão citada é preferida por ser mais fácil de ler e digitar.

Responder2

Da memória:

local win_vim_path="$(cygpath -u "$PROGRAMFILES")/Vim/vim73/vim.exe"

informação relacionada