Il trascinamento e il rilascio di un file su una finestra di Terminale non sfugge al percorso in zsh 5.2

3

Sotto OS X puoi trascinare un file dal Finder (o da qualsiasi altra parte) su una finestra di Terminale e il percorso del file verrà inserito come se lo avessi inserito. Recentemente, i nomi di file con spazi hanno smesso di essere gestiti correttamente : se il percorso del file conteneva spazi precedenti, il Terminale otterrebbe una versione racchiusa tra virgolette doppie o ogni spazio preceduto da una barra rovesciata. Ora l'intero percorso del file viene semplicemente scaricato e, se contiene spazi, devo tornare indietro e sfuggire da solo.

Ho giocato con l'impostazione "shell open with" e sembra che l'escape corretto avvenga quando la shell è /bin/bash (GNU bash 3.2.57 (1) -release) o /bin/zsh (zsh 5.0. 8) ma non quando la shell è il mio /usr/local/bin/zsh installato manualmente (zsh 5.2). Sono su OS X 10.11.2.

C'è stato un cambiamento in zsh che avrebbe potuto incasinare il drag-and-drop in Terminal? Oppure il terminale stesso utilizza una sorta di lista bianca di shell che non include il mio zsh?

Modifica: ho installato zsh 5.0.8 in /usr/local/bin/zsh ei nomi dei file sono scappati correttamente per quella shell. Sembra che alcune modifiche a zsh tra le versioni 5.0.8 e 5.2 abbiano impedito il funzionamento.

    
posta bdesham 18.01.2016 - 16:27
fonte

2 risposte

6

Questo comportamento sembra essere causato dalla funzione di bracketing tra parentesi di zsh, che è attivata per impostazione predefinita dalla versione 5.1 . Ho trovato che se ho aggiunto

unset zle_bracketed_paste

al mio zshrc quindi il rilascio dei file su Terminale funziona correttamente con zsh 5.2.

( questo post del blog menziona parentesi- paste-magic, che sembra possa essere usato per supportare il rilascio di file senza disattivare l'intera funzione di bracketing, penso che avresti bisogno di scrivere del codice per far sì che accada, tuttavia, semplicemente attivando bracketed-paste-magic non correggi il mio problema.)

    
risposta data 18.01.2016 - 17:19
fonte
2

Come menzionato in la risposta di @ bdesham , Zsh 5.1 ha introdotto l'uso della "Modalità Incolla a bretella" del terminale che consente ai programmi basati su terminale di differenziare il testo incollato / trascinato dall'utente digitando i singoli caratteri.

Terminale (almeno a partire da OS X El Capitan 10.11.x) non esegue la quotatura della shell dei percorsi dei file incollati / trascinati quando la Modalità Incolla biforcuta è attiva, perché prima di Zsh 5.1 il BPM è stato utilizzato solo da schermo intero editor come Emacs e Vim, che normalmente non necessitano di quotatura della shell.

Puoi forzare l'applicazione di quotatura della shell quando si incolla / trascina premendo il tasto di modifica del controllo.

    
risposta data 24.05.2016 - 04:47
fonte

Leggi altre domande sui tag