68

I was using Linux for the last couple of years and I find it extremely useful to copy text by highlighting it as well as to paste by clicking a middle mouse button.

I'm using a Mac now and I wonder if I can achieve such behaviour on Mac OS X.

  • 2
    I cannot believe OSX does not do this ... linux rocks in so many ways – Scott Stensland Apr 30 '17 at 1:53

10 Answers 10

18

I wrote a free little C program that does something similar to Gilligan's answer. Whenever you drag-highlight or double-click text, it copies to the clipboard buffer. Then you can middle-mouse-click in any window to paste it. It is called "macpaste" and on Github (https://github.com/lodestone/macpaste). It works globally for every program I use that has textual data.

In iTerm2, disable their middle-click in Preferences, otherwise you'll get double pastes.

  • This is AWESOME! So close. If it only had a separate buffer to hold the highlighted text separately from normally copied text it would be almost as close to Linux as possible. Nice job – Ryan Martin Jun 24 '16 at 20:27
  • This is exactly what I was looking for :-) Thank you so much for sharing! – José Alfredo Romero L. Jul 28 '16 at 13:22
  • 4
    This works, however it unfortunately messes up with chrome/firefox/safari/anybrowser middle-click-link to open in new tab. Any way to get around this? – lenooh Aug 17 '16 at 14:33
  • Doesn't compile for me - Undefined symbols for architecture x86_64 – Peter Ehrlich Jun 2 '17 at 18:45
  • Cool! I've added below in my .bashrc and it works fine (xterm is only where I miss it): case "$(ps -ef | grep macpaste | grep -v "grep" | wc -l)" in 0) ~/bin/macpaste/macpaste > /dev/null & ;; 1) # all ok ;; *) kill -9 $(pgrep macpaste) ~/bin/macpaste/macpaste > /dev/null & ;; esac The only one sad thing that I don't have middle button on my MM2 and don't want to setup that thirdparty stuff... Thanks @remik ! – Egor Jul 27 '17 at 3:28
14

You can try BetterTouchTool. You can assign custom trackpad, mouse, and keyboard events to trigger specific actions on a global or application-specific basis.

Here's my configuration to bind a three-finger tap to ⌘V (as this is the global paste shortcut. Alternatively you can select from dozens of other trackpad and mouse gestures to emulate the paste command.

enter image description here

  • 15
    FWIW this only solves the middle-click; I don't believe its possible to auto-copy highlighted text without an additional command. (Except for apps that specifically provide the feature, like iTerm2) – adamrmcd Nov 10 '11 at 19:00
  • 7
    And has anyone come up with a reasonable solution for that so far? I miss my select-wheelpaste SO MUCH!!! – Rubens Feb 27 '15 at 21:00
  • 4
    This is crazy that you cannot get this behavior in the built in terminal between windows....ahhh i miss linux. – DrCord Aug 4 '16 at 22:42
  • @Desphilboy The three comments above yours are primarily complaining about the lack of copy-on-select, which is not solved by your answer. – Kyle Strand Jul 11 at 21:35
  • Only can be done in a terminal and my answer is specific to terminals . @KyleStrand – Desphilboy Jul 19 at 2:52
6

The macOS terminal can do copy/paste with two separate buffers:

  1. The copy/paste buffer which is shared with all other applications. It can be accessed by CommandC/CommandV.
  2. A separate copy/past buffer which is shared only between (macOS) terminals. It can be filled (copy) by dragging over the text by mouse, double clicking, or ShiftCommand double-clicking for file names (no CommandV). The content of this buffer is pasted by the middle mouse button, by ShiftCommandV, or by Command + two-finger-click.
4

Create the following Automator service: enter image description here

Assign it a keystroke, like shiftcontrol] (something unlikely to conflict with anything). Then, use BetterTouchTool to assign that keystroke to the middle mouse button.

The middle shell script comes from this fine answer. The first shell script copies the selection to the clipboard, the middle script clicks the mouse at its current location, and the AppleScript sends a V to paste the contents of the clipboard

  • 1
    This allows copying while clicking on the middle mouse. OP wants to highlight to copy by highlighting and then paste with the middle mouse button – Ulysse BN Jan 26 '18 at 1:24
  • Is there a way to have both middle click to open new tabs in Chrome and this functionality? – William Oct 9 '18 at 19:33
2

After highlighting text in the Terminal, I can middle-click to paste it back into the Terminal without using the copy/paste keyboard shortcuts. This does not seem to work when the text comes from other applications ie. I can't copy text from TextEdit and then paste into Terminal with a middle-click. I am running Lion and I did not have configure anything to get this default behavior. I'm not sure about other versions of OS X.

1

I tried the Automator script suggested by Daniel. It did NOT work for me on OS X 10.10.

I was able to make BetterTouchTool (v 1.15), alone, work for some applications. Like this:

enter image description here

I did Left Mouse twice for several reasons. The first one usually only changes the focus to the new window, but does not position the cursor. Also, clicking in a text box usually selects all of the text, which is then deleted when something is pasted there. I usually want the original text to stay.

Gilligan

1

I don't think there is a way in general but some programs will accept the middle button as paste

e.g.

  • Aquamacs - an OSX configured emacs

  • iTerm2 - a replacement for Terminal

For newer mice/trackballs clicking the scroll wheel acts as a third button

  • 7
    scroll wheel = middle button (it is clickable on most of mouses nowadays). – installero Aug 13 '11 at 15:31
0

Select Text to be copied, then Drag and Drop your selection (White Plus sign in red circle will be displayed with the cursor). This will copy-paste the text.

You can Drag and Drop inside Terminal or between apps.

0

I would like to add that, if the problem is, as it was with me, that you couldn't get stuff that was highlit in an X-Quartz window onto the clipboard, the secret to that is to highlight, then XQuartz menu-> Edit -> Copy. That way, it is available for paste in every ordinary Mac OS app.

0

In majority of terminals you can drag and drop the highlighted text or alternatively you can use: Shift + ⌘ + v

It will act like in Linux pressing middle-mouse button ( is a copy and paste together)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .