In addition to the usual Cut, Copy and Paste, Eddie has an entire array of extra clipboard features to serve the needs of heavy Copy/Paste editing. To start with, there are four independent clipboards available. Each of the first three clipboards has a clipboard button in the button bar.
The clipboard button indicates that a clipboard is full and can be used to quickly examine the contents of the clipboard. The first clipboard is shared with the rest of the system and uses familiar keyboard shortcuts as well as few new ones:
Command-X | Cut |
Command-Shift-X | Cut and append to clipboard |
Command-C | Copy |
Command-Shift-C | Copy and append to clipboard |
Command-V | Paste |
Control-V | Paste from history |
Command-Control-V | Swap paste |
Command-Option-V | Paste from stack |
Each Eddie clipboard supports a history stack. As you Copy individual bits of text, each get pushed onto the clipboard history. When you use Paste repeatedly, you will paste the same top clipboard item, as expected, just like from any other clipboard. The clipboard history stack is persistent across app launches.
Paste from history, Command-V, lets you use a clipboard item that you copied onto the clipboard earlier. It brings up a menu that lets you select the specific clipboard item. This offers several handy workflows. You may use it for a one-off repeated paste of an item that you copied earlier. You may also pre-load your clipboard stack by repeatedly selecting different text clippings and copying, for instance when you want to gather a bunch or snippets from one part of a file to reuse in another.
When you select/paste an item from the middle of the clipboard history stack, it also automatically pops up to the top of the stack.
Paste from stack, Command-Option-V, pastes the top clipboard item and removes it from the clipboard history stack, making the next entry available. This again allows for a workflow where you copy a bunch of items onto the stack in one part of a document, then paste them elsewhere. It is typically faster than selecting the individual items to paste from the Clipboard history menu at the expense of requiring that you plan your edit operation a bit more.
By clicking on the clipboard button, you can bring up the clipboard history stack as a pop-up window. Just like with the menu, you may click on individual items in the stack to paste them.
In addition you can also edit your history stack, deleting individual items, reordering them with drag&drop or adding more entries by dragging text clippings from elsewhere. You can tear off the pop-up window and place it next to your document.
Appending to existing clipboard contents can be useful when collecting several pieces of text that are to be inserted with a single paste. You can use Cut and append (Command-Shift-X) and Copy and append (Command-Shift-C) to do just that. When you use normal Cut or Copy functions, the previous contents of the clipboard is completely replaced with the new selected text. With the appending flavors of Copy and Cut the selected text gets appended to whatever is already in the clipboard. In the following text, you can select 111,
Copy (Command-C), then select 222, Copy and append (Command-Shift-C) and the clipboard will now contain 111222.
Swap paste pastes the contents of a clipboard into a selection while putting the old selection contents back onto the clipboard. Using Swap paste you can easily go from:
one two three
to:
three two one
First double click on one, Copy (Command-C), then double click on three, Swap paste (Command-Control-V) and then with three in the clipboard double click on one and Paste (Command-V).
Currently Eddie supports four independent clipboards. Each of the first three
clipboards is represented by a clipboard button in the button bar. The first
clipboard on the left is the main clipboard. The topmost element on the stack
of this clipboard is the standard Mac clipboard, shared among applications.
The second third and fourth clipboard have the following keyboard shortcuts
assigned:
Keypad 1 | Paste from second clipboard |
Keypad 2 | Paste from third clipboard |
Keypad 3 | Paste from fourth clipboard |
Command-Keypad 1 | Copy to second clipboard |
Command-Keypad 2 | Copy to third clipboard |
Command-Keypad 3 | Copy to fourth clipboard |
Option-Keypad 1 | Pop from second clipboard stack and Paste |
Option-Keypad 2 | Pop from third clipboard stack and Paste |
Option-Keypad 3 | Pop from fourth clipboard stack and Paste |
Command-Option-Keypad 1 | Copy and Push onto second clipboard stack |
Command-Option-Keypad 2 | Copy and Push onto third clipboard stack |
Command-Option-Keypad 3 | Copy and Push onto fourth clipboard stack |
The fourth clipboard does not have a corresponding button and you will probably
use it very rarely.
You may prefer to use mouse clicks to use the clipboard:
Click | Paste |
Option-Click | Pop from clipboard stack and Paste |
Command-Click | Copy |
Command-Option-Click | Copy and Push onto clipboard stack |
Control-Click | Make clipboard empty |
All of the four clipboards are persistent. The first clipboard is shared with the rest of the system, the remaining three are saved on quit and restored when Eddie is re-launched.
Unlike the main clipboard, the additional clipboards support smart behavior where symbolic values contained in the respective clipping gets evaluated at the time of the paste and replaced with the representative value. These symbolic values may include the current selection, contents of the main clipboard, the target file name, the current worksheet directory, etc.
$SELECTED_TEXT | Current selection |
$LINE_EXPANDED_SELECTED_TEXT | Expands current selection to entire lines and returns the selected text |
$SELECTED_LINE | Number of the currently selected line |
$CLIPBOARD | Main clipboard contents (top entry) |
$CLIPBOARD2 | Second clipboard top entry |
$CLIPBOARD2_2 | Second clipboard second entry |
$CLIPBOARD2_3 | Second clipboard third entry |
$CLIPBOARD2_4 | Second clipboard fourth entry |
$CLIPBOARD2_5 | Second clipboard fifth entry |
$CLIPBOARD3 | Third clipboard top entry |
$CLIPBOARD3_2 | Third clipboard second entry |
... | ... you get the idea |
$CLIPBOARD4_5 | Fourth clipboard fifth entry |
$REPLACE_PATTERN | Find replace pattern |
$REPLACE_PATTERN_2 | Second find replace pattern |
$REPLACE_PATTERN_3 | Third find replace pattern |
$REPLACE_PATTERN_4 | Fourth find replace pattern |
$DOCUMENT | Current document path |
$DOCUMENT_NAME | Current document name |
$DOCUMENT_DIR | Current document directory |
$TARGET | Current target path |
$TARGET_DIR | Current target directory |
$WORKSHEET_DIR | Current Worksheet directory |
$ACTIVE_SHELL_DIR | Directory of the active shell |
$SHELL_FOR_DOCUMENT_DIR | Directory of shell that matches document |
$WORKSHEET | Path of the Worksheet document |
$EDDIE_HOME | Parent directory of the Eddie app |
$EDDIE | Path of the Eddie App |
Symbolic values let you construct smart clipboard entries to simplify common editing operations. For example you could pre-configure your second clipboard with a set of smart entries for the different C++ casts:
static_cast<$CLIPBOARD*>($SELECTED_TEXT)
dynamic_cast<$CLIPBOARD*>($SELECTED_TEXT)
reinterpret_cast<$CLIPBOARD*>($SELECTED_TEXT)
const_cast<$CLIPBOARD*>($SELECTED_TEXT)
To cast a value to a type, select the type, Command-C to copy, then select the value and click one of the smart clipboard entries from your second clipboard.
... or a smart clipboard entry that can be used to wrap a selection into a set of pragmas (disabling deprecation warnings). Note that $LINE_EXPANDED_SELECTED_TEXT allows for the selection to be placed anywhere on the respective line(s) of code:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
$LINE_EXPANDED_SELECTED_TEXT
#pragma clang diagnostic pop
Note that unlike the main clipboard, selecting clipping entries from one of the secondary clipboards doesn't move that entry to the top of the clipboard stack, instead the entry stays in it's respective spot. This way the secondary clipboards in a more permanent, stable state, the way you configured them. You can still easily reorder the clipboard entries by dragging them around in the clipboard popover window.
Each of the top six clipboard entries in the secondary clipboards can be configured with a keyboard shortcut using one of the keyboard primitives. This way you can attach numeric keypad keys, function keys or any other keyboard shortcuts.
Paste |
⌘ V |
Paste the main clipboard into the selection |
PasteExtended1 |
Kp1 |
Paste the top of the first extended clipboard into the selection |
PasteExtended1_2 |
Paste second item from the first extended clipboard into the selection |
|
PasteExtended1_3 |
Paste third item from the first extended clipboard into the selection |
|
PasteExtended1_4 |
Paste fourth item from the first extended clipboard into the selection |
|
PasteExtended1_5 |
Paste fifth item from the first extended clipboard into the selection |
|
PasteExtended1_6 |
Paste sixth item from the first extended clipboard into the selection |
|
PasteExtended2 |
Kp2 |
Paste the top of the second extended clipboard into the selection |
PasteExtended2_2 |
Paste second item from the second extended clipboard into the selection |
|
PasteExtended2_3 |
Paste third item from the second extended clipboard into the selection |
|
PasteExtended2_4 |
Paste fourth item from the second extended clipboard into the selection |
|
PasteExtended2_5 |
Paste fifth item from the second extended clipboard into the selection |
|
PasteExtended2_6 |
Paste sixth item from the second extended clipboard into the selection |
|
PasteExtended3 |
Kp3 |
Paste the top of the third extended clipboard into the selection |
PasteExtended3_2 |
Paste second item from the third extended clipboard into the selection |
|
PasteExtended3_3 |
Paste third item from the third extended clipboard into the selection |
|
PasteExtended3_4 |
Paste fourth item from the third extended clipboard into the selection |
|
PasteExtended3_5 |
Paste fifth item from the third extended clipboard into the selection |
|
PasteExtended3_6 |
Paste sixth item from the third extended clipboard into the selection |