1

(Смотрите мой предыдущий вопрос для дополнительного контекста).

Я мигрирую в zsh из bash и использую oh-my-zsh . Когда моя история zsh выглядит примерно так:


git status
git add -A
git commit

Я хочу иметь возможность перезапустить git add -A . Для этого я мог бы использовать !?git add , который должен:

!?ул [?] Обратитесь к самой последней команде, содержащей str. Трейлинг "?" необходим, если за этой ссылкой должен следовать модификатор или какой-либо текст, который не должен считаться частью str.

Ссылка для обозначения событий Zsh находится здесь.

К сожалению, я не могу сделать это - как я печатаю !?git add , когда я нажимаю ' ' , он автоматически завершает команду до самой последней команды, соответствующей git (то есть автоматически завершает команду с помощью git commit). Я не могу использовать указатель событий должным образом из-за этого автозаполнения, когда я попал в пространство.

Я предполагаю, что это особенность " oh-my-zsh . Я понятия не имею , где искать, хотя - grep ИНГ для «Complet» в oh-my-zsh источник не получает меня в любом месте.

Мой вопрос: как мне отключить эту функцию? Или, если это не то, что известно, где я должен искать - если я собирался реализовать это автозаполнение при вводе пробела, где было бы логичное место для этого в среде oh-my-zsh ?

2 ответа2

1

Посмотрите в oh-my-zsh/lib/key-bindings.zsh и вы увидите строку

bindkey ' ' magic-space    # also do history expansion on space

закомментируйте это, чтобы удалить эту функцию.

0

Есть несколько других способов снять кожу с этой кошки:

!{?git add?}

Открытые фигурные скобки позволят подавить расширение магического пространства в первом пространстве, а затем, если вы используете вкладку после закрывающей фигурной скобки, оно развернется на той же строке, как магия. Конечно !{?git a?} было бы достаточно.

!?add

Вам вообще не нужен этот git , по крайней мере, в этом случае. После второго d вы можете нажать клавишу возврата или табуляцию. Если между вами и командой много истории, это может привести к add трех символов в любой точке команды, что может стать проблемой.

Расширение истории Zsh подробно описано в документации по адресу:

http://zsh.sourceforge.net/Doc/Release/Expansion.html#History-Expansion

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .