emacs, gendoc

This commit is contained in:
Tano Papúa 2023-01-14 11:41:24 -03:00
parent 549dc2b4f9
commit 97470ce05c

View file

@ -12,7 +12,7 @@
<div class="frame content">
<input type="radio" name="page" id="_" checked><input type="radio" name="page" id="_la_organizacion_de_la_pantalla"><input type="radio" name="page" id="_tipo_de_entradas_de_los_usuarios"><input type="radio" name="page" id="_teclas_comandos"><input type="radio" name="page" id="_entrar_y_salir_de_emacs"><input type="radio" name="page" id="_comandos_basicos_de_edicion"><input type="radio" name="page" id="_el_minibufer"><input type="radio" name="page" id="_ejecutar_comandos_por_nombres"><input type="radio" name="page" id="_ayuda_help"><input type="radio" name="page" id="_la_marca_y_la_region"><input type="radio" name="page" id="_matar_y_mover_texto"><input type="radio" name="page" id="_registros"><input type="radio" name="page" id="_control_de_la_pantalla"><input type="radio" name="page" id="_busqueda_y_reemplazo"><input type="radio" name="page" id="_macros_de_teclado"><input type="radio" name="page" id="_manejo_de_archivos"><input type="radio" name="page" id="_usando_multiples_buffers"><input type="radio" name="page" id="_ventanas_multiples"><input type="radio" name="page" id="_marcos_y_pantallas_graficas"><input type="radio" name="page" id="_soporte_de_juegos_de_caracteres_internacionales"><input type="radio" name="page" id="_modos_mayores_y_menores"><input type="radio" name="page" id="_sangria"><input type="radio" name="page" id="_comandos_para_lenguajes_humanos"><input type="radio" name="page" id="_edicion_de_programas"><input type="radio" name="page" id="_compilacion_y_prueba_de_programas"><input type="radio" name="page" id="_mantener_programas_grandes">
<nav class="side nav"><div>
<div class="title"><a href="./00_Emacs.html">GNU Emacs 28.2</a><div class="version">Revisión: 0.86</div><input id="_q" class="search" type="text" required="required" onkeyup="s(this.value);"></div> <div id="_s" class="nav"></div>
<div class="title"><a href="./00_Emacs.html">GNU Emacs 28.2</a><div class="version">Revisión: 0.87</div><input id="_q" class="search" type="text" required="required" onkeyup="s(this.value);"></div> <div id="_s" class="nav"></div>
<div id="_t" class="nav">
<p>Conceptos Generales Importantes</p>
<ul>
@ -482,6 +482,9 @@
<li class="h3"><a href="#buscar_identificadores">Buscar identificadores</a></li>
<li class="h4"><a href="#busqueda_de_identificadores">Búsqueda de identificadores</a></li>
<li class="h4"><a href="#comandos_disponibles_en_el_bufer_tt_xref_tt">Comandos disponibles en el búfer <tt>*xref*</tt></a></li>
<li class="h4"><a href="#buscar_y_reemplazar_con_identificadores">Buscar y reemplazar con identificadores</a></li>
<li class="h4"><a href="#consultas_sobre_identificadores">Consultas sobre identificadores</a></li>
<li class="h3"><a href="#tablas_de_etiquetas">Tablas de etiquetas</a></li>
</ul></li>
</ul>
</div>
@ -19920,6 +19923,151 @@ Sale de la ventana que muestra el buffer <samp>*xref*</samp> (<samp>xref-quit</s
<p>
Además, los comandos de navegación habituales, como las teclas de flecha, <kbd>Ctrl</kbd>-<kbd>n</kbd> (<samp>C-n</samp>) y <kbd>Ctrl</kbd>-<kbd>p</kbd> (<samp>C-p</samp>) están disponibles
para moverse por el buffer sin mostrar las referencias.
</p>
<h4 id="buscar_y_reemplazar_con_identificadores">Buscar y reemplazar con identificadores<a href="#buscar_y_reemplazar_con_identificadores"></a></h4>
<p>
Los comandos de esta sección realizan varias operaciones de búsqueda y reemplazo en los propios identificadores o en los archivos que hacen referencia a ellos.
</p>
<dl>
<dt><kbd>Alt</kbd>-<kbd>?</kbd> (<samp>M-?</samp>)</dt>
<dd>
Busca todas las referencias del identificador en el punto.
</dd>
<dt><kbd>Alt</kbd>-<kbd>x</kbd> <samp>xref-query-replace-in-results</samp> <kbd>RETURN</kbd> <i><samp>expreg</samp></i> <kbd>RETURN</kbd> <i><samp>reemplazo</samp></i> <kbd>RETURN</kbd><br/>
(<samp>M-x xref-query-replace-in-results RET</samp> <i><samp>expreg</samp></i> <samp>RET</samp> <i><samp>reemplazo</samp></i> <samp>RET</samp>)</dt>
<dd>
Reemplaza interactivamente <i>expreg</i> con <i>reemplazo</i> en los nombres de todos los identificadores mostrados en el buffer <samp>*xref*</samp>.
</dd>
<dt><kbd>Alt</kbd>-<kbd>x</kbd> <samp>tags-search</samp> <kbd>RETURN</kbd> <i><samp>expreg</samp></i> <kbd>RETURN</kbd><br/>(<samp>M-x tags-search RET</samp> <i><samp>expreg</samp></i>
<samp>RET</samp>)</dt>
<dd>
Busca <i>expreg</i> en los archivos de la tabla de etiquetas seleccionada.
</dd>
<dt><kbd>Alt</kbd>-<kbd>x</kbd> <samp>tags-query-replace</samp> <kbd>RETURN</kbd> <i><samp>expreg</samp></i> <kbd>RETURN</kbd> <i><samp>reemplazo</samp></i> <kbd>RETURN</kbd><br/>(<samp>M-x
tags-query-replace</samp> <samp>RET</samp> <i><samp>expreg</samp></i> <samp>RET</samp> <i><samp>reemplazo</samp></i> <samp>RET</samp>)</dt>
<dd>
Realiza una consulta-reemplazo de expresiones regulares (query-replace-regexp) en cada archivo de la tabla de etiquetas seleccionada.
</dd>
<dt><kbd>Alt</kbd>-<kbd>x</kbd> <samp>fileloop-continue</samp> (<samp>M-x fileloop-continue</samp>)</dt>
<dd>
Reinicia uno de los 2 últimos comandos anteriores, desde la ubicación actual del punto.
</dd>
</dl>
<p>
<kbd>Alt</kbd>-<kbd>?</kbd> (<samp>M-?</samp>) encuentra todas las referencias para el identificador en el punto, solicitando el identificador según sea necesario, con la finalización.
Dependiendo del backend actual (ver Buscar referencias de identificadores), el comando puede preguntar incluso si encuentra un identificador válido en el punto. Cuando se invoca con
un argumento de prefijo, siempre pide el identificador. (Si quiere que pregunte siempre, personalice el valor de la variable <samp>xref-prompt-for-identifier</samp> a <samp>t</samp>; o
póngalo a <samp>nil</samp> para preguntar sólo si no hay un identificador utilizable en el punto). El comando presenta entonces el buffer <samp>*xref*</samp> con todas las referencias al
identificador, mostrando el nombre del archivo y la línea donde se hace referencia al identificador. Los comandos del modo XREF están disponibles en este búfer, véase Comandos
disponibles en el búfer <samp>*xref*</samp>.
</p>
<p>
Si el valor de la variable <samp>xref-auto-jump-to-first-xref</samp> es <samp>t</samp>, <samp>xref-find-references</samp> salta automáticamente al primer resultado y selecciona la ventana donde
se muestra. Si el valor es <samp>show</samp>, se muestra el primer resultado, pero se deja seleccionada la ventana que muestra el buffer <samp>*xref*</samp>. Si el valor es <samp>move</samp>, el
primer resultado se selecciona en el buffer <samp>*xref*</samp>, pero no se muestra. El valor por defecto es <samp>nil</samp>, que sólo muestra los resultados en el buffer <samp>*xref*</samp>,
pero no selecciona ninguno de ellos.
</p>
<p>
<kbd>Alt</kbd>-<kbd>x</kbd> <samp>xref-query-replace-in-results</samp> (<samp>M-x xref-query-replace-in-results</samp>) lee una regexp para que coincida con los nombres de los
identificadores y una cadena de reemplazo, igual que la <kbd>Alt</kbd>-<kbd>x</kbd> <samp>query-replace-regexp</samp> (<samp>M-x query-replace-regexp</samp>) ordinaria. A continuación,
realiza el reemplazo especificado en los nombres de los identificadores que coinciden en todos los lugares de todos los archivos en los que se hace referencia a estos
identificadores. Esto es útil cuando se cambia el nombre de los identificadores como parte de la refactorización. Este comando debe ser invocado en el buffer <samp>*xref*</samp> generado
por <kbd>Alt</kbd>-<kbd>?</kbd> (<samp>M-?</samp>)
</p>
<p>
<kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>tags-search</samp></b> (<samp>M-x tags-search</samp>) lee una regexp usando el minibuffer, luego busca coincidencias en todos los archivos de la tabla de
etiquetas seleccionada, un archivo a la vez. Muestra el nombre del archivo que se está buscando para que puedas seguir su progreso. En cuanto <samp>tags-search</samp> encuentra una
coincidencia, devuelve el resultado de la búsqueda. Este comando requiere que las tablas de etiquetas estén disponibles (véase Tablas de etiquetas).
</p>
<p>
Tras encontrar una coincidencia con <samp>tags-search</samp>, probablemente quiera encontrar todas las demás. <kbd>Alt</kbd>-<kbd>x</kbd> <samp>fileloop-continue</samp> (<samp>M-x
fileloop-continue</samp>) reanuda la búsqueda de etiquetas, encontrando una coincidencia más. Esto busca el resto del buffer actual, seguido por los archivos restantes de la tabla de
etiquetas.
</p>
<p>
<kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>tags-query-replace</samp></b> (<samp>M-x tags-query-replace</samp>) realiza una única <samp>query-replace-regexp</samp> a través de todos los archivos de la
tabla de etiquetas. Lee una regexp para buscar y una cadena con la que reemplazar, igual que el <kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>query-replace-regexp</samp></b> (<samp>M-x
query-replace-regexp</samp>) ordinario. Busca como <kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>tags-search</samp></b> (<samp>M-x tags-search</samp>), pero repetidamente, procesando las
coincidencias de acuerdo a su entrada. Ver Query Replace, para más información sobre query replace.
</p>
<p>
Puede controlar la sensibilidad a las mayúsculas y minúsculas de los comandos de búsqueda de etiquetas personalizando el valor de la variable <samp>tags-case-fold-search</samp>. El valor
por defecto es el mismo que el de <samp>case-fold-search</samp> (ver Lax Matching During Searching).
</p>
<p>
Es posible recorrer todos los archivos de la tabla de etiquetas con una sola invocación de <kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>tags-query-replace</samp></b> (<samp>M-x
tags-query-replace</samp>). Pero a menudo es útil salir temporalmente, lo que se puede hacer con cualquier evento de entrada que no tenga un significado especial de query replace.
Puede reanudar el reemplazo de la consulta posteriormente escribiendo <kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>fileloop-continue</samp></b> (<samp>M-x fileloop-continue</samp>); este comando
reanuda el último comando de búsqueda o reemplazo de etiquetas que haya realizado. Por ejemplo, para saltar el resto del archivo actual, puede escribir <kbd>Alt</kbd>-<kbd>&gt;</kbd>
<kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>fileloop-continue</samp></b> (<samp>M-&gt; M-x fileloop-continue</samp>) .
</p>
<p>
Tenga en cuenta que los comandos descritos anteriormente realizan búsquedas mucho más amplias que la familia <samp>xref-find-definitions</samp>. Los comandos
<samp>xref-find-definitions</samp> sólo buscan definiciones de identificadores que coincidan con su cadena o regexp. Los comandos <samp>xref-find-references</samp>, <samp>tags-search</samp>, y
<samp>tags-query-replace</samp> encuentran cada ocurrencia del identificador o regexp, como lo hacen los comandos ordinarios de búsqueda y reemplazo en el buffer actual.
</p>
<p>
Como alternativa a <samp>xref-find-references</samp> y <samp>tags-search</samp>, puedes ejecutar grep como un subproceso y hacer que <samp>Emacs</samp> te muestre las líneas coincidentes una por
una. Ver Buscar con Grep en Emacs.
</p>
<h4 id="consultas_sobre_identificadores">Consultas sobre identificadores<a href="#consultas_sobre_identificadores"></a></h4>
<dl>
<dt><kbd>Ctrl</kbd>-<kbd>Alt</kbd>-<kbd>i</kbd> (<samp>C-M-i</samp>)<br/><kbd>Alt</kbd>-<kbd>TAB</kbd> (<samp>M-TAB</samp>)</dt>
<dd>
Realiza la finalización del texto alrededor del punto, posiblemente utilizando la tabla de etiquetas seleccionada si se carga una (<samp>completion-at-point</samp>).
</dd>
<dt><kbd>Alt</kbd>-<kbd>x</kbd> <samp>list-tags</samp> <kbd>RETURN</kbd> <i><samp>archivo</samp></i> <kbd>RETURN</kbd> (<samp>M-x list-tags RET</samp> <i><samp>archivo</samp></i> <samp>RET</samp>)</dt>
<dd>
Mostrar una lista de los identificadores definidos en el archivo del programa.
</dd>
<dt><kbd>Ctrl</kbd>-<kbd>Alt</kbd>-<kbd>.</kbd> <i><samp>expreg</samp></i> (<samp>C-M-.</samp> <i><samp>expreg</samp></i> <samp>RET</samp>)</dt>
<dd>
Muestra una lista de todos los identificadores que coinciden con regexp (xref-find-apropos). Véase Búsqueda de identificadores.
</dd>
<dt><kbd>Alt</kbd>-<kbd>x</kbd> <samp>tags-next-file</samp> (<samp>M-x tags-next-file</samp>)</dt>
<dd>
Visitar los archivos registrados en la tabla de etiquetas seleccionadas.
</dd>
</dl>
<p>
En la mayoría de los modos del lenguaje de programación, puede escribir <kbd>Ctrl</kbd>-<kbd>Alt</kbd>-<kbd>i</kbd> (<samp>C-M-i</samp>) o <kbd>Alt</kbd>-<kbd>TAB</kbd> (<samp>M-TAB</samp>,
<samp>completion-at-point</samp>) para completar el símbolo en el punto. Algunos modos proporcionan una finalización especializada para este comando adaptada al modo; para aquellos que
no lo hacen, si hay una tabla de etiquetas cargada, este comando puede utilizarla para generar candidatos a la finalización. Véase Completar los nombres de los símbolos.
</p>
<p>
<kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>list-tags</samp></b> (<samp>M-x list-tags</samp>) lee el nombre de uno de los archivos cubiertos por la tabla de etiquetas seleccionada, y muestra una
lista de etiquetas definidas en ese archivo. No incluya un directorio como parte del nombre del archivo, a menos que el nombre del archivo registrado en la tabla de etiquetas incluya
un directorio. Este comando sólo funciona con el backend etags, y requiere que haya una tabla de etiquetas para el proyecto. Véase Tablas de etiquetas. Si se utiliza de forma
interactiva, la etiqueta por defecto es el nombre de archivo de la memoria intermedia actual.
</p>
<p>
<kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>tags-next-file</samp></b> (<samp>M-x tags-next-file</samp>) visita los archivos cubiertos por la tabla de etiquetas seleccionada. La primera vez que se
llama, visita el primer archivo cubierto por la tabla. Cada vez que se llama, visita el siguiente archivo cubierto, a menos que se proporcione un argumento de prefijo, en cuyo caso
vuelve al primer archivo. Este comando requiere que se seleccione una tabla de etiquetas.
</p>
<h3 id="tablas_de_etiquetas">Tablas de etiquetas<a href="#tablas_de_etiquetas"></a></h3>
<p>
Una <i>tabla de etiquetas</i> registra las etiquetas <sup>(15)</sup> extraídas al escanear el código fuente de un determinado programa o un determinado documento. Las etiquetas
extraídas de archivos generados hacen referencia a los archivos originales, en lugar de a los archivos generados que fueron escaneados durante la extracción de etiquetas. Ejemplos de
archivos generados son los archivos C generados a partir de archivos fuente Cweb, de un analizador Yacc o de definiciones de escáner Lex; archivos C preprocesados <samp>.i</samp> y
archivos Fortran producidos mediante el preprocesamiento de archivos fuente <samp>.fpp</samp>.
</p>
<div class="info"><p><span>Nota</span></p><p>
<sup>(15)</sup> Una <i>etiqueta</i> es un sinónimo de identificador de referencia. Los comandos y funciones basados en el paquete etags utilizan tradicionalmente "etiqueta" con este
significado, y esta subsección sigue esa tradición.
</p></div>
<p>
Para producir una tabla de etiquetas, se ejecuta el comando de shell <samp>etags</samp> en un documento o en el archivo de código fuente. El programa <samp>etags</samp> escribe las
etiquetas en un <i>archivo de tabla de etiquetas</i>, o archivo de etiquetas en definitiva. El nombre convencional de un archivo de etiquetas es TAGS. Véase Creación de tablas de
etiquetas. (También es posible crear una tabla de tags usando uno de los comandos de otros paquetes que pueden producir tales tablas en el mismo formato).
</p>
<p>
<samp>Emacs</samp> utiliza las tablas de tags a través del paquete <samp>etags</samp> como uno de los backends soportados por <samp>xref</samp>. Debido a que las tablas de etiquetas son
producidas por el comando <samp>etags</samp> que es parte de una distribución de <samp>Emacs</samp>, describimos las tablas de etiquetas en más detalle aquí.
</p>
<p>
La facilidad Ebrowse es similar a <samp>etags</samp> pero específicamente adaptada a C++. Vea Ebrowse en el Manual del usuario de Ebrowse. El paquete Semantic proporciona otra forma de
generar y 8utilizar etiquetas, aparte de la facilidad etags. Ver Semantic.
</p><label class="btn prev" accesskey="p" for="_compilacion_y_prueba_de_programas" title="Compilación y prueba de programas">Anterior</label></div>
<footer><hr><p>© Copyright Tano 2.022<br/><small>Generated by <a href="https://gitlab.com/bztsrc/gendoc">gendoc</a> v1.0.0</small></p></footer>
</div>