Make your own cheatsheet for bindings you need. This way you learn faster and optimize for your own needs. Tmux is exceptional mouseless, though personally I prefer combining with mouse.
With xclip, mouse and copy/paste can work over SSH-forwarded X-sessions with C-y and Enter from copy-mode-vi so:
# For older versions of tmux:
#setw -g mode-mouse on
#set -g mouse-resize-pane on
#set -g mouse-select-pane on
#set -g mouse-select-window on
# For newer versions of tmux:
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; #send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
set -g set-clipboard on
# With xclip
bind-key -n C-y run "tmux show-buffer | xclip -selection clipboard -i >/dev/null"
#bind-key -n C-y run-shell "tmux save-buffer - | xclip -i -selection clipboard >/dev/null"
# For tmux 2.4+
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel 'xclip -selection clipboard -i'
For Windows vcxsrv is the simplest and most fool-proof X-Windows server. Anything else on Windows may result in pain.
My preference is to reduce visual clutter in tmux by tweaking config and mostly just follow built-in bindings so workflow mostly works on standard tmux as well.
When clipboard fails between environments, sometimes multiple copy-ing, and then pasting into a text-editor helps (not a tmux issue, but clipboard-integrations).
"For Windows vcxsrv is the simplest and most fool-proof X-Windows server. Anything else on Windows may result in pain."
X servers on Windows are often a bigger cut/paste barrier than tmux. As you mention, vcxsrv seems to work better than other choices. Note there are some cut/paste/clipboard options you have to set.
I'm used to selecting only with Space, and confirming with Enter. C-b ] pastes.
This seems to be to the tmux's own clipboard. When you want to copy externally many lines, you can use C-b Z to zoom or use a lame workaround with text files opened in gedit or something. (It's a marginal use case in my experience, so I didn't bother to optimize.)
I haven't got my config to hand, but essentially I've binded leader-y and leader-p to copy and paste respectively both using the system clipboard. Since doing that tmux has been so much more useful to me.
This is the section of my config that sets up using the clipboard for tmux buffers. It won't work as is unless you're using both fish shell and Mac, but this should at least give you some good keywords to google and find documentation on how to do it for your system
You can achieve copy-pasting that isn't very different from a typical GUI without deviating too much from the defaults. If you use a sufficiently new version of tmux [1] and a terminal that supports it [2], you can just right click and drag your mouse to select and copy text into the clipboard. All you need to do is put the line 'set mouse on' in your configuration. If your terminal doesn't support this feature, you can do something like
to achieve the same thing. It also looks like you can configure copy commands to pipe to a command of your choice with the upcoming version of tmux without having to override keybindings [3].
[1]: >= 2.4, maybe?
[2]: Any terminal that supports OSC52 (e.g, iTerm2)
I use Emacs copy & paste, or readline. I don't do a lot of copy & paste between different windows though. Paste in works adequately (terminal stuffs it into keyboard buffer) but may need a reformat if the mode has autoindent, while I zoom the window (C-b z) and turn off line numbers to copy out.
If formatting is super important, I paste into a file with cat > file, and read the file into Emacs. I can do the same in reverse for a big copy out, and transfer the file.
I do these things because I often use Emacs in a ssh session instead of tramp, because I'm coming from a different OS or need to use modes with sidecar executables, e.g. enh-ruby-mode.
Tmux runs in a terminal; use `[` and `]` for my tmux buffer; and the terminals OS Copy/Paste integration when i need to get things in/out. Reading these threads I didn't realize the heartburn they felt with tmux.
For copying text I just hold down shift before click-selecting. Works fine. But if you need to select a long bit of text which scrolls beyond the screen then I use scp or rsync
shameless plug: I wrote a tool to copy text from tmux on remote host to local OS, this is often needed when you ssh into remote host, and want to copy large amount of text (e.g. more than one screen) to local OS