magit; gendoc: emacs, nnn y Complementos nnn

This commit is contained in:
Tano Papúa 2023-06-03 06:55:22 -03:00
parent 830ffe75a4
commit eef2a4e426
3 changed files with 243 additions and 5 deletions

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.83</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.84</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>
@ -709,6 +709,8 @@
<li class="h3"><a href="#teclas_modificadoras">Teclas modificadoras</a></li>
<li class="h3"><a href="#revinculacion_de_las_teclas_de_funcion">Revinculación de las teclas de función</a></li>
<li class="h3"><a href="#caracteres_de_control_ascii_con_nombre">Caracteres de control ASCII con nombre</a></li>
<li class="h3"><a href="#revinculacion_de_los_botones_del_raton">Revinculación de los botones del ratón</a></li>
<li class="h3"><a href="#deshabilitar_comandos">Deshabilitar comandos</a></li>
</ul></li>
</ul>
</div>
@ -30299,6 +30301,148 @@ Si no quiere distinguir entre (por ejemplo) <kbd>TAB</kbd> (<samp>TAB</samp>) y
<p>
Con un terminal ASCII ordinario, no hay manera de distinguir entre <kbd>TAB</kbd> (<samp>TAB</samp>) y <kbd>Ctrl</kbd>-<kbd>i</kbd> (<samp>C-i</samp>) (y lo mismo para otros pares de este
tipo), porque el terminal envía el mismo carácter en ambos casos.
</p>
<h3 id="revinculacion_de_los_botones_del_raton">Revinculación de los botones del ratón<a href="#revinculacion_de_los_botones_del_raton"></a></h3>
<p>
<samp>Emacs</samp> también utiliza símbolos Lisp para designar los botones del ratón. Los eventos ordinarios del ratón en el Editor son los eventos de clic; estos ocurren cuando se
presiona un botón y se suelta sin mover el ratón. También puede obtener eventos de arrastre, cuando mueve el ratón mientras mantiene el botón pulsado. Los eventos de arrastre ocurren
cuando finalmente suelta el botón.
</p>
<p>
Los símbolos para los eventos de clic básicos son <samp>ratón-1</samp> (<span class="mouseleft"></span>) para el botón más a la izquierda, <samp>ratón-2</samp> (<span class="mousewheel"></span>) para el siguiente, y así sucesivamente. Así es
como puede redefinir el segundo botón del ratón para dividir la ventana actual:
</p>
<div class="pre"><pre>
(global-set-key [mouse-2] 'split-window-below)
</pre></div>
<p>
Los símbolos para los eventos de arrastre son similares, pero tienen el prefijo <samp>drag-</samp> antes de la palabra <samp>mouse</samp>. Por ejemplo, arrastrar el primer botón genera
un evento <samp>drag-mouse-1</samp>.
</p>
<p>
También puede definir los eventos que se producen cuando se pulsa el botón del ratón. Estos eventos comienzan con <samp>down-</samp> en lugar de <samp>drag-</samp>. Estos eventos se
generan sólo si tienen enlaces de teclas. Cuando se obtiene un evento de botón pulsado, siempre le seguirá un evento de clic o de arrastre correspondiente.
</p>
<p>
Si lo desea, puede distinguir entre clics simples, dobles y triples. Un doble clic significa pulsar el botón del ratón dos veces aproximadamente en el mismo lugar. El primer clic
genera un evento de clic ordinario. El segundo clic, si llega lo suficientemente pronto, genera un evento de doble clic en su lugar. El tipo de evento para un doble clic comienza con
<samp>double-</samp>: por ejemplo, <samp>double-mouse-3</samp>.
</p>
<p>
Esto significa que puede dar un significado especial al segundo clic en el mismo lugar, pero debe actuar asumiendo que la definición ordinaria de clic simple se ha ejecutado cuando
se recibió el primer clic.
</p>
<p>
Esto limita lo que se puede hacer con los dobles clics, pero los diseñadores de interfaces de Usuario dicen que esta restricción debe seguirse en cualquier caso. Un doble clic
debería hacer algo similar al clic simple, sólo que más. El comando para el evento de doble clic debería realizar el trabajo extra para el doble clic.
</p>
<p>
Si un evento de doble clic no tiene enlace, cambia al evento de clic simple correspondiente. Por lo tanto, si no se define un doble clic en particular, se ejecuta el comando de un
solo clic dos veces.
</p>
<p>
<samp>Emacs</samp> también admite eventos de triple clic cuyos nombres empiezan por <samp>triple-</samp>. El Editor no distingue los cuádruples clics como tipos de eventos; los clics más
allá del tercero generan eventos adicionales de triple clic. Sin embargo, el número completo de clics se registra en la lista de eventos, así que si conoce Emacs Lisp puede
distinguirlos si realmente quiere (ver Click Events en The Emacs Lisp Reference Manual). No recomendamos significados distintos para más de tres clics, pero a veces es útil que los
clics subsiguientes pasen por el mismo conjunto de tres significados, de modo que cuatro clics equivalen a un clic, cinco equivalen a dos y seis equivalen a tres.
</p>
<p>
<samp>Emacs</samp> también registra las pulsaciones múltiples en los eventos de arrastrar y pulsar botones. Por ejemplo, cuando pulsa un botón dos veces, y luego mueve el ratón mientras
mantiene el botón pulsado, el Editor recibe un evento de <samp>double-drag</samp> (doble arrastre). Y en el momento en que lo pulsa por segunda vez, <samp>Emacs</samp> obtiene un evento
<samp>double-down</samp>- (que se ignora, como todos los eventos de botón-abajo (button-down), si no tiene enlace).
</p>
<p>
La variable <samp>double-click-time</samp> (tiempo de doble clic) especifica cuánto tiempo puede transcurrir entre los clics y permitir que se agrupen como un clic múltiple. Su valor
está en unidades de milisegundos. Si el valor es nulo, no se detectan los dobles clics. Si el valor es <samp>t</samp>, entonces no hay límite de tiempo. El valor por defecto es 500.
</p>
<p>
La variable <samp>double-click-fuzz</samp> especifica cuánto puede moverse el ratón entre los clics y permitir que se agrupen como un clic múltiple. Su valor está en unidades de píxeles
en pantallas con ventanas y en unidades de 1/8 de una celda de caracteres en terminales en modo texto; el valor por defecto es 3.
</p>
<p>
Los símbolos para los eventos del ratón también indican el estado de las teclas modificadoras, con los prefijos habituales <samp>C-</samp>, <samp>M-</samp>, <samp>H-</samp>, <samp>s-</samp>,
<samp>A-</samp> y <samp>S-</samp>. Éstas siempre preceden a <samp>double-</samp> o <samp>triple-</samp>, que siempre preceden a <samp>drag-</samp> o <samp>down-</samp>.
</p>
<p>
Un marco incluye áreas que no muestran texto del buffer, como la línea de modo y la barra de desplazamiento. Puede saber si un botón del ratón procede de una zona especial de la
pantalla mediante teclas de prefijo ficticias. Por ejemplo, si hace clic con el ratón en la línea de modo, obtienes el prefijo clave <samp>mode-line</samp> antes del símbolo ordinario
del botón del ratón. Por lo tanto, aquí es cómo definir el comando para hacer clic en el primer botón en una línea de modo para ejecutar el comando <samp>scroll-up-command</samp>:
</p>
<div class="pre"><pre>
(global-set-key [mode-line mouse-1] 'scroll-up-command)
</pre></div>
<p>
Aquí está la lista completa de estas teclas de prefijo ficticias y sus significados:
</p>
<dl>
<dt><samp>mode-line</samp></dt>
<dd>
El ratón estaba en la línea de modo de una ventana.
</dd>
<dt><samp>vertical-line</samp></dt>
<dd>
El ratón estaba en la línea vertical que separa las ventanas contiguas. (Si utiliza barras de desplazamiento, éstas aparecen en lugar de estas líneas verticales).
</dd>
<dt><samp>vertical-scroll-bar</samp></dt>
<dd>
El ratón estaba en una barra de desplazamiento vertical. (Este es el único tipo de barra de desplazamiento que <samp>Emacs</samp> soporta actualmente).
</dd>
<dt><samp>menu-bar</samp></dt>
<dd>
El ratón estaba en la barra de menús.
</dd>
<dt><samp>tab-bar</samp></dt>
<dd>
El ratón estaba en una barra de pestañas.
</dd>
<dt><samp>tab-line</samp></dt>
<dd>
El ratón estaba en una línea de pestañas.
</dd>
<dt><samp>header-line</samp></dt>
<dd>
El ratón estaba en una línea de cabecera.
</dd>
</dl>
<p>
Se puede poner más de un botón del ratón en una secuencia de teclas, pero no es habitual hacerlo.
</p>
<h3 id="deshabilitar_comandos">Deshabilitar comandos<a href="#deshabilitar_comandos"></a></h3>
<p>
Desactivar un comando significa que al invocarlo interactivamente se pide confirmación al Usuario. El propósito de deshabilitar un comando es evitar que los usuarios lo ejecuten
por`accidente; lo hacemos para los comandos que podrían ser confusos para los no iniciados.
</p>
<p>
Al intentar invocar un comando deshabilitado de forma interactiva en <samp>Emacs</samp>, se muestra una ventana que contiene el nombre del comando, su documentación y algunas
instrucciones sobre lo que se debe hacer inmediatamente; luego el Editor pide que se diga si se debe ejecutar el comando como se solicita, habilitarlo y ejecutarlo, o cancelar. Si
decide habilitar el comando, debe responder a otra pregunta: si desea hacerlo permanentemente o sólo para la sesión actual. (La habilitación permanente funciona editando
automáticamente su archivo de inicialización). También puede escribir <kbd>!</kbd> (<samp>!</samp>) para habilitar <i>todos</i> los comandos, sólo para la sesión actual.
</p>
<p>
El mecanismo directo para deshabilitar un comando es poner una propiedad disabled no nula en el símbolo Lisp del comando. Aquí está el programa Lisp para hacer esto:
</p>
<div class="pre"><pre>
(put 'delete-region 'disabled t)
</pre></div>
<p>
Si el valor de la propiedad disabled es una cadena, esa cadena se incluye en el mensaje que se muestra cuando se utiliza el comando:
</p>
<div class="pre"><pre>
(put 'delete-region 'disabled
&quot;It's better to use `kill-region' instead.\n&quot;)
</pre></div>
<p>
Puede desactivar un comando editando el archivo de inicialización directamente, o con el comando <kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>disable-command</samp></b> (<samp>M-x
disable-command</samp>), que edita el archivo de inicialización por Usted. Del mismo modo, <kbd>Alt</kbd>-<kbd>x</kbd> <b><samp>enable-command</samp></b> (<samp>M-x enable-command</samp>)
edita el fichero de inicialización para habilitar un comando permanentemente. Ver El archivo de inicialización de Emacs.
</p>
<p>
Si <samp>Emacs</samp> fue invocado con las opciones <samp>-q</samp> o <samp>--no-init-file</samp> (ver Opciones iniciales), no editará su fichero de inicialización. Hacerlo podría perder
información porque el Editor no ha leído su fichero de inicialización.
</p>
<p>
La desactivación de un comando es independiente de la tecla que se utilice para invocarlo; la desactivación también se aplica si el comando se invoca utilizando
<kbd>Alt</kbd>-<kbd>x</kbd> (<samp>M-x</samp>). Sin embargo, deshabilitar un comando no tiene ningún efecto sobre la llamada a éste como función desde los programas <samp>Lisp</samp>.
</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>

View file

@ -12,7 +12,7 @@
<div class="frame content">
<input type="radio" name="page" id="_" checked><input type="radio" name="page" id="_dependencias"><input type="radio" name="page" id="_instalacion"><input type="radio" name="page" id="_configuracion"><input type="radio" name="page" id="_opciones_del_programa"><input type="radio" name="page" id="_teclado_raton"><input type="radio" name="page" id="_simbolos"><input type="radio" name="page" id="_tamano_de_archivo"><input type="radio" name="page" id="_ayuda"><input type="radio" name="page" id="_contextos"><input type="radio" name="page" id="_sesiones"><input type="radio" name="page" id="_filtros"><input type="radio" name="page" id="_teclear_para_navegar"><input type="radio" name="page" id="_seleccion"><input type="radio" name="page" id="_buscar_y_listar"><input type="radio" name="page" id="_prompt"><input type="radio" name="page" id="_diseno"><input type="radio" name="page" id="_casos_practicos_de_uso"><input type="radio" name="page" id="_anadir_marcadores"><input type="radio" name="page" id="_configurar_cd_al_salir"><input type="radio" name="page" id="_sincronizar_subshell_tt_pwd_tt"><input type="radio" name="page" id="_unidades_conectadas_en_caliente"><input type="radio" name="page" id="_imagen_video_pdf"><input type="radio" name="page" id="_texto_aparte"><input type="radio" name="page" id="_ejecutar_comandos"><input type="radio" name="page" id="_lanzar_aplicaciones"><input type="radio" name="page" id="_abrir_como_superusuario_root"><input type="radio" name="page" id="_selector_de_archivos"><input type="radio" name="page" id="_punto_de_montajes_remotos"><input type="radio" name="page" id="_sincronizacion_de_notas_rapidas"><input type="radio" name="page" id="_arrastrar_y_soltar"><input type="radio" name="page" id="_archivos_duplicados"><input type="radio" name="page" id="_crear_enlaces_por_lotes"><input type="radio" name="page" id="_desactivar_fuentes_en_negrita"><input type="radio" name="page" id="_temas"><input type="radio" name="page" id="_previsualizacion_en_directo">
<nav class="side nav"><div>
<div class="title"><a href="./13_nnn.html">nnn</a><div class="version">Revisión: 0.23</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="./13_nnn.html">nnn</a><div class="version">Revisión: 0.24</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>Uso</p>
<ul>
@ -131,6 +131,8 @@
<li class="h2"><a href="#plugins_de_previsualizacion">Plugins de previsualización</a></li>
<li class="h3"><a href="#configurar_tt_nnn_fifo_tt">Configurar <tt>NNN_FIFO</tt></a></li>
<li class="h3"><a href="#uso_de_los_plugins">Uso de los plugins</a></li>
<li class="h2"><a href="#ejemplo_de_configuracion_de_script_personalizado">Ejemplo de configuración de script personalizado</a></li>
<li class="h3"><a href="#ejemplo_de_comando_de_vista_previa">Ejemplo de comando de vista previa</a></li>
</ul></li>
</ul>
</div>
@ -1872,7 +1874,60 @@ Para ejecutar un previsualizador (o cualquier plugin en general) al iniciar <sam
entrada para actualizar la vista previa sin cambiar la entrada sobre la que se encuentra.</li>
<li>Para cerrar las ventanas de vista previa tui (<samp>preview-tui</samp>) ejecuta el plugin de nuevo o pulse <kbd>Ctrl</kbd>-<kbd>C</kbd> (<samp>^C</samp>) en la ventana de vista
previa.</li>
</ul><br style="clear:both;"><label class="btn prev" accesskey="p" for="_temas" title="Temas">Anterior</label></div>
</ul>
<h2 id="ejemplo_de_configuracion_de_script_personalizado">Ejemplo de configuración de script personalizado<a href="#ejemplo_de_configuracion_de_script_personalizado"></a></h2>
<p>
La creación de una vista previa en directo tiene dos aspectos:
</p>
<ol>
<li>Un comando de previsualización.</li>
<li>Un comando de configuración.</li>
</ol>
<h3 id="ejemplo_de_comando_de_vista_previa">Ejemplo de comando de vista previa<a href="#ejemplo_de_comando_de_vista_previa"></a></h3>
<div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br>33<br>34<br>35<br>36<br>37<br>38<br>39<br>40<br>41<br>42<br>43<br>44<br></pre><code><span class="hl_c">#!/usr/bin/env sh</span>
<span class="hl_c"># #############################################################################</span>
<span class="hl_c"># Archivo: preview_cmd.sh</span>
<span class="hl_c"># Descripción: Ejemplo mínimo para previsualizar ficheros y directorios</span>
<span class="hl_c"># Sin dependencias externas</span>
<span class="hl_c"># Se puede ampliar fácilmente</span>
<span class="hl_c"># Sale automáticamente cuando el NNN_FIFO se cierra</span>
<span class="hl_c"># Imprime un `árbol` si es un directorio o `cabecera` si es un fichero</span>
<span class="hl_c"># Shell: compatible con POSIX</span>
<span class="hl_c"># Autor: Todd Yamakawa</span>
<span class="hl_c"># Hacer:</span>
<span class="hl_c"># 1. Añadir soporte para más tipos de ficheros</span>
<span class="hl_c"># p.ej. archivos binarios, no deberíamos intentar `encabezar` esos</span>
<span class="hl_c"># Checquear FIFO</span>
<span class="hl_v">NNN_FIFO</span><span class="hl_o">=</span><span class="hl_v">$</span>{<span class="hl_v">NNN_FIFO</span>:<span class="hl_o">-</span><span class="hl_v">$1</span>}
<span class="hl_k">if</span> [ <span class="hl_o">!</span> <span class="hl_o">-</span><span class="hl_v">r</span> <span class="hl_s">&quot;$NNN_FIFO&quot;</span> ]; <span class="hl_k">then</span>
<span class="hl_v">echo</span> <span class="hl_s">&quot;Unable to open \$NNN_FIFO='$NNN_FIFO'&quot;</span> <span class="hl_o">|</span> <span class="hl_v">less</span>
<span class="hl_v">exit</span> <span class="hl_n">2</span>
<span class="hl_v">fi</span>
<span class="hl_c"># Leer selección desde $NNN_FIFO</span>
<span class="hl_k">while</span> <span class="hl_v">read</span> <span class="hl_o">-</span><span class="hl_v">r</span> <span class="hl_v">selection</span>; <span class="hl_k">do</span>
<span class="hl_v">clear</span>
<span class="hl_v">lines</span><span class="hl_o">=</span><span class="hl_f">$</span>((<span class="hl_f">$</span>(<span class="hl_v">tput</span> <span class="hl_v">lines</span>)<span class="hl_n">-1</span>))
<span class="hl_v">cols</span><span class="hl_o">=</span><span class="hl_f">$</span>(<span class="hl_v">tput</span> <span class="hl_v">cols</span>)
<span class="hl_c"># Imprimer árbol de directorios</span>
<span class="hl_k">if</span> [ <span class="hl_o">-</span><span class="hl_v">d</span> <span class="hl_s">&quot;$selection&quot;</span> ]; <span class="hl_k">then</span>
<span class="hl_v">cd</span> <span class="hl_s">&quot;$selection&quot;</span> <span class="hl_o">||</span> <span class="hl_k">continue</span>
<span class="hl_v">tree</span> <span class="hl_o">|</span> <span class="hl_v">head</span> <span class="hl_o">-</span><span class="hl_v">n</span> <span class="hl_v">$lines</span> <span class="hl_o">|</span> <span class="hl_v">cut</span> <span class="hl_o">-</span><span class="hl_v">c</span> <span class="hl_n">1</span><span class="hl_o">-</span><span class="hl_s">&quot;$cols&quot;</span>
<span class="hl_k">continue</span>
<span class="hl_v">fi</span>
<span class="hl_c"># Imprime cabecera de archivo</span>
<span class="hl_k">if</span> [ <span class="hl_o">-</span><span class="hl_v">f</span> <span class="hl_s">&quot;$selection&quot;</span> ]; <span class="hl_k">then</span>
<span class="hl_v">head</span> <span class="hl_o">-</span><span class="hl_v">n</span> <span class="hl_v">$lines</span> <span class="hl_s">&quot;$selection&quot;</span> <span class="hl_o">|</span> <span class="hl_v">cut</span> <span class="hl_o">-</span><span class="hl_v">c</span> <span class="hl_n">1</span><span class="hl_o">-</span><span class="hl_s">&quot;$cols&quot;</span>
<span class="hl_k">continue</span>
<span class="hl_v">fi</span>
<span class="hl_c"># Algo salió mal</span>
<span class="hl_v">echo</span> <span class="hl_s">&quot;Unknown type: '$selection'&quot;</span>
<span class="hl_v">done</span> <span class="hl_o">&lt;</span> <span class="hl_s">&quot;$NNN_FIFO&quot;</span></code></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_temas" title="Temas">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>
</div>

View file

@ -12,7 +12,7 @@
<div class="frame content">
<input type="radio" name="page" id="_" checked><input type="radio" name="page" id="_instalacion"><input type="radio" name="page" id="_configuracion"><input type="radio" name="page" id="_ejecutando_comandos_como_plugin">
<nav class="side nav"><div>
<div class="title"><a href="./14_complementos-nnn.html">Complementos nnn</a><div class="version">Revisión: 0.09</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="./14_complementos-nnn.html">Complementos nnn</a><div class="version">Revisión: 0.10</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>Contenido</p>
<ul>
@ -22,6 +22,10 @@
<li class="h2"><a href="#omitir_la_actualizacion_del_directorio_despues_de_ejecutar_un_complemento">Omitir la actualización del directorio después de ejecutar un complemento [-]</a></li>
</ul></li>
<li rel="ejecutando_comandos_como_plugin"><label class="toc" for="_ejecutando_comandos_como_plugin">Ejecutando comandos como plugin [!]</label><div class="current">Ejecutando comandos como plugin [!]</div><ul>
<li class="h2"><a href="#omitir_la_confirmacion_del_usuario_tras_la_ejecucion_del_comando">Omitir la confirmación del usuario tras la ejecución del comando [*]</a></li>
<li class="h2"><a href="#ejecutar_una_aplicacion_gui_como_complemento_tt_tt">Ejecutar una aplicación GUI como complemento [<tt>&</tt>]</a></li>
<li class="h2"><a href="#pagina_de_salida_de_comandos_no_interactivos_tt_tt">Página de salida de comandos no interactivos [<tt>|</tt>]</a></li>
</ul></li>
</ul>
</div>
</div></nav>
@ -284,7 +288,42 @@ Para asignar claves a comandos cli arbitrarios que no estén en segundo plano e
<p>
Ahora <samp>;x</samp> puede usarse para hacer ejecutable un archivo, <samp>;g</samp> puede usarse para el git log de un directorio de proyecto git, <samp>;s</samp> puede usarse para previsualizar
un archivo multimedia parcialmente descargado.
</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_configuracion" title="Configuración">Anterior</label></div>
</p>
<h2 id="omitir_la_confirmacion_del_usuario_tras_la_ejecucion_del_comando">Omitir la confirmación del usuario tras la ejecución del comando [*]<a href="#omitir_la_confirmacion_del_usuario_tras_la_ejecucion_del_comando"></a></h2>
<p>
<samp>nnn</samp> espera la confirmación del usuario (el prompt <samp>Press Enter to Continue</samp> (Pulse Enter para continuar)) después de ejecutar un comando como complemento (a diferencia
de los complementos que pueden añadir un <samp>read</samp> para esperar). Para omitir esto, añada un <samp>*</samp> después del comando.
</p>
<div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">export</span> <span class="hl_v">NNN_PLUG</span><span class="hl_o">=</span><span class="hl_s">'s:!smplayer &quot;$nnn&quot;*;n:-!vim /home/tano/Dropbox/Publico/nota_sincronizada*'</span></code></div>
<p>
</p>
<p>
Ahora no habrá prompt después de <samp>;s</samp> y <samp>;n</samp>.
</p>
<div class="info"><p><span>Nota</span></p><p>
No use <samp>*</samp> con programas que se ejecutan y salen, por ejemplo, cat.
</p></div>
<h2 id="ejecutar_una_aplicacion_gui_como_complemento_tt_tt">Ejecutar una aplicación GUI como complemento [<tt>&</tt>]<a href="#ejecutar_una_aplicacion_gui_como_complemento_tt_tt"></a></h2>
<p>
¡Para ejecutar una aplicación GUI como complemento, añada <samp>&amp;</samp> después de <samp>!</samp>.
</p>
<div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">export</span> <span class="hl_v">NNN_PLUG</span><span class="hl_o">=</span><span class="hl_s">'m:-!&amp;mousepad &quot;$nnn&quot;'</span></code></div>
<h2 id="pagina_de_salida_de_comandos_no_interactivos_tt_tt">Página de salida de comandos no interactivos [<tt>|</tt>]<a href="#pagina_de_salida_de_comandos_no_interactivos_tt_tt"></a></h2>
<p>
¡Para mostrar la salida de comandos de ejecución y salida que no necesitan la entrada del usuario, añada <samp>|</samp> (pipe, tubería) después de <samp>!</samp>.
</p>
<div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">export</span> <span class="hl_v">NNN_PLUG</span><span class="hl_o">=</span><span class="hl_s">'m:-!|mediainfo &quot;$nnn&quot;;t:-!|tree -ps;l:-!|ls -lah --group-directories-first'</span></code></div>
<p>
Esta opción es incompatible con <samp>&amp;</samp> (la salida del terminal se enmascara para los programas GUI) e ignora <samp>*</samp> (la salida ya está paginada para el usuario).
</p>
<div class="info"><p><span>Importante</span></p><p>
<ol>
<li>Coloque <samp>$nnn</samp> (o las variables exportadas) entre comillas dobles (<b><samp>&quot;$nnn&quot;</samp></b>).</li>
<li>Use comillas simples para <samp>$NNN_PLUG</samp> para que no se interprete <samp>&quot;$nnn&quot;</samp>.</li>
<li>(De nuevo) añada <samp>!</samp> antes del comando.</li>
<li>¡Para desactivar la actualización de directorios después de ejecutar un <i>comando como plugin</i>, anteponga <samp>-!</samp></li>
</ol>
</p></div><br style="clear:both;"><label class="btn prev" accesskey="p" for="_configuracion" title="Configuración">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>
</div>