For shell scripting, I cannot recommend the linter, shellcheck, enough. With editor integration it's abolutely glorious. Shellcheck will point out all kinds of gotchas and even tags each warning with a uid, so you chech out the rationale and extra info on the wiki.
Edit: My idea is to use the traditional Unix pipeline with forks and file descriptors. Does rash foreground processes like vim?
You can run pipelines in the background with Rash, but I haven't implemented job control yet, so I don't have proper handling for eg. auto-suspending a background TUI process and terminal control. (This ends up not being that big of a deal for most use, I find, though I intend to write better job control eventually.) I don't remember what Vim does off the top of my head, but I think running processes blocks Vim. Background pipelines don't block Rash, but if you don't specify to run one in the background the default behavior is to cause the current thread to wait for it to finish.