¿Hay alguna forma de establecer +x
bit en el script mientras se crea?
Por ejemplo, ejecuto:
vim -some_option_to_make_file_executable script.sh
y después de guardar puedo ejecutar el archivo sin movimientos adicionales.
PD. Puedo correr chmod
desde vim
o incluso desde la consola, pero esto es un poco molesto, porque vim
sugiere volver a cargar el archivo. También es molesto escribir chmod
comandos cada vez. pps. Sería genial hacerlo dependiendo de la extensión del archivo (no necesito el ejecutable .txt
:-))
shell-script
vim
executable
chmod
prisa
fuente
fuente
if
en unoif getline(1) =~ "^#!/bin/"
. De todos modos eso es asombroso. Gracias.au BufWritePost * if getline(1) =~ "^#!" | silent !chmod +x % | endif
/bin
no sigue inmediatamente al shebang, como#!/usr/bin/env
. Un torno manera que es, por supuesto, utilizar un comodín:getline(1) =~ "^#!.*/bin/"
.written/bin/bash: endif: command not found /bin/bash: endif: command not found
au BufWritePost * if getline(1) =~ "^#!" | if getline(1) =~ "/bin/" | silent execute "!chmod a+x <afile>" | endif | endif
Encontré este script en http://vim.wikia.com . No es una solución perfecta, pero una aceptable, creo.
Ahora puede establecer el bit de ejecución con el comando
:Xbit
. Todo el crédito a Max Ischenko en vim.wikia.comfuente
Lo uso en MacVim Custom Version 8.0.648 (134)
fuente
La respuesta de Tonyony dejó de funcionar para mí en algún momento (con VIM 7.4), dándome el mismo problema que @StevieD. Modificarlo solucionó el problema:
Encontré la respuesta en https://bbs.archlinux.org/viewtopic.php?id=126304 , aunque @StevieD también dio la misma respuesta.
fuente