magit; gendoc: emacs, nnn y smu, Acerca de

This commit is contained in:
Tano Papúa 2023-05-28 08:42:01 -03:00
parent 7c97d4e71a
commit f32451a7b4
4 changed files with 242 additions and 43 deletions

View File

@ -75,19 +75,23 @@ Recuerda a Pedro Francisco de las Casas y su Fiel Ladero Fleki, Autores del que
Se construyó usando:
<ul>
<li>
Pluma estilográfica <code>emacs -nw</code> para dibujo de planos.
<code>emacsclient -nw</code> para:
<ul>
<li>
Escribir código.
</li><li>
Reguetón cotidiano y gran elenco a cargo de:
<ul>
<li>
<a href="https://www.musicpd.org/" target="_blank"><code>mpd</code></a> con <a href="https://rybczak.net/ncmpcpp/" target="_blank"><code>ncmpcpp</code></a>.
Compilar la construcción del sitio y previsualizarlo con <code>eww</code>.
</li><li>
Seguimiento del repositorio local bajo Sistema de Control de Versiones (<code>git</code>) y envío de cambios confirmados: <code>magit</code>.
</li>
</ul>
</li>
</ul>
<ul>
<li>
Albañiles:
Música/Podcasts mientras escribo a cargo de: <a href="https://www.musicpd.org/" target="_blank"><code>mpd</code></a> con <a href="https://rybczak.net/ncmpcpp/" target="_blank"><code>ncmpcpp</code></a>.
</li><li>
Herramientas que uso para construir este sitio:
<ul>
<li>
<a href="./archivos-gendoc/09_mksite.html" target="_blank"><code>mksite</code></a>.
@ -101,12 +105,14 @@ Albañiles:
</ul>
<ul>
<li>
Maquinaria pesada:
Sistema Operativo y Gestores de Ventanas:
<ul>
<li>
<a href="./programas.html" target="_blank">i3wm</a>.
</li><li>
<a href="https://www.gentoo.org/" target="_blank">Papúa</a>.
</li><li>
<a href="./programas.html" target="_blank">i3wm</a> y <a href="https://dwm.suckless.org/" title="Proyecto suckless">dwm</a>.
</li><li>
Terminal <a href="https://st.suckless.org/" title="Proyecto Suckless">st</a> con mulltiplexador <a href="https://github.com/tmux/tmux/wiki" title="Repositorio GitHub">tmux</a>.
</li>
</ul>
</li>

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"><input type="radio" name="page" id="_abreviaturas"><input type="radio" name="page" id="_dired_el_editor_de_directorios"><input type="radio" name="page" id="_el_calendario_y_la_agenda"><input type="radio" name="page" id="_envio_de_correo"><input type="radio" name="page" id="_leer_el_correo_con_rmail"><input type="radio" name="page" id="_correo_electronico_y_noticias_de_usenet_con_gnus"><input type="radio" name="page" id="_seguridad_en_el_host"><input type="radio" name="page" id="_seguridad_de_la_red"><input type="radio" name="page" id="_visualizacion_de_documentos"><input type="radio" name="page" id="_ejecutar_comandos_de_la_shell_desde_tt_emacs_tt"><input type="radio" name="page" id="_uso_de_emacs_como_servidor"><input type="radio" name="page" id="_impresion_de_copias_en_papel"><input type="radio" name="page" id="_ordenar_el_texto"><input type="radio" name="page" id="_edicion_de_imagenes"><input type="radio" name="page" id="_edicion_de_archivos_binarios"><input type="radio" name="page" id="_guardar_sesiones_de_emacs"><input type="radio" name="page" id="_niveles_de_edicion_recursiva"><input type="radio" name="page" id="_funciones_de_hipervinculo_y_navegacion_web"><input type="radio" name="page" id="_juegos_y_otras_diversiones"><input type="radio" name="page" id="_paquetes_emacs_lisp"><input type="radio" name="page" id="_personalizacion">
<nav class="side nav"><div>
<div class="title"><a href="./00_Emacs.html">GNU Emacs 28.2</a><div class="version">Revisión: 1.77</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: 1.78</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>
@ -697,6 +697,8 @@
<li class="h3"><a href="#variables_locales_en_archivos">Variables locales en archivos</a></li>
<li class="h4"><a href="#especificacion_de_variables_de_archivos">Especificación de variables de archivos</a></li>
<li class="h4"><a href="#seguridad_de_las_variables_de_archivo">Seguridad de las variables de archivo</a></li>
<li class="h3"><a href="#variables_locales_por_directorio">Variables locales por directorio</a></li>
<li class="h3"><a href="#variables_locales_por_conexion">Variables locales por conexión</a></li>
</ul></li>
</ul>
</div>
@ -29734,6 +29736,139 @@ normalmente <samp>Emacs</samp> pide confirmación sobre el procesamiento de las
</p>
<p>
Como excepción, <samp>Emacs</samp> nunca pide confirmación para evaluar cualquier forma <samp>eval</samp> si esa forma ocurre dentro de la variable <samp>safe-local-eval-forms</samp>.
</p>
<h3 id="variables_locales_por_directorio">Variables locales por directorio<a href="#variables_locales_por_directorio"></a></h3>
<p>
A veces, puede desear definir el mismo conjunto de variables locales para todos los archivos de un determinado directorio y sus subdirectorios, como el árbol de directorios de un
gran proyecto de software. Esto puede lograrse con <i>variables locales de directorio</i>. Las variables locales de archivo anulan las variables locales de directorio, por lo que si
algunos de los archivos de un directorio necesitan ajustes especializados, puede especificar los ajustes para la mayoría de los archivos del directorio en las variables de
directorio, y luego definir las variables locales de archivo en unos pocos archivos que necesitan los ajustes generales anulados.
</p>
<p>
La forma habitual de definir las variables locales de directorio es poner un fichero llamado <samp>.dir-locals.el</samp> <sup>(22)</sup> en un directorio. Siempre que <samp>Emacs</samp>
visite cualquier fichero en ese directorio o en cualquiera de sus subdirectorios, aplicará las variables locales de directorio especificadas en <samp>.dir-locals.el</samp>, como si
hubieran sido definidas como variables locales de fichero para ese fichero (ver Variables locales en ficheros). El Editor busca <samp>.dir-locals.el</samp> empezando en el directorio del
fichero visitado, y moviéndose hacia arriba en el árbol de directorios. Para evitar la ralentización, esta búsqueda se omite para los archivos remotos. Si es necesario, la búsqueda
puede ser extendida para archivos remotos estableciendo la variable <samp>enable-remote-dir-locals</samp> a <samp>t</samp>.
</p>
<div class="info"><p><span>Nota</span></p><p>
<sup>(22)</sup> En MS-DOS, el nombre de este archivo debe ser <samp>_dir-locals.el</samp>, debido a las limitaciones de los sistemas de archivos de DOS. Si el sistema de archivos está
limitado a 8+3 nombres de archivo, el nombre del archivo será truncado por el SO a <samp>_dir-locals.el</samp>.
</p></div>
<p>
También puede usar <samp>.dir-locals-2.el</samp>; si se encuentra, <samp>Emacs</samp> lo carga además de <samp>.dir-locals.el</samp>. Esto es útil cuando <samp>.dir-locals.el</samp> está bajo
control de versiones en un repositorio compartido y no puede ser usado para personalizaciones.
</p>
<p>
El archivo <samp>.dir-locals.el</samp> debe contener una lista especialmente construida, que mapea los nombres de los modos principales (símbolos) a <samp>alists</samp> (ver Association
Lists en The Emacs Lisp Reference Manual). Cada entrada de la lista consiste en un nombre de variable y el valor local del directorio que se asigna a esa variable, cuando el modo
principal especificado está activado. En lugar de un nombre de modo, puede especificar <samp>nil</samp>', lo que significa que la lista se aplica a cualquier modo; o puede especificar
un subdirectorio (una cadena), en cuyo caso la lista se aplica a todos los archivos de ese subdirectorio.
</p>
<p>
Este es un ejemplo de un archivo <samp>.dir-locals.el</samp>:
</p>
<div class="pre"><pre>
(nil . ((indent-tabs-mode . t)
(fill-column . 80)
(mode . auto-fill)))
(c-mode . ((c-file-style . &quot;BSD&quot;)
(subdirs . nil)))
(&quot;src/imported&quot;
. ((nil . ((change-log-default-name
. &quot;ChangeLog.local&quot;))))))
</pre></div>
<p>
Esto establece las variables <samp>indent-tabs-mode</samp> y <samp>fill-column</samp> para cualquier archivo en el árbol de directorios, y el estilo de indentación para cualquier archivo
fuente C. El elemento especial <samp>mode</samp> especifica el modo menor a habilitar. Así, (<samp>mode . auto-fill</samp>) especifica que el modo menor <samp>auto-fill-mode</samp> debe estar
habilitado. El elemento special <samp>subdirs</samp> no es una variable, sino una palabra clave especial que indica que la configuración del modo C sólo debe aplicarse en el directorio
actual, no en ningún subdirectorio. Finalmente, especifique un nombre de archivo <samp>ChangeLog</samp> diferente para cualquier archivo en el subdirectorio <samp>src/importado</samp>.
</p>
<p>
Si el archivo <samp>.dir-locals.el</samp> contiene múltiples valores diferentes para una variable utilizando diferentes nombres de modo o directorios, los valores se aplicarán en un
orden tal que los valores para modos más específicos tengan prioridad sobre los modos más genéricos. Los valores especificados bajo un directorio tienen aún más prioridad. Por
ejemplo:
</p>
<div class="pre"><pre>
((nil . ((fill-column . 40)))
(c-mode . ((fill-column . 50)))
(prog-mode . ((fill-column . 60)))
(&quot;narrow-files&quot; . ((nil . ((fill-column . 20))))))
</pre></div>
<p>
Los archivos que utilizan <samp>c-mode</samp> también coinciden con <samp>prog-mode</samp> porque el primero hereda del segundo. Sin embargo, el valor utilizado para la columna de relleno en
los archivos C será <samp>50</samp> porque el nombre del modo es más específico que <samp>prog-mode</samp>. Los archivos que utilicen otros modos que hereden de <samp>prog-mode</samp> utilizarán
<samp>60</samp>. Cualquier fichero bajo el directorio <samp>narrow-files</samp> utilizará el valor aunque utilice <samp>c-mode</samp> porque las entradas de directorio tienen prioridad
sobre las entradas de modo.
</p>
<p>
Puede especificar las variables <samp>mode</samp>, <samp>eval</samp>, y <samp>unibyte</samp> en su <samp>.dir-locals.el</samp>, y tienen el mismo significado que tendrían en las variables locales de
archivo. <samp>coding</samp> no puede ser especificada como una variable local de directorio. Vea Variables locales en archivos.
</p>
<p>
La clave especial <samp>auto-mode-alist</samp> en un <samp>.dir-locals.el</samp> le permite establecer el modo principal de un archivo. Funciona de forma muy parecida a la variable
<samp>auto-mode-alist</samp> (ver Elección de los modos de los archivos). Por ejemplo, así es como puede decirle a <samp>Emacs</samp> que los archivos fuente <samp>.def</samp> en este directorio
deben estar en modo C:
</p>
<div class="pre"><pre>
((auto-mode-alist . ((&quot;\\.def\\'&quot; . c-mode))))
</pre></div>
<p>
En lugar de editar el archivo <samp>.dir-locals.el</samp> a mano, puede utilizar el comando <kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>add-dir-local-variable</samp></b> (<samp>M-x
add-dir-local-variable</samp>). Esto solicita un modo o subdirectorio, la variable y el valor, y añade la entrada que define la variable <samp>directory-local</samp>.
<kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>delete-dir-local-variable</samp></b> (<samp>M-x delete-dir-local-variable</samp>) borra una entrada. <kbd>Alt</kbd>-<kbd>x</kbd>
<b><samp>copy-file-locals-to-dir-locals</samp></b> (<samp>M-x copy-file-locals-to-dir-locals</samp>) copia las variables <samp>file-local</samp> del fichero actual en <samp>.dir-locals.el</samp>.
</p>
<p>
Otro método para especificar variables locales de directorio es definir un grupo de pares de variables/valores en una clase de directorio, usando la función
<samp>dir-locals-set-class-variables</samp>; luego, dígale a <samp>Emacs</samp> qué directorios corresponden a la clase usando la función <samp>dir-locals-set-directory-class</samp>. Estas
llamadas a la función normalmente van en su fichero de inicialización (ver El fichero de inicialización de Emacs). Este método es útil cuando no puede poner <samp>.dir-locals.el</samp>
en un directorio por alguna razón. Por ejemplo, puede aplicar la configuración a un directorio no escribible de esta manera:
</p>
<div class="pre"><pre>
(dir-locals-set-class-variables 'unwritable-directory
'((nil . ((some-useful-setting . value)))))
(dir-locals-set-directory-class
&quot;/usr/include/&quot; 'unwritable-directory)
</pre></div>
<p>
Si una variable tiene especificado tanto un valor local de directorio como un valor local de archivo, el valor local de archivo tiene efecto. Las variables locales de directorio
inseguras se manejan de la misma manera que las variables locales de archivo inseguras (ver Seguridad de las variables de archivo).
</p>
<p>
Las variables locales de directorio también tienen efecto en ciertos búferes que no visitan un archivo directamente sino que realizan trabajos dentro de un directorio, como los
búferes Dired (ver Dired, el editor de directorios).
</p>
<h3 id="variables_locales_por_conexion">Variables locales por conexión<a href="#variables_locales_por_conexion"></a></h3>
<p>
La mayoría de las variables reflejan la situación en la máquina local. A menudo, deben utilizar un valor diferente cuando se opera en buffers con un directorio remoto por defecto.
Piense en el shell que debe aplicarse al llamar al <samp>shell</samp>, puede ser <samp>/bin/bash</samp> en su máquina local, y <samp>/bin/ksh</samp> en una máquina remota.
</p>
<p>
Esto puede lograrse con <i>variables locales de conexión</i>. Las variables locales de directorio y archivo anulan las variables locales de conexión. Las variables locales de conexión
inseguras se manejan de la misma manera que las variables locales de archivo inseguras (ver Seguridad de las variables de archivo).
</p>
<p>
Las variables locales de conexión se declaran como un grupo de pares de variables/valores en un <i>perfil</i>, utilizando la función <samp>connection-local-set-profile-variables</samp>.
La <samp>función connection-local-set-profiles</samp> activa los perfiles para un criterio dado, identificando una máquina remota:
</p>
<div class="pre"><pre>
(connection-local-set-profile-variables 'remote-ksh
'((shell-file-name . &quot;/bin/ksh&quot;)
(shell-command-switch . &quot;-c&quot;)))
(connection-local-set-profile-variables 'remote-bash
' ((shell-file-name . &quot;/bin/bash&quot;)
(shell-command-switch . &quot;-c&quot;)))
(connection-local-set-profiles
'(:application tramp :machine &quot;remotemachine&quot;) 'remote-ksh)
</pre></div>
<p>
Este código declara dos perfiles diferentes, <samp>remote-ksh</samp> y <samp>remote-bash</samp>. El perfil <samp>remote-ksh</samp> se aplica a todos los buffers que tienen un directorio remoto
por defecto que coincide con la regexp <samp>&quot;remotemachine&quot;</samp> como nombre de host. Este criterio también puede discriminar por las propiedades <samp>:protocol</samp> (este es el método
Tramp) o <samp>:user</samp> (un nombre de usuario remoto). El criterio <samp>nil</samp> coincide con todos los buffers con un directorio remoto por defecto.
</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_paquetes_emacs_lisp" title="Paquetes Emacs Lisp">Anterior</label></div>
<footer><hr><p>© Copyright Tano 2.023<br><small>Generated by <a href="https://gitlab.com/bztsrc/gendoc">gendoc</a> v1.0.0</small></p></footer>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long