Copia incolla - terminale st - sessione screen - vim

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3046
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Copia incolla - terminale st - sessione screen - vim

Messaggioda joe » lun giu 10, 2019 16:40

Sto provando dwm (il window manager da suckless.org).
Siccome di default ha come terminale "st", che sta per simple terminal, ho lasciato quello, per non richiamare konsole (mi pare che avrebbe poco senso usare il terminale di KDE per provare un ambiente minimalistico).

Di solito apro il terminale, lancio:

Codice: Seleziona tutto

"screen -U"

E ho la mia brava sessione testuale con più terminali, il tutto "detachabile" all'occorrenza ecc...

Tra le varie cose che solitamente faccio c'è senz'altro l'utilizzo dell'editor "vim".
Quindi ricapitolando:
- apro il terminale st
- lancio la sessione screen
- apro vim

Una cosa banale è copiare del testo o un indirizzo dal browser o da un'altra applicazione grafica e incollarlo in VIM.
Solitamente in KDE con console facevo così:
- selezione via mouse del testo o link da copiare
- click destro + copia
- in Vim vado in modalità INSERT, magari con "set paste" quando voglio mantenere l'indentazione, e premo shift-insert per incollare il testo o il link copiato prima

Ora col terminale "st", shift+insert non incolla nulla.
Allora il ripiego potrebbe essere cliccare col tasto centrale del mouse, ma aprendo vim da sessione screen l'incollaggio non avviene.

Ho scoperto che cambiando la variabile TERM (da "screen" a per esempio "linux"), prima di lanciare VIM, allora almeno l'incolla col taso centrale funziona bene. Però non mi pare un ripiego più che un settaggio diciamo canonico.

Domanda:
qualcun altro ha rilevato il problema?
se sì, avete soluzioni da condividere?
Grazie in anticipo! :)

miklos
Master
Master
Messaggi: 1505
Iscritto il: lun lug 16, 2007 17:39
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2
Località: Roma

Re: Copia incolla - terminale st - sessione screen - vim

Messaggioda miklos » mar giu 11, 2019 7:30

il copia incolla su st se non hai cambiato la configurazione funziona con il ctrl+shift+c/ctrl+shift+v

c'è da dire che dipende molto anche dalla specifica applicazione che utilizzi quindi probabilmente questa configurazione su VIM potrebbe nn essere utile

un'altro problema di questi sistemi nn più punta e clikka è che una combinazione di tasti potrebbe essere intercettata prima da dwm/st e nn propagata alle applicazioni finali (in questo caso VIM)

perciò prova con il copia incolla di st..se nn funziona esiste una piccola app chiamata xclip che da riga di comando è in grado di gestire la clipboard... altrimenti e so che nn è una soluzione.. prova gvim :)
ho visto cose che voi astemi non potete immaginare
https://github.com/ilmich

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3046
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Copia incolla - terminale st - sessione screen - vim

Messaggioda joe » mar giu 11, 2019 10:01

CTRL+SHIFT+V funziona!

Anche all'interno della sessione screen.

Strano invece il comportamento del tasto centrale del mouse, incollando in insert mode:
- se vim è aperto all'interno della sessione screen non incolla il contenuto della clipboard derivante da altra applicazione X. Ad esempio se seleziono del testo in firefox e magari faccio anche click destro copia, poi mi sposto col mouse sulla finestra di "st" in cui ho aperto vim in insert mode e clicco col tasto centrale, non viene incollato il testo copiato. Viene incollato il contenuto di un'altra "clipboard", quella interna a vim, che si richiama anche premendo "p" in normal mode, per capirci.

- se vim invece è aperto, sempre in insert mode, direttamente in "sl", senza quindi la sessione screen di mezzo, ecco che il nostro tasto centrale fa quello che ci si aspetta, cioè incolla il testo copiato da firefox.

Come anticipato in entrambi i casi la combinazione ctrl+shift+v funziona e incolla regolarmente il testo copiato da firefox

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3046
Iscritto il: ven apr 27, 2007 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Copia incolla - terminale st - sessione screen - vim

Messaggioda joe » mar giu 11, 2019 10:21

Anche la copia di testo da vim presenta comportamento similmente bizzarro.

Se vim è lanciato direttamente in terminale sl posso selezionare del testo col mouse, tenendo premuto il tasto sinistro e selezionando quello che mi interessa copiare. Poi posso spostarmi ad esempio in un form di una pagina web aperta con firefox e incollare il contenuto in tre modi differenti:
- ctrl+v
- click tasto centrale
- click dx e poi "incolla"

Se invece vim si trova aperto all'interno di una sessione screen (sia aperta in sl, che in altro terminale tipo konsole) la selezione col mouse ha qualche problema.
In pratica l'editor viene mandato in visual mode con il testo che abbiamo selezionato, effettivamente evidenziato... ma in visual mode, cioè non si può copiare nella clipboard di X in questo modo. In pratica il problema è che non si può neanche selezionare il testo (perchè il visual mode prende il sopravvento).

La scappatoia c'è, ma non so se esista anche altro modo: in screen si preme "CTRL+A ESC" (quindi si va in screen copy mode), ed ecco che a questo punto si può selezionare il testo del terminale col mouse senza problemi, la selezione in questo modo finisce come desiderato nella clipboard di X ed è richiamabile ad esempio in firefox coi tre modi sopra spiegati: ctrl-v, mouse centrale, mouse-dx + tendina + incolla.