Peut-être que le fichier ~/.inputrc a affecté ces touches à quelque chose d'étrange ? Ou vous ne comprenez pas bien le fonctionnement de l'historique de recherche.
Recommençons à zéro : Remappez ces touches avec bindkey :
bindkey -M vicmd "?" history-incremental-search-backward
bindkey -M vicmd "/" history-incremental-search-forward
Maintenant, lorsque vous appuyez sur 'esc' (pour vi mode normal) et '?', vous obtiendrez une commande bck-i-search :
%user@hostname: vim /etx/apache2/sites-enabled/defaul[t]
bck-i-search:
À ce stade, vous tapez ce que vous voulez rechercher, par exemple "etx". Et le curseur se déplace à cet endroit de la ligne. Remarque : si le système ne trouve pas ce motif dans la ligne actuelle, il continue à chercher dans votre historique. Ce comportement est considéré comme une fonctionnalité !
Vous remarquerez peut-être que vous ne pouvez pas effectuer de recherche répétée (comme en appuyant sur 'N' dans vim). Dans ce cas, ajoutez quelques liaisons isearch :
bindkey -M isearch '^N' history-incremental-search-backward
bindkey -M isearch '^R' history-incremental-search-forward
Maintenant, en appuyant sur Ctrl-N, vous répétez votre recherche, tandis qu'en appuyant sur Ctrl-S, vous inversez le sens de la recherche répétée (remarque : l'ordre par défaut de cette combinaison de touches est inversé de l'avant vers l'arrière, puisque l'on cherche plus souvent de la fin de l'historique vers l'arrière).
En bref : considérez la ligne actuelle comme le 'haut' de votre historique. L'utilisation du vicmd '/' ou '?' permet de rechercher la totalité de cet historique. Le '?' recherche de haut en bas, tandis que '/' recherche de l'endroit où se trouve le curseur dans votre historique vers le 'haut'. Une autre façon de voir les choses est d'imaginer que votre historique est un grand fichier, et que la ligne sur laquelle vous vous trouvez se trouve au bas de ce fichier. Si cela vous aide à comprendre, vous pouvez penser que '?' est plus pertinent que '/'.