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

1

Me gustaría saber si hay una manera 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 archivo nuevo (que guardo como '.cpp'), tengo que Cmd + C y Cmd + V todas las directivas de preprocesador, es decir, #include <..> 's y #define ' s de uno de mis archivos '.cpp' anteriores. ¿Existe alguna forma de que todas estas cosas se escriban en un archivo y en cada archivo nuevo que guardo como un archivo c ++ en el que se cargan estos datos y, por lo tanto, se guarda mi copia / pegado? Eclipse IDE tiene esta característica, quería saber si también es posible en Sublime Text. Gracias!

    
pregunta Aditya Bahuguna 19.12.2014 - 19:16

1 respuesta

2

Deberías usar un fragmento de código. Por ejemplo, puede definir un nuevo fragmento de código y activarlo con !initcpp . Luego, abre un archivo nuevo, escribe !initcpp , pulsa y estás listo para comenzar.

Para definir uno nuevo, vaya a Herramientas → Nuevo fragmento ...

Del texto sublime: Fragmentos de código .

Los fragmentos de código se pueden almacenar en la carpeta de cualquier paquete, pero para mantenerlo simple mientras aprendes, puedes guardarlos en tu carpeta Packages/User .

Formato de archivo de fragmentos

Los fragmentos de código normalmente viven en un paquete de texto sublime. Son archivos XML simplificados con la extensión .sublime-snippet .

La estructura de un fragmento de código típico es la siguiente (incluidos los consejos predeterminados Inserciones de texto sublime para su conveniencia):

<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 de fragmento de código contiene toda la información que Sublime Text necesita para saber qué insertar, si insertar y cuándo. Veamos cada una de estas partes a su vez.

content

El fragmento real. Los fragmentos pueden ir desde plantillas simples hasta plantillas bastante complejas. Veremos ejemplos de ambos más adelante.

Ten en cuenta lo siguiente cuando escribas tus propios fragmentos:

  • Si quieres obtener un $ literal, debes escapar de esta manera: \$ .
  • Al escribir un fragmento de código que contiene sangría, siempre use pestañas. Cuando se inserta el fragmento, las pestañas se transformarán en espacios si la opción translateTabsToSpaces es true .
  • El content debe incluirse en una sección <![CDATA[…]]> . ¡Los fragmentos no funcionarán si no haces esto!
  • El content de su fragmento no debe contener ]]> porque esta cadena de caracteres cerrará prematuramente la sección <![CDATA[…]]> , lo que resultará en un error XML. Para solucionar este problema, puede insertar una variable indefinida en la cadena como esta: ]]$NOT_DEFINED> . Esta cadena modificada pasa a través del analizador XML sin cerrar la sección <![CDATA[…]]> del elemento de contenido, pero Sublime Text reemplazará $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 fragmento de código se escribirá como ]]> cuando active el fragmento.

tabTrigger

Define la secuencia de teclas que se deben presionar para insertar este fragmento. Después de escribir esta secuencia, el fragmento se activará tan pronto como presionas la tecla .

Un disparador de pestaña es un enlace de clave implícito.

scope

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

descripción

Se usa cuando se muestra el fragmento en el menú Fragmentos. Si no está presente, Sublime Text toma como valor predeterminado el nombre de archivo del fragmento.

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

    
respondido por el jherran 19.12.2014 - 21:51

Lea otras preguntas en las etiquetas