Поскольку вы отметили свой вопрос как Manjaro и rxvt, я предполагаю, что вы используете эмулятор терминала rxvt -unicode . В этом случае вы можете использовать:
bindsym $mod+F1 exec --no-startup-id urxvt -e nvim
Даже если вы используете другой терминал, в большинстве эмуляторов есть аналогичная опция для выполнения команды при запуске.
Как упоминалось в комментариях, это связано с тем, что компоновщик записывает файл поэтапно, а затем заполняет записи в области заголовка размерами и смещениями. Формат ELF имеет эти значения в начале файла, чтобы сделать поиск нужных разделов простым и эффективным, и, как результат, для компоновщика естественно работать так, как он это делает. Форматы, предназначенные для потоковой передачи, такие как Zip-файлы, как правило, имеют гораздо большую сложность из-за размещения данных манифеста в конце.
Хотя теоретически возможно реализовать поддержку потокового вывода, для этого, вероятно, потребуется буферизация больших объемов данных, двойное вычисление данных или различные другие неэффективные методы, и поскольку этот сценарий настолько редок, он, вероятно, не считался целесообразным. сложность кода и потенциальная неэффективность компоновщика. Вероятно, вы могли бы использовать небольшой сценарий оболочки или даже лайнер оболочки one -, чтобы реализовать это с помощью временного файла с соответствующей очисткой.