энергия и Дерево КОМПЬЮТЕРНОГО ФАНАТА: Дерево КОМПЬЮТЕРНОГО ФАНАТА может сохраниться через вкладки в MacVim?

При использовании Дерева КОМПЬЮТЕРНОГО ФАНАТА на MacVim я могу открыть файл на новой вкладке при помощи 't' (или 'T' для открытия его в фоновом режиме) в окне NERD Tree, но когда я переключаюсь на ту вкладку, окно NERD Tree больше не видимо, так как это остается на исходной вкладке. Существует ли способ автоматически открыть NERD Tree на новых вкладках когда вводные файлы от Дерева КОМПЬЮТЕРНОГО ФАНАТА на новых вкладках? Или Дерево КОМПЬЮТЕРНОГО ФАНАТА может сохраниться через вкладки?

17
задан Aaron Massey 17 February 2010 в 18:38
поделиться

2 ответа

Вы также можете использовать : NERDTreeMirror . Я предпочитаю это NERDTreeToggle, когда хотя бы одно дерево уже открыто, потому что это поддерживает согласованность дерева на всех вкладках.

14
ответ дан 30 November 2019 в 10:04
поделиться

Во-первых, нет смысла говорить «реализовать в других интерфейсах», потому что интерфейсы не могут реализовать ничего.

Я вижу два ошибочных способа сделать это, вроде как.

  1. Создание анимированных и неанимированных абстрактных классов, реализующих IAnimation. Конкретный класс под ними все еще может принудительно переопределить методы IAnimation с помощью нового оператора:

     класс SomeAnim: Animated
    {
    public new void Foo () {}
    }
    
  2. Используйте миксины. Сохраняйте IAnimated и INonAnimated в качестве интерфейсов, но не помещайте в интерфейс никаких методов. Вместо этого определите методы расширения следующим образом:

     статический класс Ext
    {
    публичная статическая пустота Foo (этот IAnim anim)
    {
    если (аним IAnimated )//сделать что-то
    в противном случае, если (anim является INonAnimated )//сделать что-то другое
    }
    }
    

снова, немного взлом. Но то, что вы пытаетесь сделать, указывает на недостатки дизайна.

-121--2394871-

Я столкнулся с этой проблемой в проекте, в частности, потому, что время ожидания сеанса BlazeDS отличалось от фактического приложения (с использованием единого знака на архитектуре через ClearTrust). Следует отметить, что это было в среде JBoss. В итоге я выбрал довольно простой подход, найдя 2 специфических кода в обработчиках отказов (имели базовый класс с общим обработчиком отказов): DuplicateSessionDetected и DelivityInDoubt. Я видел DuplicateSessionDetected всякий раз, когда BlazeDS пытался создать новый сеанс для того же самого идентификатора сеанса JBoss. DeliviveInDoubt, как правило, иногда также появляется, но я не уверен, почему. Когда я увидел эти коды ошибок, я предпринял необходимые действия, чтобы обновить приложение (в зависимости от ваших потребностей, вы можете перенаправить на страницу входа или что-то еще). Очевидно, что в зависимости от среды может потребоваться прослушивание различных кодов неисправностей, и этот подход может работать не в любой ситуации, учитывая различные среды/конфигурационные элементы/и т.д.

Другой подход, который обсуждался, заключался в использовании таймера в приложении Flex, который представлял бы таймер таймаута BlazeDS, но я не поклонником таймеров, сидящих вокруг с этой целью. Я также слышал о посылке небольшого количества данных туда и обратно на сервер для проверки тайм-аута, но опять же, это казалось менее чем идеальным.

-121--4056488-

Единственным постоянным объектом в Vim является буфер. Окна отображаются в буферах, закладках. При необходимости открытия дерева NERD на новой закладке вызовите : NERDTreeToggle . Другой вариант: открыть новую вкладку, открыть дерево NERD, а затем открыть файл на только что созданной вкладке.

Но мне интересно, почему вы хотите, чтобы дерево файлов постоянно открывалось. Это просто пустая трата космоса. Можно отобразить клавишу для вызова : NERDTreeToggle , чтобы сделать ее видимой, когда она действительно необходима.

5
ответ дан 30 November 2019 в 10:04
поделиться
Другие вопросы по тегам:

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