magit; gendoc: emacs, nnn y smu, Acerca de
This commit is contained in:
parent
7c97d4e71a
commit
f32451a7b4
|
@ -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>
|
||||
|
|
|
@ -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 . "BSD")
|
||||
(subdirs . nil)))
|
||||
("src/imported"
|
||||
. ((nil . ((change-log-default-name
|
||||
. "ChangeLog.local"))))))
|
||||
</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)))
|
||||
("narrow-files" . ((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 . (("\\.def\\'" . 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
|
||||
"/usr/include/" '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 . "/bin/ksh")
|
||||
(shell-command-switch . "-c")))
|
||||
|
||||
(connection-local-set-profile-variables 'remote-bash
|
||||
' ((shell-file-name . "/bin/bash")
|
||||
(shell-command-switch . "-c")))
|
||||
|
||||
(connection-local-set-profiles
|
||||
'(:application tramp :machine "remotemachine") '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>"remotemachine"</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
Loading…
Reference in New Issue