linux - para - welcome copiar y pegar




Cómo copiar y pegar desde la terminal con el teclado? (7)

¿Puedo sugerir RatPoison como su administrador de ventanas? Como su nombre indica, no necesitas un mouse en absoluto. No estoy seguro de cómo maneja el portapapeles, ya que solo lo he usado por diversión. Puede depender del programa de terminal que estés usando.

Intento alejarme del uso del mouse tanto como puedo (solo un proyecto de mascota). Sé que en la terminal puedes hacer ck para cortar una línea y cu para pegar esa línea en la misma terminal, pero estoy buscando algo donde pueda copiar una línea en la terminal en el portapapeles de gnomes para poder pegarlo en decir un navegador o somesuch.

Sé que si uso el mouse para resaltar el texto, puedo presionar shift-insert para pegar ese texto, lo cual es genial, pero ahora solo quiero poder hacerlo sin el mouse. Algo así como el resaltado c-space en emacs (pero incluso eso no se copia en el portapapeles gnome).

Gracias

Un poco más de aclaración, tengo varios terminales diferentes abiertos, y en muchos he ssh'ed en varias máquinas remotas donde las utilidades como xclip / xsel no son tan útiles.


Dicho here , los comandos predeterminados para copiar y pegar de GNOME son CTRL - SHIFT - C y CTRL - SHIFT - V.

Editar: Encontré una publicación de blog útil que te permite habilitar la copia / pegado del terminal a CTRL - C y CTRL - V en GNOME.


Este es un hack súper pesado, pero funciona para copiar la última línea de salida desde el último comando de ejecución en un terminal usando solo el teclado (y un script de python), y puede funcionar a través de ssh.

Así es como lo usa.

  1. En gnome-terminal (o similar), Alt + E, A. Esto es para Seleccionar todo.
  2. Si está en ssh, abra una terminal diferente en su máquina local.
  3. Ejecute el script adjunto, que llamo lastline en mi máquina.

Luego tienes una línea de texto sin línea nueva en tu portapapeles gtk. La secuencia de comandos funciona utilizando el portapapeles de selección x para seleccionar todo el texto de la terminal y poner la penúltima línea de la misma en el portapapeles gtk. Este script se puede modificar para seleccionar diferentes partes de la selección x, que corresponderían a diferentes partes del buffer de texto del terminal. Sin embargo, todavía hay un largo camino desde un cursor interactivo :(

Sería genial si el soporte de selección guiado por teclado integrado gnome-terminal.

Este ejemplo coloca "/ usr / bin / gcc" en el portapapeles gtk (recuerde seleccionar Seleccionar todo antes de ejecutar la última línea):

$ which gcc
/usr/bin/gcc
$ lastline

Aquí está el script que llamo lastline:

#!/usr/bin/env python

import sys, subprocess
import optparse
__version__ = "0.1"

def main():
    try:
        process = subprocess.Popen(["xsel"], stdout=subprocess.PIPE)
    except OSError:
        sys.exit("you must install xsel")
    (stdout, _) = process.communicate()

    lines = stdout.split("\n")
    if len(lines) < 3:
        text = ""
    else:
        text = lines[-3]

    import gtk
    clipboard = gtk.clipboard_get()
    clipboard.set_text(text)
    clipboard.store()

if __name__ == "__main__":
    parser = optparse.OptionParser(version=__version__)
    (options, args) = parser.parse_args()
    main()

Intenté lo que hlovdal sugirió y usé la GNU screen y xclip . El resultado fue un simple script:

cat /tmp/screen-exchange | xclip

que configuré para Ca e en .screenrc :

bind e exec !!! $HOME/bin/screen-exchange-to-primary

luego, simplemente ingreso el modo de copia / desplazamiento en la pantalla con Ca [ marcar / seleccionar con > y copiar a la selección principal con Ca e . Quizás no sea la secuencia más suave de combinaciones, pero es lo mejor que tengo hasta ahora.


Para interactuar con el portapapeles X11 desde la línea de comandos, vea esta pregunta .

Tal vez una pista lateral a lo que pides, pero para la interacción de la ventana del terminal puedo recomendar la screen , donde utilizas las teclas para copiar y pegar (¡desde un buffer de desplazamiento de búsqueda!). La operación de copiar y pegar solo se realiza entre ventanas controladas por la pantalla, tal como lo describe con la ventana del terminal y cu & ck, pero puede volcar fácilmente a / tmp / screen-xchange y luego usar xclip para copiar al portapapeles X11.


Puede ejecutar el shell dentro de Emacs, luego puede seleccionar y copiar al portapapeles como lo haría normalmente en Emacs.

En cuanto a "ejecutar el shell dentro de Emacs", hay varias opciones: Mx shell , Mx eshell y varios term / eterm / ansi-term eterm - eterm stuff (modos) (estos "* term" deben ser mejores para curse pseudographics, etc. )

En cuanto a mí personalmente, tratando de mantenerme alejado del mouse, intento usar eshell principalmente (no necesito las aplicaciones de curses por lo general), emacs-w3m para navegar en la web, solo Emacs principalmente para todo lo demás, y ratpoison como la ventana gerente.


¡Es fácil! ¡Simplemente ejecute dos comandos y podrá copiar y pegar con Ctrl+C Ctrl+V !

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/copy "<Control>c"
gconftool-2 -t str -s /apps/gnome-terminal/keybindings/paste "<Control>v"

¡Feliz copia y pegado!







gnome