Ahora, para copiar al portapapeles del sistema, tengo que seleccionar a través del texto del mouse en la ventana tmux con la Shift
tecla. Y luego tengo que ejecutar este comando:
tmux save-buffer - | reattach-to-user-namespace pbcopy
¿Es más fácil guardar en el portapapeles del sistema? Enlace de teclas o mejor, hágalo automáticamente después de soltar Shift.
Mi configuración de tmux: https://gist.github.com/3641580
macos
shell
command-line
tmux
tomekfranek
fuente
fuente
osx
, pero las respuestas hablan de clic izquierdo y medio ...Respuestas:
Si está utilizando iTerm2, puede copiar texto en la sesión de Tmux, manteniendo presionada la Optiontecla mientras arrastra el mouse para hacer la selección.
Entonces debería ser posible pegar texto en cualquier lugar con Cmd+ Vcomo de costumbre. Lo encontré aquí: http://web.archive.org/web/20131226003700/http://ootput.wordpress.com/2013/08/02/copy-and-paste-in-tmux-with-mouse/
fuente
Si usa iTerm2 3.x, puede hacer que copiar / pegar funcione habilitando
Applications in terminal may access clipboard
:Simplemente resalte el texto con el mouse para copiarlo en el portapapeles de OS X. No es necesario presionar Optioncomo se sugiere en la respuesta del aceptador.
También puede pegar desde el portapapeles de OS X en tmux con el Cmd+ habitual V.
fuente
reattach-to-user-namespace
enfoques basados en-no funcionan para mí, porque a menudo utilizo ssh en máquinas Linux. ¡Esta solución, sin embargo, funciona muy bien! ¡Gracias!set clipboard=unnamed
resulta que también uso Vim y agregué mi vimrc para ese propósitoAquí se responde una pregunta similar: /unix/15715/getting-tmux-to-copy-a-buffer-to-the-clipboard
Solución encontrada allí:
# move x clipboard into tmux paste buffer bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer" # move tmux copy buffer into x clipboard bind C-y run "tmux show-buffer | xclip -i"
Compruebe también: http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/
si ha configurado las siguientes opciones:
panel de selección del mouse
ventana de selección del mouse
notará que no puede seleccionar texto en absoluto.
hold down the shift key and then left click and drag across the target text. you must also hold down the shift key and then middle click in order to paste the text.
fuente
xclip -o
=>pbpaste
,xclip -i
=>pbcopy
.Para os x, si usa la aplicación "Terminal". Puede desactivar el desplazamiento del mouse y usar las funciones habituales de copiar / pegar (cmd + c / cmd + v):
o puede usar el desplazamiento del mouse y seleccionar texto usando la "tecla fn":
fuente
fn
consejo clave es un salvavidas! mucha gente sugiere usarlo,ALT
pero no funciona en la última Mac OS xEn OSX usando tmux versión 2.2 o posterior, agregue lo siguiente a su archivo tmux.conf:
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy" bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"
Para tmux versión 2.4, dado que amablemente decidieron cambiar la sintaxis del comando, debe usar:
bind-key -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy"
Tenga en cuenta que también puede necesitar usar en
reattach-to-user-namespace pbcopy
lugar de simplepbcopy
.fuente
Poner esto en mi archivo ~ / .tmux.conf funciona para mí:
bind y run-shell "reattach-to-user-namespace -l zsh -c 'tmux show-buffer | pbcopy'"
Todas las demás posibles soluciones que encontré fueron copiar algún tipo de contenido vacío en el portapapeles de OSX.
El único problema es que esto parece poner un retorno de carro al final del contenido pegado.
fuente
presione el botón izquierdo del mouse y manténgalo presionado, seleccione el texto en el panel y aún mantenga presionado el botón. luego presione "y", que guarda la selección dentro del portapapeles y sale del modo de selección / copia.
funciona aquí con iTerm 3.1.beta.5, tmux 2.5 y la siguiente configuración:
### copy & paste ------------------------------------------------------- # Use vim keybindings in copy mode setw -g mode-keys vi # Setup 'v' to begin selection as in Vim bind-key -T copy-mode-vi v send -X begin-selection bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" # Update default binding of `Enter` to also use copy-pipe unbind -T copy-mode-vi Enter bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
fuente
unbind
.copy-mode-vi
mientras que la versión anterior usacopy-mode
.presione la tecla shift y luego haga clic con el mouse !! Consulta este enlace. http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/
fuente
Pude resolver este problema con
CMD
+C
después de seleccionar el texto conFN
+mouse drag with left button down
de latmux
ventana en laTerminal
aplicación de macOS High Sierra.fuente
Hice una versión usando netcat hoy que es bastante simple.
https://github.com/base698/tmux-copy-paste-mac-osx
Aquí está el tmux.conf:
bind -t vi-copy 'v' begin-selection bind -t vi-copy 'y' copy-pipe 'nc localhost 5682' bind p run-shell 'nc localhost 5683; nc localhost 5683 | tmux load-buffer -' \; paste-buffer
También funciona con el mouse en 1.8
fuente
Aquí está la solución que estoy usando
tmux
versión 2.8, macOS Mojave 10.14.1 y Terminal.app.Después de soltar el botón del mouse, esto elimina la selección mientras se copia al portapapeles del sistema (así como al
tmux
búfer):bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"
fuente
Una solución robusta que funciona con cualquier combinación de mosh + tmux + vim + sesiones anidadas
Después de pasar muchos días abordando esto, la solución más robusta que he descubierto es la solución publicada de Suraj N. Kurapati . La solución funciona localmente con (y sin) tmux v3.2 y / o vim, así como de forma remota con (y sin) tmux y / o vim , usando tanto teclas de modo de copia como una simple selección del mouse.
Si se combina con la solicitud de extracción de Mike Gulick (actualmente abierta) , todas estas combinaciones funcionan con mosh .
Hasta que la solución de Mike se fusione en mosh, puede extraer sus cambios y compilar localmente usando:
Ubuntu:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0 \ && sudo apt-add-repository https://cli.github.com/packages \ && sudo apt update \ && sudo apt install -y gh autoconf automake perl protobuf-compiler libprotobuf-dev libncurses-dev zlib1g-dev libutempter-dev libssl-dev pkg-config \ && mkdir -p ~/tmp/mosh \ && git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \ && cd ~/tmp/mosh \ && gh pr checkout 1104 \ && ./autogen.sh \ && ./configure \ && make \ && sudo make install
Mac OS:
Creo que primero debe instalar las herramientas de línea de comandos Xcode / Developer de Apple (que, IIRC, ahora se puede hacer simplemente ejecutando
gcc
y saliendo), luego ejecutando:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" \ && brew install gh autoconf automake && mkdir -p ~/tmp/mosh \ && git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \ && cd ~/tmp/mosh \ && gh pr checkout 1104 \ && ./autogen.sh \ && ./configure \ && make \ && sudo make install
Con estas actualizaciones, ¡finalmente se ha logrado el santo grial del portapapeles!
Sin embargo, esta es información muy nueva, por lo que esta publicación mía es bastante volátil. Por lo tanto:
Por favor, revise mi publicación si:
gh pr checkout 1104
Ya no es necesario realizar uno de los cambios de Mike porque se ha fusionado en mosh, ofuente