Создать символическую ссылку, содержащую определенные подкаталоги

It fails, I presume, because Vim detects that it is a background process and doesn't have terminal access, so instead of popping up an edit window it suspends itself. I want to fix it so Vim behaves normally.

На самом деле это не имеет ничего общего с передним или задним планом.

Vim вызывает функцию isatty(), которая сообщает, что не подключена к терминалу. Единственный способ исправить это — подключить vim к терминалу. Есть два способа сделать это:

  • Не используйте какие-либо перенаправления для стандартного вывода. Если у вас есть перенаправление, даже если вы в конце концов перенаправитесь на терминал, isatty()будет указывать на канал, а не на терминал, и vim будет работать в фоновом режиме.
  • Использовать псевдотерминал -tty. Да, я знаю, ты сказал, что не хочешь этого; но если требуются перенаправления, то избежать псевдо -ttys невозможно .
0
16.05.2020, 00:12
1 ответ

Предполагая, что вы используете bash, вы можете использовать этот цикл:

cd target
for dir in /source/*/sub{1,3}; do
  parentdir=${dir%/*}        # remove last directory, e.g. `/sub1`
  parentdir=${parentdir##*/} # leave the directory name, e.g. `dir1`
  mkdir -p "$parentdir"
  ln -s "$dir" -t "$parentdir"
done

Добавьте параметр -rв ln, если путь к исходному каталогу должен быть относительным.

1
28.04.2021, 23:14

Теги

Похожие вопросы