Изменить рабочий каталог vim с помощью DIRSTACK - PullRequest
0 голосов
/ 13 декабря 2018

Я интенсивно использую массив окружения DIRSTACK в bash и часто меняю каталоги с помощью встроенных команд, таких как cd ~2 или cd ~4

Как я могу настроить vim для использования этой функции?Я хотел бы иметь возможность изменить рабочий каталог vim, как я это делаю в bash.Я вижу, что команды запускаются в подоболочке, поэтому использование !cd не работает.

1 Ответ

0 голосов
/ 08 февраля 2019

Часть проблемы заключается в том, что 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 выдаст вам сообщение об ошибке, но это не так уж плохо, поскольку оно просто остается в каталоге, где оно было.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...