Estoy usando el menu selectcomportamiento en zsh, que invoca un menú debajo del cursor donde puede ver las diversas posibilidades. La opción .zshrc que configuré para esto es
zstyle ':completion:*' menu select=2
De forma predeterminada, presionar Returnpara seleccionar una posibilidad en este menú solo completa la palabra; en realidad, no envía el comando. Por ejemplo, podría obtener un menú como este
~ % cd de<TAB>
completing directory:
[Desktop/] Development/
Presionando Returnaquí resultará en
~ % cd Desktop/
Luego tengo que presionar Returnuna segunda vez para enviar el comando.
Puedo modificar este comportamiento para que presionar Returnambos seleccione la finalización y envíe el comando haciendo esto
bindkey -M menuselect '^M' .accept-line
Sin embargo, hay un problema con esto: a veces necesito completar un archivo o directorio sin enviar el comando. Por ejemplo, es posible que deba hacerlo ln -s Desktop Desktop2: con este bindkeycomportamiento, intentar completar el Escritorio resultará en ln -s Desktop/ser enviado como el comando, y obviamente no quiero eso.
Soy consciente de que solo presionar la barra espaciadora me permitirá seguir con el comando, pero ahora es un hábito.
Dado esto, ¿hay alguna manera de hacerlo de modo que solo algunos comandos le permitan presionar Returnuna vez (como cd), pero todos los demás comandos requieren presionarlo dos veces?
fuente

.zshrcarchivo no le permite hacerlo, entonces la respuesta simplemente será no, a menos que ajuste el código fuente usted mismo para admitir el comportamiento basado en comandos. Pero entonces todavía tienes que definir para qué comandos hacer esto, lo que por sí solo es mucho más tedioso que presionar una tecla adicional ...Respuestas:
Si realmente necesita esto, en teoría podría establecer una función que verifique el comando que está ejecutando y complete o envíe la línea.
Pruebe algo como esto (no probado):
Fuente: ¿ usando un comando personalizado del antiguo .inputrc en zsh?
fuente
Técnicamente no es posible en la forma en que está preguntando. No sé si hay otra salida
fuente