Почему `vim -E` всегда выходит с ненулевым кодом завершения при использовании here-doc? - PullRequest
0 голосов
/ 18 марта 2019

см. Следующую сессию в тире:

$ printf "foo\nbar\n" > testfile
$ cat testfile
foo
bar
$ vim -E testfile <<-EOS
> 1
> s/foo/baz/
> x
> EOS
$ echo $?
1
$ cat testfile
baz
bar
$ vim -E testfile +'1' +'s/baz/foo/' +'x'
$ echo $?
0
$

Я использую ex-режим vi для обмена строкой foo со строкой baz с использованием документа здесь. Видимо, это работает. Но тем не менее vim все еще существует с кодом выхода 1.

Затем я снова обмениваю baz с foo, передавая команды непосредственно в командной строке vim. Это тоже работает и возвращает с кодом выхода 0 (как и ожидалось).

По какой причине этот документ всегда возвращается с кодом выхода 1?

Это даже случается, если я не редактирую файл:

$ vim -E testfile <<-EOS
> 1
> p
> q
> EOS
foo
$ echo $?
1
$ 

Что там происходит?

1 Ответ

0 голосов
/ 19 марта 2019

Я задал тот же вопрос на vi.stackexchange.com сейчас (что кажется более подходящим) и получил там действительно полезный ответ: https://vi.stackexchange.com/a/19241/21417

...