Как использовать привязку клавиш FZF в режиме vi ZSH?

Чтобы добавить к G -Ответ человека:да, вы можете добиться точно такого же результата, используя только sh (, так как это было спецификацией в вашем дублирующем вопросе там , на который я ответил 9 часов до G -Человек ответит здесь ).

Существует встроенная функция set, которая позволяет вам назначать значения для$1$2и $3и так далее. Вот цитата из справочной страницы bash (, это также относится к sh):

установить [{ -опции | +опции | --}] аргумент...

The third use of the set command is to set the values of the shell's positional parameters to the specified args. To change the positional parameters without changing any options, use “--” as the first argument to set. If no args are present, the set command will clear all the positional parameters (equivalent to executing “shift $#”.)

Так что можно:

set -f
while read ln; do
    set -- $ln
    printf '%s\n' "$ln" >> "index i"$2
done < input
set +f

В set -- $ln, $lnразбивается на поля, и n-е поле назначается n-му позиционному параметру.

Цитата вокруг $lnв следующей строке обеспечивает целостность содержимого (с сохранением пробелов и т. д. ).

set -fи set +fпредназначены для предотвращения подстановки символов, таких как *и ? в файле с путаницей set. Спасибо Скотту за то, что поднял эту тему.

Вместо printfя изначально использовал echo. Но благодаря второму комментарию Скотта (, если противник меняет строку на echoс такими опциями, как -n, -eи т. д.,тогда echoзапутается ), printfвместо этого используется для защиты от этого.

Это показывает, что sh, вероятно, не идеальный выбор для такого рода работы. По крайней мере, используйте bash с поддержкой регулярных выражений. Но, это выполнимо, если вы попробуете.

Что касается awk, то он не "немного быстрее", а быстрее на порядок, если не учитывать дисковый ввод-вывод. Поэтому предпочтительнее использовать awk.

Кстати, я уверен, что вы не слышали о поговорке «если два ответа — это слишком много, то два вопроса — это два слишком много».

since I just said it ;)

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

0
24.05.2021, 18:00
1 ответ

Сначала установите раскладку клавиатуры, , затем исходный сценарий оболочки Fzf. В противном случае сценарий оболочки Fzf установит все сочетания клавиш в раскладку по умолчанию emacs(, после чего вы переключитесь наvi).

1
28.07.2021, 11:29

Теги

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