2011-10-11 11 views
5

Vorrei implementare un file di sintassi per Vim che nasconde determinati caratteri nel file. Nello specifico, voglio scrivere un evidenziatore migliorato per leggere i file Markdown che non mostrano alcuni dei caratteri di formattazione, preferendo invece indicarli implicitamente. Ad esempio, mi piacerebbe avere le cose come *bold* rendere nel modo più semplice bold con testo in grassetto, o di avere titoli comeVim sintassi di evidenziazione Nascondi caratteri

My Header 
========= 

non mostrare la loro sottolineatura, ma solo apparire di un colore diverso. Non sono riuscito a trovare alcun esempio finora di file di sintassi vim che nascondono caratteri specifici dal display. È qualcosa che è possibile in vim? Se é cosi, come?

+5

Non riesco a metterci un dito sopra, ma sembra un'idea terribile. Vim è per modificare il testo, non renderlo via (ad eccezione delle pieghe, ovviamente). – Bradford

+1

se vuoi un'esperienza Wysiwyg cerca il plugin che mantiene sincronizzata una finestra del browser con il documento markdown modificato. Non ricordo quale fosse, ma è stato discusso prima – sehe

risposta

10

Per nascondere gli elementi di sintassi, o solo determinati caratteri, è possibile utilizzare gli argomenti di occultamento o Ignora. Vedere

:help hl-Ignore 
:help syn-conceal 

Per un esempio vedere il file di sintassi "help.vim" che fa parte del crefvim. CRefVim è un manuale di riferimento C incorporato nel sistema di guida di Vim. Il file di sintassi "help.vim" estende l'evidenziazione della sintassi standard per i file della guida.

Un esempio. Il carattere '$' è qui utilizzato per visualizzare il testo in corsivo:

example on how to use Ignore syntax argument, help.vim

Forse questo esempio è un buon punto di partenza per voi di scavare ulteriormente ...

Habi

1

Si potrebbe crea il tuo file di sintassi con un secondo colortheme, usando "grassetto", "corsivo" e simili. Non nasconderebbe nulla, in modo che la sintassi dovesse funzionare con il testo originale. Per esempio, questo potrebbe essere la sintassi per le intestazioni

Nella tua sintassi si avrebbe bisogno:

syn match Header '^\s*\u*\.\s.*$' contains=ALL 
hi link Header ModeMsg 

e nel colortheme

hi ModeMsg gui=bold guifg=NONE guibg=NONE cterm=bold ctermfg=NONE ctermbg=NONE term=bold 

poi un colpo di testa come questo

1. This is my new header, being bold 

verrebbe visualizzato in grassetto, senza alcun markup. A proposito, puoi esportarlo con la funzione TOhtml mantenendo l'evidenziazione.

Problemi correlati