2011-10-11 24 views
5

Me gustaría implementar un archivo de sintaxis para vim que oculte ciertos caracteres en el archivo. Específicamente, quiero escribir un resaltador mejorado para leer los archivos de marcado que no muestran algunos de los caracteres de formato, prefiriendo en su lugar indicarlos implícitamente. Por ejemplo, me gustaría tener cosas como *bold* rendir como simplemente bold con el texto en negrita, o tener títulos comosintaxis Vim resaltando ocultar caracteres

My Header 
========= 

no mostrar su subrayado, pero sólo aparecerá un color diferente. Hasta ahora no he podido encontrar ningún ejemplo de archivos de sintaxis vim que oculten caracteres específicos de la pantalla. ¿Es esto algo que es posible en vim? ¿Si es así, cómo?

+5

No puedo entenderlo, pero esto suena como una idea terrible. Vim es para editar texto, no para eliminarlo (con la excepción de pliegues, por supuesto). – Bradford

+1

si desea una experiencia Wysiwyg, busque el complemento que mantiene sincronizada la ventana del navegador con el documento editado. No recuerdo cuál era, pero se discutió antes – sehe

Respuesta

10

Para ocultar elementos de sintaxis, o solo ciertos caracteres, se pueden utilizar los argumentos de ocultación o Ignorar. Ver

:help hl-Ignore 
:help syn-conceal 

Véase un ejemplo en el archivo de sintaxis "help.vim", que es parte de crefvim. CRefVim es un manual de referencia en C que está integrado en el sistema de ayuda de Vim. El archivo de sintaxis "help.vim" amplía el resaltado de sintaxis estándar para los archivos de ayuda.

Un ejemplo. El carácter '$' se utiliza aquí para mostrar texto en cursiva:

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

Tal vez este ejemplo es un buen punto de partida para que usted pueda seguir perforando ...

Habi

1

Usted podría crea tu propio archivo de sintaxis con un colortheme de acuerdo, usando "negrita", "cursiva" y similares. No ocultaría nada, por lo que su sintaxis debe funcionar con el texto original. Por ejemplo, esto podría ser su sintaxis para encabezados

en su sintaxis que se necesita:

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

y en el ColorTheme

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

entonces una cabecera como esta

1. This is my new header, being bold 

se mostraría en negrita, sin ninguna marca en absoluto. Por cierto, puede exportarlo con la función TOhtml mientras mantiene el resaltado.