2009-07-11 12 views
19

¿Hay un shell de línea de comandos o personalización de shell que admita el archivo ido encontrar de estilo de emacs? En emacs, puedo navegar a un directorio extremadamente rápido usando C-x C-f y (ido-mode t).Emacs ido-style shell

Idealmente, estoy buscando una solución que se pueda usar fuera de emacs. Aunque estaría abierto a una forma de cambiar rápidamente los directorios dentro de un búfer de eshell.

+0

menudo he deseado más aplicaciones se comportaban como ido-modo. –

+7

¿Por qué alguna vez dejar emacs? :) eshell? – seth

+0

Dijo que usa eshell. Leí el código fuente de ido, y realmente no está suficientemente bien como para usarlo fácilmente desde Eshell. Por lo tanto, tendrá que refactorizar ido y luego vincularlo a eshell, si elige esa ruta. – jrockway

Respuesta

19

Como también quería algo así, traté de implementarlo como una función de finalización de bash . Obviamente significa. tienes que usar bash.

Solo se ha probado ligeramente, así que no dude en probar e informar errores/comentarios.

http://pgas.freeshell.org/shell/bash-ido

+2

¡Increíble trabajo! ¿Alguna idea de poner esto en algo como github? – zpinter

+1

¡Muy impresionante! – blais

0

Sé que alguna extensión de soporte del emulador de terminal, por ejemplo rxvt-unicode se puede extender con scripts de Perl. No estoy seguro ya que nunca escribí una extensión, pero tal vez lo que quieres es factible de esta manera.

Si desea ver algunos scripts Perl para urxvt, hay algunos ejemplos en/usr/lib/urxvt/perl con la instalación predeterminada de urxvt en Debian.

+1

El problema es que el emulador de terminal y el shell no se conocen entre sí. Se puede hacer algunas modificaciones en el análisis del mensaje, pero es un truco y es probable que falle. (Considere ser ssh'd in. El emulador de terminal ve su sistema de archivos local, pero el shell ve el sistema de archivos remoto. Deje que empiecen la confusión y los resultados incorrectos ...) – jrockway

2

Bash tiene una variable de entorno llamada CDPATH que puede contener una lista de directorios para buscar cuando se utiliza el comando cd. Además, consulte las secciones "Terminación programable" y "LISTA" del manual de Bash. Debería ser capaz de improvisar algo que funcione para usted.

3

Pruebe la Z-shell. Tiene una finalización mucho mejor que bash. Debo admitir que no lo he usado por un tiempo y me he quedado con bash porque siempre está disponible.

0

Si desea completar ídolo en eshell o similar, lo mejor sería escribir una función que utiliza ido para leer un directorio, luego inserta el comando para cd a ese directorio en el búfer del shell. No uso Eshell, así que no pude comentar cómo escribir esta función, pero es una idea.

2

Lo mejor que he podido encontrar hasta ahora es autojump. Todavía estoy buscando una solución más cercana a ido, pero autojump es una gran aplicación pequeña.

+0

y descubrí Fasd que encuentro incluso mejor: https: // github.com/clvv/fasd – Ehvince

Cuestiones relacionadas