zsh: populate search input with existing line contents when ^R is pressed?
up vote
2
down vote
favorite
Given .zshrc config:
bindkey -v
bindkey "^R" history-incremental-pattern-search-backward
When I type foo<^R>bar
at an empty prompt, it searches for the most recent command matching bar
.
How can I make ^R use the existing prompt input? I.e. with that key sequence I want to match foobar
.
zsh command-history zle
add a comment |
up vote
2
down vote
favorite
Given .zshrc config:
bindkey -v
bindkey "^R" history-incremental-pattern-search-backward
When I type foo<^R>bar
at an empty prompt, it searches for the most recent command matching bar
.
How can I make ^R use the existing prompt input? I.e. with that key sequence I want to match foobar
.
zsh command-history zle
add a comment |
up vote
2
down vote
favorite
up vote
2
down vote
favorite
Given .zshrc config:
bindkey -v
bindkey "^R" history-incremental-pattern-search-backward
When I type foo<^R>bar
at an empty prompt, it searches for the most recent command matching bar
.
How can I make ^R use the existing prompt input? I.e. with that key sequence I want to match foobar
.
zsh command-history zle
Given .zshrc config:
bindkey -v
bindkey "^R" history-incremental-pattern-search-backward
When I type foo<^R>bar
at an empty prompt, it searches for the most recent command matching bar
.
How can I make ^R use the existing prompt input? I.e. with that key sequence I want to match foobar
.
zsh command-history zle
zsh command-history zle
edited Nov 27 at 21:51
Gilles
524k12610471577
524k12610471577
asked Nov 27 at 21:13
Plato
1133
1133
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
2
down vote
accepted
If you bind ^R
to history-beginning-search-backward
, it comes close, but that's not a pattern search.
You can bind ^R
to a function that adds the current content of the line as the initial search pattern.
history-incremental-pattern-search-backward-from-line () {
zle history-incremental-pattern-search-backward $BUFFER
}
zle -N history-incremental-pattern-search-backward-from-line
bindkey -M viins "^R" history-incremental-pattern-search-backward-from-line
bindkey -M vicmd "^R" history-incremental-pattern-search-backward-from-line
bindkey -M isearch "^R" history-incremental-pattern-search-backward
(You need that binding to the isearch
map because otherwise a repeated ^R
would base its search on the line you've found so far, instead of repeating the current search.)
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
accepted
If you bind ^R
to history-beginning-search-backward
, it comes close, but that's not a pattern search.
You can bind ^R
to a function that adds the current content of the line as the initial search pattern.
history-incremental-pattern-search-backward-from-line () {
zle history-incremental-pattern-search-backward $BUFFER
}
zle -N history-incremental-pattern-search-backward-from-line
bindkey -M viins "^R" history-incremental-pattern-search-backward-from-line
bindkey -M vicmd "^R" history-incremental-pattern-search-backward-from-line
bindkey -M isearch "^R" history-incremental-pattern-search-backward
(You need that binding to the isearch
map because otherwise a repeated ^R
would base its search on the line you've found so far, instead of repeating the current search.)
add a comment |
up vote
2
down vote
accepted
If you bind ^R
to history-beginning-search-backward
, it comes close, but that's not a pattern search.
You can bind ^R
to a function that adds the current content of the line as the initial search pattern.
history-incremental-pattern-search-backward-from-line () {
zle history-incremental-pattern-search-backward $BUFFER
}
zle -N history-incremental-pattern-search-backward-from-line
bindkey -M viins "^R" history-incremental-pattern-search-backward-from-line
bindkey -M vicmd "^R" history-incremental-pattern-search-backward-from-line
bindkey -M isearch "^R" history-incremental-pattern-search-backward
(You need that binding to the isearch
map because otherwise a repeated ^R
would base its search on the line you've found so far, instead of repeating the current search.)
add a comment |
up vote
2
down vote
accepted
up vote
2
down vote
accepted
If you bind ^R
to history-beginning-search-backward
, it comes close, but that's not a pattern search.
You can bind ^R
to a function that adds the current content of the line as the initial search pattern.
history-incremental-pattern-search-backward-from-line () {
zle history-incremental-pattern-search-backward $BUFFER
}
zle -N history-incremental-pattern-search-backward-from-line
bindkey -M viins "^R" history-incremental-pattern-search-backward-from-line
bindkey -M vicmd "^R" history-incremental-pattern-search-backward-from-line
bindkey -M isearch "^R" history-incremental-pattern-search-backward
(You need that binding to the isearch
map because otherwise a repeated ^R
would base its search on the line you've found so far, instead of repeating the current search.)
If you bind ^R
to history-beginning-search-backward
, it comes close, but that's not a pattern search.
You can bind ^R
to a function that adds the current content of the line as the initial search pattern.
history-incremental-pattern-search-backward-from-line () {
zle history-incremental-pattern-search-backward $BUFFER
}
zle -N history-incremental-pattern-search-backward-from-line
bindkey -M viins "^R" history-incremental-pattern-search-backward-from-line
bindkey -M vicmd "^R" history-incremental-pattern-search-backward-from-line
bindkey -M isearch "^R" history-incremental-pattern-search-backward
(You need that binding to the isearch
map because otherwise a repeated ^R
would base its search on the line you've found so far, instead of repeating the current search.)
answered Nov 27 at 21:51
Gilles
524k12610471577
524k12610471577
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f484521%2fzsh-populate-search-input-with-existing-line-contents-when-r-is-pressed%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown