Lo uso vimesencialmente para todas mis necesidades de edición, así que decidí probar una vez más el modo vi para mi shell (actualmente ZSH w / oh-my-zsh en OS X), pero me encuentro intentando (y fallando) usarlo Ctrl-Rconstantemente. ¿Cuál es la combinación de teclas equivalente? Y para referencia futura, ¿cómo lo resolvería yo mismo? Estoy bastante seguro de que podría usar bind -Pen bash.
zsh
command-history
vi-mode
Hank Gay
fuente
fuente

Respuestas:
Puede ejecutar
bindkeysin argumentos para obtener una lista de enlaces existentes, por ejemplo:En el modo emacs, el enlace que desea es
history-incremental-search-backward, pero no está vinculado por defecto en el modo vi. Para enlazar Ctrl-R usted mismo, puede ejecutar este comando o agregarlo a su~/.zshrc:La página de
zshzlemanual (man zshzle) tiene más información sobre los modos editor de línea, bindkey y emacs / vi de zsh.fuente
zshzle. Eso es bastante informativo y útil.Esta es una pregunta antigua, pero la única respuesta (y aceptada) básicamente le dice a uno cómo trasplantar el modo "emacs-like"
history-incremental-search-backwarda vi. Si bien esto es perfectamente factible y puede ser la solución adecuada para usted, es un poco extraño que nadie haya mencionado la "forma vi" de buscar en el historial.El modo vi en zsh admite el historial de búsqueda utilizando las teclas estándar vi / vim:
/y?ambas disponibles en modo comando. (Presione<Esc>para cambiar del modo insertar al modo comando, como en vi o vim)Sin embargo, su sentido se invierte: dado que generalmente desea buscar el historial de su shell en reversa,
/realiza una búsqueda inversa mientras que?realiza una búsqueda hacia adelante.Una vez que se muestra el primer hit, puede (al igual que en vi / vim) usar
npara continuar encontrando más hits en la misma dirección, oNpara invertir la dirección de la búsqueda.Las asociaciones de teclas predeterminadas relevantes en el mapa de teclas
vicmdson:fuente
"^P" history-beginning-search-backwardy"^N" history-beginning-search-forwardpara autocompletar como vim (comienza a escribir, luego presionactrl+poctrl+n).?aparecebck-i-search, que es exactamente lo que estaba buscando. Gracias./o `? ' doesnt: coderwall.com/p/-jvcag/zsh-reverse-history-search-with-regex^Rcombinación de teclas. El único carácter "tipo regex" compatible con amboshistory-search-backwardyhistory-incremental-search-backwardes^, anclar la cadena de búsqueda al comienzo de la línea. El verdadero poder dehistory-incremental-search-backwardes que realiza una búsqueda incremental, como su nombre lo indica. Me imagino que uno podría querer vincularlo en elvicmdmapa de teclas por esa razón.history-incremental-pattern-search-backward, nohistory-incremental-search-backward.history-incremental-pattern-search-backwardstal vez un widget ... pero creo que viene instalado por defecto en zsh. Admiteglobpatrones noregexcomo usted señaló correctamente: zsh.sourceforge.net/Doc/Release/Expansion.html#Glob-Operators . De hecho, hay un error en la publicación ..