zsh: остановите backward-kill-word на разделителе каталога

@EnocNRoll - ответ Ананды Гопал интересен, но если экземпляр не создается заранее или вы хотите проверить с помощью определения общего типа, я бы предложил этот метод:

public static bool TypeIs(this Type x, Type d) {
    if(null==d) {
        return false;
    }

    for(var c = x; null!=c; c=c.BaseType) {
        var a = c.GetInterfaces();

        for(var i = a.Length; i-->=0;) {
            var t = i<0 ? c : a[i];

            if(t==d||t.IsGenericType&&t.GetGenericTypeDefinition()==d) {
                return true;
            }
        }
    }

    return false;
}

и использовать его как:

var b = typeof(char[]).TypeIs(typeof(IList<>)); // true

Существует четыре условных случая, когда оба t (для тестирования) и d являются общими типами, а два случая охватываются t==d, которые являются (1) ни t, ни d не являются общим определением или (2), оба из них являются общими определениями . В остальных случаях одним из них является общее определение, только если d уже является общим определением, мы имеем возможность сказать , а t - d , но не наоборот.

Он должен работать с произвольными классами или интерфейсами, которые вы хотите протестировать, и возвращает то, что, как если бы вы протестировали экземпляр этого типа с помощью оператора is.

42
задан wilhelmtell 15 January 2009 в 08:30
поделиться

2 ответа

Быстрый Google показывает:

Обратное Уничтожение

Или, возможно, лучшая фиксация:

Стиль Bash Назад Уничтожают

4
ответ дан James Van Huis 4 August 2019 в 19:14
поделиться

Для последних версий zsh вы можете просто добавить:

autoload -U select-word-style
select-word-style bash

в свой zshrc, как описано в zshcontrib (1) .

.
68
ответ дан 26 November 2019 в 20:58
поделиться
Другие вопросы по тегам:

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