VIM commenta quello che incollo


14

Ho avuto questo quando ho provato a copiare questa idea su vim: https://gist.github.com/w0ng/3278077

inserisci qui la descrizione dell'immagine

Noto lo stesso comportamento ovunque: se incollo qualcosa che include un commento, tutto ciò che segue il commento viene incollato commentato.

Forse ha qualcosa a che fare con il fatto che se scrivo un commento sulla modalità di inserimento e premo Invio, la riga seguente aggiunge automaticamente un commento.

Come posso liberarmi di questo comportamento?

Risposte:


26

Entra in modalità incolla prima di incollare:

:set paste

Per tornare alla modalità "normale":

:set nopaste

6
oppure: imposta incolla! toggle :)
valbaca,

@valbaca Puoi usare i backtick per creare code blocksnei commenti
Izkata,

Avevo bisogno di quei comandi al contrario!

11

Oltre pasteall'opzione menzionata da Mat , puoi anche accedere direttamente agli Appunti X da VIM:

  • "*p per inserire la selezione X11
  • "+p per inserire gli appunti X11

È necessaria una versione VIM con supporto X11 (in Debian e suoi derivati ​​è necessario installare il pacchetto vim-gtko vim-gnome).

Per ulteriori informazioni, consultare la documentazione ( :help x11-selection).


6

Ecco cosa sta succedendo. Ci sono opzioni di formattazione di Vim che commentano automaticamente le nuove righe quando sei su una riga di commento. Alcune di queste opzioni sono generalmente abilitate per impostazione predefinita. Per esempio,

# a comment<CR>
# 

Come puoi vedere, la nuova riga è stata automaticamente preceduta da un carattere di commento. È possibile disabilitare la maggior parte di queste opzioni rimuovendo ce rdall'impostazione formatoptions. Vedere :h fo-tableper ulteriori informazioni su queste opzioni.

:set formatoptions-=cr

Vim non ha modo di distinguere tra il testo incollato con i meccanismi di incollaggio dell'emulatore di terminale e il testo digitato. L'impostazione delle opzioni di incolla ( set paste) dice a Vim di aspettarsi del testo incollato e disabilitare eventuali opzioni di formattazione che sarebbero indesiderabili.


3

Il mio preferito sta usando il putcomando.

  • :put* incolla dalla selezione sulla riga corrente
  • :put+ incolla dal buffer sulla riga corrente

"*p/ "+pè anche buono, ma :pu[t]ha alcuni vantaggi:

  • incolla sempre in linea
  • puoi aggiungere un parametro aggiuntivo per controllare dove inserire:
    • :$put+ incolla dopo l'ultima riga
    • :0put+ incolla all'inizio del file

1

Come risposta laterale, se hai dei file che contengono questo, puoi sbarazzartene accedendo alla modalità blocco Visual verticale

ctrl+ ve quindi usando i tasti freccia / hjkl per navigare tra le parti che si desidera eliminare e poi semplicemente colpired

A volte lo trovo più veloce dell'annullamento dell'impostazione della modalità incolla, dell'incollaggio e dell'inserimento della modalità incolla.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.