2009-05-13 9 views

risposta

12

Perché si incolla un nuovo carattere di linea con esso. A volte può essere utile, ad esempio, è possibile copiare/incollare molti comandi (lunghi script multi-linea) contemporaneamente.

Bene, non mi è mai venuto in mente di impedire questo particolare comportamento. È normale e previsto. WYPIWYG: ciò che si incolla è ciò che si ottiene.

+0

Quindi, se il carattere della nuova riga si trova alla fine della riga, una soluzione potrebbe essere la copia di tutto tranne l'ultimo carattere? –

+0

Sì, dovrebbe essere ovvio. –

3

Un modo rapido per impedire l'esecuzione è digitare il carattere di commento #, quindi incollare il comando.

Lo faccio spesso perché ho il dito grasso quando copio e afferro caratteri estranei.

Quando si incolla dopo il carattere di commento, il comando si trova nel buffer della cronologia ed è possibile modificarlo, decommentarlo ed eseguirlo.

--- Rispondi al commento

Hai ragione, questo funziona solo per linea singola comandi. Se si dispone di una multi-linea negli appunti, è possibile reindirizzare i dati degli appunti tramite sed.

Stupido bash trucco # 4 milioni e uno:

prompt:$ xclip -o -selection clipboard | sed --regexp-extended 's/^(.*)$/# \1;/'

si trasformerà questo:

for i in *.JPG;

do echo mv $i ${i/.JPG/.jpg};

done;

in questo:

# for i in *.JPG;

# do echo mv $i ${i/.JPG/.jpg};

# done;

che non è davvero valsa la pena, ma un pò di divertimento;>

+1

Ottimo per i comandi a linea singola, ma se si tratta di una linea multipla, la prima istruzione non verrà eseguita, ma il resto continuerà a funzionare. – Andy

9

incolli uno o più caratteri di nuova riga . Altri che semplicemente non copiando e incollando caratteri di nuova riga ci sono alcune cose che potete fare per ovviare a questo:

  • per i comandi a riga singola, digitare "#" prima, in modo che il comando sarà commentate. Puoi quindi tornare indietro e modificarlo.

  • Utilizzare la funzione edit-and-execute-command di bash (apparentemente poco conosciuta). Per invocarlo è possibile premere CTRL-xCTRL-e se si utilizzano le combinazioni di tasti emacs (impostazione predefinita) o ESC v se si utilizzano le combinazioni di tasti vi. Questo invocherà un editor di testo contenente la tua attuale riga di comando. È quindi possibile incollare nell'editor e modificare il comando.Una volta salvati e abbandonati, i comandi salvati dall'editor verranno eseguiti (se si desidera interrompere o commentare tutte le righe o cancellare completamente il buffer). È possibile impostare quale editor è utilizzato con le variabili di ambiente FCEDIT o EDITOR.

Problemi correlati