Copia elementi da buffer di output in codice C++ su cui sto lavorando in vim. Spesso questa uscita si blocca nelle stringhe. Sarebbe bello poter sfuggire automaticamente tutti i caratteri di controllo piuttosto che tornare indietro e modificare manualmente il frammento incollato.Escape characters during paste in vim
A titolo di esempio, potrei copiare qualcosa di simile:
error in file "foo.dat"
e la necessità di mettere in qualcosa di simile
std::string expected_error = "error in file \"foo.dat\""
Sto pensando che potrebbe essere possibile applicare una funzione di sostituzione al corpo dell'ultima incolla usando i segni di inizio e fine dell'ultima incolla, ma non sono sicuro di come farlo volare.
UPDATE:
Joey Mazzarelli sugested utilizzando
`[v`]h:%s/\%V"/\\"/g
dopo una pasta.
Poiché nessuna spiegazione è stata data per quello che stava e inizialmente ho trovato un po 'laconico, ma difficile da spiegare nei commenti ho pensato di mettere una spiegazione di quello che penso che fa qui:
`[ : Move to start of last paste
v : Start visual mode
`] : Move to end of last paste
h : adjust cursor one position left
:% : apply on the lines of the selection
s/ : replace
\%V : within the visual area
" : "
/ : with
\\" : \"
/g : all occurrences
Questo sembra un buon approccio, ma gestisce solo un carattere, ", mi piacerebbe che gestisse newline, schede e altre cose che potrebbero cadere nel testo. (Probabilmente non è unicode generale) I capire che potrebbe non essere stato chiaro nella definizione del problema
Non dovrebbe essere questo il superuser? – zmbush
@zipcodeman Penso che SO sia OK poiché utilizza in modo specifico vim per un'attività di codifica. Probabilmente userò SU se fosse per l'utilizzo di vim per un'attività di sys-admin. –