Сделать сочетание клавиш для Информации в Zsh?

public String extractName(Element building) {
     return this.selectors
             .getName()
             .map(cssSelector -> {
                        Elements buildingNameElement = building.select(cssSelector);
                        return buildingNameElement.text();
                    })
             .orElse("N/A");
}  

Это то, для чего Optional.map. Когда вы делаете return внутри лямбды, вы возвращаетесь только из лямбды, а не из внешнего метода. Таким образом, вышеприведенное использует текст элемента имени здания, если getName вернул имя / селектор. И возвращает N/A, если нет.

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

     return this.selectors
             .getName()
             .map(cssSelector -> building.select(cssSelector).text())
             .orElse("N/A");

Отказ от ответственности: у меня нет JSoup на моем компьютере, поэтому у меня нет т проверено. Пожалуйста, прости, если есть опечатка, и доложи.

6
задан dcharles 22 September 2011 в 21:35
поделиться

1 ответ

Это должно сработать:

function run_info() { 
  # Prepend "info" to the command line and run it.
  BUFFER="info $BUFFER"
  zle accept-line
}

# Define a widget called "run_info", mapped to our function above.
zle -N run_info

# Bind it to ESC-i.
bindkey "^[i" run_info

Просто вырезайте и вставляйте это в оболочку, чтобы попробовать, и добавьте в свой .zshrc для постоянного эффекта.

Перефразируя код Общая идея заключается в том, что мы сначала определяем виджет с именем «run_info», реализованный с помощью функции с тем же именем. Он берет буфер командной строки и добавляет «info» в начало. Затем он принимает командную строку (аналогично нажатию Enter ). Наконец, виджет сопоставляется с сочетанием клавиш.

Вы можете прочитать справочную страницу zshzle (1) для получения дополнительной информации о том, как этот материал работает.

13
ответ дан 8 December 2019 в 18:41
поделиться
Другие вопросы по тегам:

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