о-мі-зш завершення історії


45

Я нещодавно перейшов на zsh, використовуючи robbyrussell'soh-my-zsh . До цього я використовував bash з великою кількістю нестандартних речей, і мені бракує лише однієї речі, оскільки zsh намагається бути "занадто розумним":

Якщо я набираю, git commitа потім zsh проходить всі останні gitкоманди. Те, що мені дуже хочеться, - це проходити всі команди, які починаються з git commit(не тільки git).

Як я можу досягти такої поведінки в (ох-мій) зш?


Як не дивно, я використовую OMZSH, і він поводиться так. У вас є "plugins = (git)" у своєму zshrc?
Chris2048

так, я це роблю, але це не тільки для git, всі команди виконуються таким чином.
Патрік Осіті

Про Ubuntu дивіться superuser.com/a/1490192/131522
mixel

Відповіді:


66

Я знайшов рішення своєї проблеми в документації на ZSH . Ой-мі-зш, здається, відображає та ключі на щось подібне

bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward

Що дає точну поведінку, яку я описав вище. Документація ZSH описує поведінку history-search-backwardяк

Шукайте назад в історії рядок, що починається з першого слова в буфері .



Я замість цього хотів, це наступне відображення, яке я вставив у своє ~/.zshrc:

bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward

Поведінка компанії history-beginning-search-backwardтака:

Швидкий пошук в історії для рядка, що починається з поточного рядка до курсору . Це залишає курсор у вихідному положенні.

Крім того, якщо \e[Aне працює стрілками вгору або вниз, натисніть <ctrl-v><KEY (e.g., up arrow)>на іншому терміналі, який дає ^[OA. Тоді ви можете використовувати це замість \e[A. Процес описаний тут: http://zshwiki.org/home/zle/bindkeys


1
Дякую, дякую, дякую !! Я пішов з цього приводу
mhenrixon

Для користувачів, які не є OMZ, як я: bindkeyне робить нічого реального через помилку, тому команда OMZ зашила цей плагін . Просто завантажте його та надсилайте джерело раніше bindkey.
Франклін Ю

@FranklinYu ти розумієш, що це загальна кількість людей, правда? цей плагін не робить нічого з bindkey, крім USE його, щоб спіймати деякі події.
nonchip

Ого, це ідеально!
Білка

12

Я хотів однакової поведінки для zsh із oh-my-zshвстановленим та знайденим плагіном history-substring-search.

Я домігся тієї ж поведінки, як описано вище, додавши плагін до мого ~/.zshrc:

plugins=(git brew npm history-substring-search)

Я думаю, цей плагін не існував, коли це питання було порушено. Просто альтернативний спосіб досягти того самого.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.