2013-09-21 17 views
11

Questa sembra una domanda molto semplice che probabilmente ha una soluzione ovvia, purtroppo non l'ho trovata.Come impedire a vim di interrompere i valori letterali stringa?

Come posso evitare che si spezzi (inserendo una nuova riga) nel mezzo di una stringa? digito una lista di stringhe, e sembra che questo:

a=['a string', 'b string', 'c 
string'] 

mi piacciono le interruzioni di riga, non voglio vim solo per avvolgere la linea e continuare sulla riga successiva dell'editor. Voglio che le mie linee siano lunghe all'incirca 80 caratteri senza inserire manualmente i newline.

Quello che voglio è o

  1. Non rompere qualsiasi stringa, anche se ha uno spazio bianco

  2. Rompere la stringa utilizzando implicita la concatenazione di stringhe, cioè chiudere la stringa e avviare una nuova stringa sulla nuova linea

  3. rottura poco prima di 'stringa c'

Le soluzioni che ho trovato più vicini non sono molto utili:

Is there any way to get vim to auto wrap python strings at 79 chars?

how to configure vim to smartly wrap python strings?

Vim: Inter-String Line Breaking

Attualmente 'J' è una delle chiavi più pesantemente utilizzati per fissare corde spezzate.

+4

Nota: ': set tw = 0' disattiva completamente il wrap delle parole. –

+1

possibile duplicato di [Come rendere vim non interrompere le stringhe quando si esegue la formattazione automatica?] (Http://stackoverflow.com/questions/10615908/how-to-make-vim-not-break-strings-when-autoformating) – glts

+0

Grazie, Rapinare. Ciò significa che devi aggiungere interruzioni di riga manualmente, non è vero? Quindi, se ho una linea con 70 caratteri e ne aggiungo altri all'inizio, ho bisogno di trovare la rottura più vicina a 80 caratteri a mano e poi premere invio. Non posso usare gq, perché ha lo stesso problema. – Dan

risposta

0

Ecco quello che faccio per avvolgere tutte le linee a 80 caratteri senza rompere nessuna parola, e preservare linee più corte:

:set formatoptions+=w 
:set tw=80 
gggqG 

È inoltre possibile utilizzare il seguente mappatura per formattare paragrafo corrente:

:nnoremap Q gqip 

spero che aiuti.

Problemi correlati