Esta solução é totalmente inspirada na do romainl (muito obrigado a ele), mas permite abrir vários buffers com várias strings.
Adicione as seguintes linhas ao seu .zshrc
(ou a .bashrc
qualquer arquivo relevante em que você defina suas funções do bash)
function mvim {
CMD="vim "
for string in "$@"
do
CMD=$CMD"-c \"enew | put='"$string"'\" "
done
CMD=$CMD"-c \"bufdo 1d\""
eval $CMD
}
Após a fonte do seu .zshrc
arquivo, você poderá chamar a seguinte função:
mvim "foo bar" "baz" "and quz"
O que abrirá uma instância do vim com 3 buffers, cada um contendo uma string.
Se nenhum argumento for fornecido, uma instância regular do vim será iniciada. Se um argumento for uma sequência vazia, um buffer vazio será criado.
EDIT Percebi que, por uma razão que não entendo, uma linha vazia é criada no início de cada buffer, então adicionei a linha
CMD=$CMD"-c \"bufdo 1d\""
Para se livrar dessa linha vazia em todos os buffers.
vim < echo "test"
mas sem sucesso. Eu não sabiavim -
! E+
/ também-c
pode ser útil. Obrigado.