3 votos

Especifica la variante de shell en variables locales de Emacs para el archivo

¿Cómo puedo especificar el shell variante de un archivo en el archivo de Emacs variables locales, cuando el archivo no es un programa independiente?

Emacs permite especificar que un shell del archivo debe ser abierto en sh modo, mediante el establecimiento de una variable local en el editor de pistas:

# Local variables:
# coding: utf-8
# mode: sh
# End:
# vim: fileencoding=utf-8 filetype=bash :

Puedo especificar a Vim que el archivo de la concha de la variante es específicamente Bash, y obedece a que el editor del aviso para presentar determinados Bash resaltado de sintaxis. Pero Emacs tiene sh de modo que cubre todos los shell de variantes.

Emacs va a interpretar correctamente un archivo si se tiene un proceso de línea (por ejemplo, #! /bin/bash). Pero algunos archivos no son programas independientes, así que no quiero que aquellos que tienen un proceso de línea.

Emacs sh modo trata a los archivos como Posix sintaxis, que no lo son. sh modo tiene el concepto de "variante" de la concha de la sintaxis; pero soy incapaz de averiguar cómo especificar, en el archivo del editor de pistas, de la variante a utilizar para el archivo.

¿Cómo puedo configurar el editor de pistas en el archivo de decirle a Emacs que su sintaxis es Bash?

Actualización 2014-04-24: me han informado de Emacs bug#17333 para este comportamiento.

2voto

Ben Liblit Puntos 201

Mirando a la sh-mode código, parece que alguien tiene la intención de permitir que esta estableciendo sh-shell o quizás sh-shell-file como un archivo de una variable local. Ninguno de los dos funciona, aunque. Por favor, considere la posibilidad de enviar un informe de error a la sh-mode mantenedor acerca de esto. Realmente parece que debería ser tan fácil como añadir sh-shell: bash de su archivo-variables locales de la cuadra, y que incluso podría haber sido la intención original, pero simplemente no funciona.

¿Qué trabajo es cualquiera de las siguientes:

  1. El nombre de su archivo de algo que termina en .bash.

  2. Agregar eval: (sh-set-shell "bash") de su archivo-variables locales de la cuadra. Por defecto Emacs mostrará una advertencia de que esto podría ser el código inseguro, a pesar de que puede ser desactivado.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: