Czy jest jakiś sposób, aby ustawić +x
bit na skrypcie podczas tworzenia?
Na przykład uruchamiam:
vim -some_option_to_make_file_executable script.sh
a po zapisaniu mogę uruchomić plik bez żadnych dodatkowych ruchów.
ps. Mogę uruchomić chmod
z vim
samej konsoli lub nawet z niej, ale jest to trochę denerwujące, ponieważ vim
sugeruje ponowne załadowanie pliku. Również denerwujące jest wpisywanie chmod
polecenia za każdym razem. pps. Byłoby wspaniale zrobić to w zależności od rozszerzenia pliku (nie potrzebuję pliku wykonywalnego .txt
:-))
shell-script
vim
executable
chmod
wysypka
źródło
źródło
if
w jedenif getline(1) =~ "^#!/bin/"
. W każdym razie to niesamowite. Dziękuję Ci.au BufWritePost * if getline(1) =~ "^#!" | silent !chmod +x % | endif
/bin
nie następuje natychmiast po shebang, na przykład#!/usr/bin/env
. Sposób wokół to oczywiście użyć symbolu wieloznacznego: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
Znalazłem ten skrypt na stronie http://vim.wikia.com . Myślę, że nie jest to idealne rozwiązanie, ale akceptowalne.
Teraz możesz ustawić bit wykonania za pomocą polecenia
:Xbit
. Wszystkie podziękowania dla Maxa Ischenko na vim.wikia.comźródło
Używam tego w niestandardowej wersji MacVim 8.0.648 (134)
źródło
Odpowiedź tonymaca w pewnym momencie przestała działać dla mnie (z VIM 7.4), dając mi ten sam problem co @StevieD. Modyfikacja rozwiązała problem:
Znalazłem odpowiedź z https://bbs.archlinux.org/viewtopic.php?id=126304 , chociaż @StevieD również dało tę samą odpowiedź.
źródło