Часть проблемы заключается в том, что bash на самом деле не экспортирует DIRSTACK
.Вторая проблема заключается в том, что я не могу найти способ экспортировать переменные оболочки массива.Третья проблема заключается в том, что Vim, похоже, не знает синтаксис переменной массива.
Однако я только что нашел способ обойти все это, используя псевдоним оболочки.Это не элегантное решение, но я протестировал его, и оно успешно предоставляет DIRSTACK
экземпляру Vim, вызываемому с помощью псевдонима:
alias dirsvim='env D0=${DIRSTACK[0]} D1=${DIRSTACK[1]} D2=${DIRSTACK[2]} D3=${DIRSTACK[3]} vim'
Вы можете расширить его до количества каталогов, которые вы хотите поддерживать изDIRSTACK.
В Vim вы можете затем сделать :cd $D1
для перехода ко второму каталогу в DIRSTACK
.
Если DIRSTACK
имеет два каталога, $D2
и $D3
пустые строки.Это не очень дружелюбно, потому что cd $D3
выдаст вам сообщение об ошибке, но это не так уж плохо, поскольку оно просто остается в каталоге, где оно было.