1 votos

¿Cómo abrir un nuevo archivo c++ con una plantilla predefinida en Sublime Text?

Me gustaría saber si hay una forma de abrir no un archivo nuevo vacío sino un archivo nuevo con alguna plantilla predefinida. Participo en concursos de codificación en línea y para cada nuevo archivo (que guardo como '.cpp'), tengo que Cmd+C y Cmd+V todas las directivas del preprocesador es decir. #include <..> y #define de uno de mis archivos '.cpp' anteriores. ¿Existe alguna manera de que pueda tener todas estas cosas escritas en algún archivo y que cada nuevo archivo que guarde como un archivo c++, estos datos se carguen en él, ahorrando así mi copiar-pegar/reintroducir. Eclipse IDE tiene esta característica, quería saber si es posible de alguna manera en Sublime Text también. Gracias.

2voto

jherran Puntos 6511

Debería utilizar un fragmento. Por ejemplo, puede definir un nuevo fragmento y activarlo con !initcpp . A continuación, abra un nuevo archivo, escriba !initcpp , golpear y ya está listo para salir.

Para definir uno nuevo vaya a Herramientas → Nuevo Snippet

De Sublime Text: Recortes .

Los fragmentos pueden guardarse en la carpeta de cualquier paquete, pero para simplificar las cosas mientras aprendes, puedes guardarlos en tu Packages/User carpeta.

Formato de archivo de fragmentos

Los snippets suelen vivir en un paquete de Sublime Text. Son archivos XML simplificados con la extensión .sublime-snippet .

La estructura de un fragmento típico es la siguiente (incluyendo las pistas por defecto que Sublime Text inserta para su comodidad):

<snippet>
    <content><![CDATA[Type your snippet here]]></content>
    <!-- Optional: Tab trigger to activate the snippet -->
    <tabTrigger>xyzzy</tabTrigger>
    <!-- Optional: Scope the tab trigger will be active in -->
    <scope>source.python</scope>
    <!-- Optional: Description to show in the menu -->
    <description>My Fancy Snippet</description>
</snippet>

El elemento snippet contiene toda la información que Sublime Text necesita para saber qué insertar, si insertar y cuándo. Veamos cada una de estas partes por separado.

contenido

El fragmento actual. Los fragmentos pueden ser desde plantillas sencillas hasta plantillas bastante complejas. Más adelante veremos ejemplos de ambos.

Tenga en cuenta lo siguiente cuando escriba sus propios fragmentos:

  • Si quieres conseguir un literal $ tienes que escapar de esta manera: \$ .
  • Cuando escriba un fragmento que contenga sangría, utilice siempre tabulaciones. Cuando se inserte el fragmento, los tabuladores se transformarán en espacios si la opción translateTabsToSpaces es true .
  • El content debe incluirse en un <![CDATA[…]]> sección. Los fragmentos no funcionarán si no lo haces.
  • El content de su fragmento no debe contener ]]> porque esta cadena de caracteres cerrará prematuramente el <![CDATA[…]]> lo que da lugar a un error XML. Para evitar este problema, puede insertar una variable indefinida en la cadena de la siguiente manera: ]]$NOT_DEFINED> . Esta cadena modificada pasa por el analizador XML sin cerrar el elemento de contenido <![CDATA[…]]> pero Sublime Text sustituirá $NOT_DEFINED con una cadena vacía antes de insertar el fragmento en su archivo. En otras palabras, ]]$NOT_DEFINED> en el contenido de su archivo de fragmentos se escribirá como ]]> al activar el fragmento.

tabTrigger

Define la secuencia de teclas que hay que pulsar para insertar este fragmento. Después de teclear esta secuencia, el fragmento se activará en cuanto se pulse la tecla clave.

Un activador de pestañas es un enlace de teclas implícito.

alcance

Selector de alcance que determina el contexto en el que el fragmento estará activo. Consulte Ámbitos para obtener más información.

descripción

Se utiliza cuando se muestra el fragmento en el menú de fragmentos. Si no está presente, Sublime Text utiliza por defecto el nombre del archivo del fragmento.

Con esta información, puedes empezar a escribir tus propios fragmentos como se describe en las siguientes secciones.

0 votos

Wow!! :D Funciona como un encanto, exactamente como yo quería. Gracias por una respuesta tan detallada y clara. @jherran

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X