EDITAR Abril de 2015: si tiene esta misma pregunta, le recomiendo también consultar http://xiki.org/
Sé que no es así como funcionan los terminales, pero a menudo me encuentro deseando que haya una manera fácil de usar el texto (copiarlo, modificarlo, etc.) que ya está en el historial de mi ventana de terminal de alguna salida de comando anterior.
Lo he imaginado así:
Estoy en mi bash shell a punto de ingresar un comando y me doy cuenta de que necesito escribir algo que ya está en la pantalla unas líneas más arriba. Puedo alcanzar el mouse y seleccionarlo, pero odio eso. Lo que realmente deseo en este momento es que toda mi terminal se haya convertido en un búfer gigante de Vim, todo: las indicaciones, los comandos que he escrito y la salida de esos comandos. Todo. Y luego podría saltar algunas líneas hacia arriba, tal vez editar un poco y tirar un poco de texto. Luego, regrese al modo de shell bash y pegue lo que haya tirado en la línea de comando actual.
Sé que hay algunas opciones:
Naturalmente, canalice el texto que necesito directamente de la salida de algún comando a un archivo, o directamente al siguiente comando. Pero para eso debe planificar por adelantado o volver a ejecutar el comando desde su historial (suponiendo que la salida no cambie entre invocaciones).
Para alcanzar el mouse y seleccionar el texto a copiar. Cojo, molesto, desearía no haber hecho eso (este no es el sitio de intercambio de la GUI, ¿verdad? =)
Para usar la opción "Exportar texto como ..." de mi aplicación de terminal (Mac OS X) y guardar el texto del terminal en un archivo. Luego abra el archivo y trabaje con él. Casi, pero ¿por qué seguir el paso de guardar en un archivo en el disco?
Entonces la pregunta es: ¿Qué haces en esta situación? ¿Hay algún truco, herramienta, función de shell que pueda ser útil en este escenario? ¿Te resignas a usar el mouse o reescribes lo que necesites?
Puede ser que el problema sea que no estoy haciendo las cosas 'a la manera de Unix', pero vamos, esto es 2010 y no puedo copiar fácilmente algunas líneas de texto lejos de mi cursor.
fuente
Respuestas:
Puede usar el script (use -f para asegurarse de que se vacíe todo el tiempo) y puede tener toda la salida en un archivo.
Utilice un multiplexor de terminal (pantalla, tmux, etc.). Por ejemplo, para la pantalla http://web.mit.edu/gnu/doc/html/screen_11.html#
Otros multiplexores terminales seguramente tienen capacidades más avanzadas.
fuente
En tmux (un multiplexor de terminal) puede presionar Ctrl + A- [para cambiar al modo de búfer Vi donde puede navegar por la pantalla, desplazar el búfer hacia adelante y hacia atrás, copiar texto, etc. El atajo predeterminado es en realidad Ctrl + B- [pero eso obviamente estaba destinado a ser reconfigurado. Además, el modo de búfer predeterminado es Emacs, pero puede configurarlo para que sea Vi.
Echa un vistazo a tmux, realmente es un gran multiplexor de terminales moderno. Además de trabajar con el búfer, puede dividir la pantalla en múltiples ventanas, conectarse a la misma sesión desde múltiples terminales, etc. Para mayor comodidad, incluso puede convertirlo en su shell de inicio de sesión si le dice cuál es su shell real.
En OpenBSD, tmux incluso se hizo parte del sistema base.
Vea la página de manual de tmux para más detalles. Ver también capturas de pantalla en http://tmux.sourceforge.net/
fuente
En emacs, Mx shell maneja la edición de la salida anterior. Puede copiar y pegar fácilmente la salida de comandos anteriores, o cualquier parte de su búfer, como un búfer normal. Estoy bastante seguro de que debería haber un equivalente vim.
fuente
eshell
.Como se mencionó aquí, el Emacs '
eshell
podría ser su término predeterminado + shell. :) Entonces usarías las teclas de navegación de texto habituales allí como mínimo. Si aprendió más teclas especiales,eshell
puede acceder a las siguientes características de Emacs :fuente
Uso urxvt (rxvt-unicode) y hay un paquete llamado urxvt-keyboard-select que puede ser exactamente lo que quieres, si puedes instalar urxvt. La información del paquete Archlinux (que contiene punteros) está aquí:
https://aur.archlinux.org/packages.php?ID=39950
Fuente original: http://www.github.com/muennich/urxvt-perls
fuente
Intente usar vim como su CLI? Simplemente seleccione la salida desde unas pocas líneas hacia arriba y canalice a través de:
fuente