Esse hack da história é uma maneira muito estranha de resolver esse problema, e é bem frágil. Não funcionará com alguns caracteres que sejam válidos em nomes de arquivos do Windows, como parênteses.
Há uma maneira muito mais fácil de usar para um caminho do Windows colado. Em vez de colá-lo no editor de linha, chame o utilitário getclip
(que é em cygutils-extra
nos últimos versões do Cygwin ).
cdw () {
cd "$(getclip)"
}
cd "'getclip'"/../foo
Você pode, às vezes, sair sem as aspas duplas, mas nem sempre, por exemplo se um nome de arquivo contiver dois espaços consecutivos.
Se você quiser editar o caminho, vincule uma chave a expand-or-complete-prefix
, por exemplo digite "'getclip'"
e pressione Esc Tab :
bindkey '\e\t' expand-or-complete-prefix
Outra abordagem é vincular uma chave para inserir o conteúdo entre aspas da área de transferência.
insert-quoted-clipboard-content () {
local text=${(q)$(getclip)}
BUFFER=${BUFFER:0:$CURSOR}$text${BUFFER:$CURSOR:}
((CURSOR += #text))
}
zle -N insert-quoted-clipboard-content
bindkey '^X^V' insert-quoted-clipboard-content