zsh keybindings :make back -kill -word действует на всю строку в кавычках

Если он сохраняется для последующего чтения (в bashскрипте ), просто используйте declare -p KEYи затем загрузите файл, чтобы прочитать его снова. Если вы хотите просто сохранить значение, используйте printf '%s\n' "$KEY", как если бы вы выводили любые переменные данные.

Итак,

printf '%s\n' "$KEY" >key.pem

или

printf 'BEGIN %s END\n' "$KEY" >key.pem

или что вам нужно вывести.

Ваша проблема возникает из-за того, что -nявляется допустимым вариантом для echoв bash. Строки -eи-E(и их комбинации, такие как -neEne), также вызовут проблемы в bashпо той же причине. В зависимости от того, как построен bash, среды или параметров, символы обратной косой черты в аргументах также могут быть проблемой.

Эти и другие вопросы описаны в следующих вопросах и ответах:

2
20.08.2021, 10:12
2 ответа

Стиль словshellделает именно это.

autoload -U select-word-style
select-word-style shell
2
20.08.2021, 21:33

Я думаю, вам понадобится место в WORDCHARS, и, поскольку, похоже, нет способа определить правила их использования, я не уверен, что есть способ заставить это работать. Возможно, есть способ определить собственный макрос Emacs, на который может ссылаться командная строка. Если есть способ сделать что-то из этого, это выходит за рамки моего знакомства, и я бы с радостью доверился кому-то в курсе.

Не тот ответ, который вы искали

Это не прямой ответ на поставленный вопрос, но это то, что вы могли бы сделать в том же духе, что вы описали, используя встроенные функции (предостережения, которым необходимо следовать):

Измените метод редактора строк наvi

set -o vi

Тогда вы могли бы попытаться не забыть напечатать эту маленькую красавицу:

Esc2dF"x или Esc2dF'x в соответствии с используемыми кавычками.

С пальцев не скатывается, но по крайней мере нажать можно. повторить, если хотите.

Предостережения

Это просто двойной поиск экземпляра данной цитаты в обратном направлении и удаление всего, что находится на пути (без учета синтаксиса, контекста и т. д. ). Учитывая, что это была ваша командная строка, и ваш курсор лежал в конце:

echo "foo bar" baz

Вы получите

echo<space>

Или, если вы начали с

echo "foo bar" baz "boz

Вы получили бы в равной степени не -вполне -то, что -я -хотел

echo "foo bar

Вам нужно будет находиться в режиме vi, прежде чем вы начнете печатать, поэтому вам нужно будет установить его в своем профиле или что-то в этом роде.

Наличие viв качестве редактора в командной строке — это что-то вроде смены парадигмы и, вероятно, будет борьбой с мышечной памятью --, а это действительно не очень весело.

Итак...

Я бы, наверное, сам несколько раз нажал CtrlW .

Если вы случайно переборщите, всегда есть отмена Ctrl_.

1
20.08.2021, 11:20

Теги

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