Menyoroti sintaks Bash dari subkulit


13

Mempertimbangkan sejumlah besar pertanyaan yang ternyata terkait dengan subkulit di Bash ("Mengapa kenaikan variabel saya dalam loop pipawhile read ini ?"), Saya hanya berpikir akan sangat menyenangkan untuk merujuk ke beberapa editor atau layanan di mana kode yang akan dieksekusi dalam subkulit diformat berbeda dari kode yang dieksekusi di shell induk. Ini mungkin berguna sebagai perangkat pendidikan (lihat perbedaan antara code | codedan secara code < <(code)instan). Apakah ini ada?

Poin bonus jika ada yang mengimplementasikannya untuk jEdit atau VIm.

Jelas itu tidak harus sempurna (tidak ada penyorotan sintaks dalam pengalaman saya), tapi saya curiga hal-hal seperti (foo=bar; echo $foo;)dan command | while read ...tidak boleh terlalu sulit untuk memulai.


Saya yakin Anda dapat menambahkannya ke vimkode sorotan.
Kevin

2
@Kevin: Pertanyaannya adalah apakah sudah ada, dalam bentuk apa pun . Itu tentu saja dapat ditambahkan ke editor yang mendukung sistem penyorotan lengkap Turing.
l0b0

1
Dalam kasus loop sementara pipa, POSIX tidak menentukan bagian mana dari pipa yang dieksekusi pada induknya, sehingga sebagai alat pengajaran, penyorotan ini, jika ada, akan mengajarkan orang untuk menulis skrip shell non-portabel :(
James Youngman

@JamesYoungman: Alasan lain untuk membuatnya khusus Bash :)
l0b0

Jawaban:


2

Saya rasa ini tidak ada. Ini akan berguna, tetapi sulit untuk diterapkan dengan cara standar sintaks parsing yang digunakan dalam editor. Dari sudut pandang parsing, ada banyak kata kunci dan simbol khusus yang harus dianalisis untuk menentukan blok kode yang dimiliki subkulit.

Tapi saya akan senang melihat saya salah dan seseorang telah melakukan upaya yang diperlukan untuk membuat konfigurasi seperti itu.


0

Vim saya sudah melakukan ini.

Ini benar-benar mengganggu saya, karena menyebabkan komentar di dalam subkulit tidak untuk mendapatkan sorotan yang tepat diterapkan.

masukkan deskripsi gambar di sini

Ini adalah Vim 7.3 patch 874 yang dikompilasi dari sumber.


Terkadang saya mengatur filetype zshketika saya bekerja di dalam subkulit. Itu mengoreksi penyorotan sintaksis.

OMG itu sempurna. Terima kasih!! Saya harus memiliki seluruh blok besar ini (dengan banyak komentar) di dalam subkulit sehingga saya dapat melakukan set -x; set -ebagian tersebut. Dan untuk menangkap semua output itu termasuk stderr ke log.
Steven Lu

1
Saya tidak melihat apa format di subkulit, yang tampaknya tidak sangat berguna. Atau hanya hilang dari tangkapan layar?
l0b0

set variabel dan trapkata kunci disorot di sana. hanya gagal menyoroti komentar. tipe file zsh bekerja meskipun. Sekarang, sejauh membedakan sub shell dari shell utama, (yang setelah semua yang Anda inginkan saya kira), baik ....... gunakan beberapa komentar?
Steven Lu
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.