Biorąc pod uwagę dużą liczbę pytań, które okazują się być związane z podpowłokami w Bash („Dlaczego mój zmienny przyrost w tej pętli potokowejwhile read
?”), Po prostu pomyślałem, że byłoby miło nawiązać do jakiegoś edytora lub usługi, w której kod który zostanie wykonany w podpowłoce jest sformatowany inaczej niż kod wykonywany w powłoce nadrzędnej. Może być przydatny jako narzędzie edukacyjne (zobacz różnicę pomiędzy code | code
i code < <(code)
natychmiast). Czy to istnieje?
Punkty bonusowe, jeśli ktoś zaimplementuje je w jEdit lub VIm.
Oczywiście to nie musi być doskonały (brak podświetlanie składni, z mojego doświadczenia), ale podejrzewam, że takie rzeczy (foo=bar; echo $foo;)
i command | while read ...
nie powinno być zbyt trudne na początek.
vim
podświetlania kodu.Odpowiedzi:
Nie sądzę, że to istnieje. Byłoby użyteczne, ale trudne do wdrożenia za pomocą standardowych metod analizy składniowej używanych w edytorach. Z punktu widzenia analizy istnieje wiele słów kluczowych i specjalnych symboli, które należałoby przeanalizować, aby ustalić blok kodu należący do podpowłoki.
Ale byłbym szczęśliwy widząc, że się mylę i ktoś włożył wysiłek w stworzenie takich konfiguracji.
źródło
Mój Vim już to robi.
W rzeczywistości mnie to niepokoi, ponieważ powoduje, że komentarze w podpowłokach nie mają zastosowania odpowiedniego podświetlenia.
To jest Vim 7.3 patch 874 skompilowany ze źródła.
źródło
zsh
gdy pracuję w podpowłoce. To poprawia podświetlanie składni.set -x; set -e
tę sekcję. I aby przechwycić wszystkie te dane wyjściowe, w tym stderr, do dziennika.trap
słowo kluczowe są tam podświetlone. po prostu nie podświetlił komentarzy. typ pliku zsh jednak działa. Teraz, jeśli chodzi o odróżnienie podpowłoki od głównej powłoki (która przecież jest tym, czego chciałeś, chyba), cóż ... wykorzystaj kilka komentarzy?