2011-01-21 12 views
72

Quando utilizzo il comando J di Vim, la maggior parte delle linee viene unita con un singolo spazio per il riempimento. Ma dopo un periodo Vim usa sempre due spazi. Prendiamo il seguente esempio:Come posso fare in modo che i comandi `J` e` gq` di Vim utilizzino uno spazio dopo un periodo?

This ends with a comma, 
but this ends with a period. 
Join with 'J' and what do you get? 

Per me, il risultato è:

This ends with a comma, but this ends with a period. Join with 'J' and what do you get? 

Uno spazio dopo la virgola, due dopo il periodo. Stessa storia se si riformatta il paragrafo con il comando gq.

Esiste un'impostazione che è possibile modificare per consentire a Vim di utilizzare solo uno spazio dopo il periodo?

+0

Qualcuno capire la logica di questo difetto? –

+1

@CiroSantilli http://en.wikipedia.org/wiki/Sentence_spacing –

+3

@ DenilsonSá: tldr; mettere due spazi tra le frasi era considerato una buona pratica, e lo è ancora per alcune persone. – Flimm

risposta

79
:help joinspaces 


'joinspaces' 'js' boolean (default on) 
      global 
      {not in Vi} 
    Insert two spaces after a '.', '?' and '!' with a join command. 
    When 'cpoptions' includes the 'j' flag, only do this after a '.'. 
    Otherwise only one space is inserted. 
    NOTE: This option is set when 'compatible' is set. 

Quindi, si dovrebbe fare un

:set nojoinspaces 

per ottenere ciò che desideri.

In alternativa, è possibile attivare o disattivare l'impostazione con

:set joinspaces! 
9
:h 'joinspaces' 

Impostare questa opzione su 0/falso/no.

24

È necessario :set nojoinspaces per eliminare il doppio spazio. Documentation here

+1

Oppure in .vimrc: ometti i due punti iniziali: 'imposta nojoinspaces' – Luc

Problemi correlati