Estoy tratando de obtener un script lisp para ejecutar algunos comandos para mí cuando abro un archivo de un tipo de archivo específico. Sé que estoy trabajando en el archivo de inicio correcto porque si elimino el tema, emacs no tendrá ningún tema cuando lo inicie.
Este es el script que estoy usando que no funciona (sin errores ni nada):
(defun my-project-hook (filename)
(when (string= (file-name-extension filename) "ts")
((typescript-mode)
(tss-setup-current-buffer))
)
)
(add-hook 'after-load-functions 'my-project-hook)
hooks
files
major-mode
SiXoS
fuente
fuente
when
llamada está malformado. Las dos llamadas a funciones no pueden estar entre paréntesis como lo son. Tenga en cuenta la diferencia entre su código y @ sds'sRespuestas:
En la terminología de Emacs, estos son dos pasos diferentes:
.ts
extensión con el modo principaltypescript-mode
.tss-setup-current-buffer
cuando se inicie el modo mecanografiado.Para elegir qué modo principal usar para ciertos nombres de archivo, agregue una entrada a la variable
auto-mode-alist
. Pon la siguiente línea en tu archivo init:\.ts\'
es una expresión regular que coincide con los nombres de archivo con la.ts
extensión.Para ejecutar la función
tss-setup-current-buffer
cada vez que se inicia el modo de Letra de imprenta (supongo que desea ejecutarlo incluso para los archivos de modo Letra de imprenta que no tienen la.ts
extensión), añadirlo a la modalidad de imprenta inicio de gancho .Dependiendo de cómo lo instaló
typescript.el
ytss.el
, es posible que también deba declarar que las funcionestypescript-mode
ytss-setup-current-buffer
que deben cargarse desde esos archivos. Esto evita tener que cargartypescript.el
ytss.el
tan pronto como se inicie Emacs: se cargarán a pedido, cuando abra un.ts
archivo por primera vez o lo ejecutetypescript-mode
explícitamente.fuente
Lo que estás buscando es
find-file-hook
:fuente
auto-mode-alist
debe usarse para determinar cuándo la puesta en marcha en modo texto mecanografiado, ytypescript-mode-hook
se debe utilizar para ejecutartss-setup-current-buffer
.(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-mode))
y(add-hook 'typescript-mode-hook 'tss-setup-current-buffer)
sería la forma normal de hacerlo.