Moving notes in outline view

Hello,

When I view my file in Outline view, it is a long list with child notes in containers.

When I want to move a child note from the bottom of the list to a container at the top of the list, I need to drag it a ‘long way’.

Is there a way I can right-click on a note and choose the container to move the note?

Thank you

Open the destination container in a new tab.

Return to the previous tab and Cut (CMD-X) the note you wish to move.

Switch to the tab with the destination container.

Paste (CMD-V).

Alternatively, cut and paste within the same tab, but you’ll have to scroll, which is perhaps less onerous than dragging.

1 Like

In short No. An easy check is that if the option isn’t on the right-click (context) menu of a selected note, then there isn’t a right-click option: there are no hidden menu items. Also, whilst this might seem a trivial request with 4 containers, what if there ar 50 or 100 containers, now the list of target containers may scroll-off screen. But letting go of an approach that can’t work—at least, without a feature being added—there are some simple approaches.

[Edit: as noted below the View pane (note selected), pop-up menu has (in-same-container) option for move to first/last sibling and move up/down one sibling pace menu options]

Moving within the same container

Assumption: the container (normal or agent) is not sorted. This is because a sort will always report the item moved back to its correct, sorted, position.

Use a stamp:

Stamp name: “Move to first sibling”
Stamp code: $SiblingOrder=1;

Apply the stamp to the selected note and it moves to the first sibling position in the container (i.e. first listed child in outline view).

You can do the same to make a note the last sibling in the container:

Stamp name: “Move to last sibling”
Stamp code: $SiblingOrder = $SiblingOrder(lastSibling);

Moving to a different container

Edit the note’s $Container.

Consideration: normally a notes $Container is the $Name of its parent note. But if that $Name is not unique within the TBX, this moves the edited note into the first $Name match as sorted by target $OutlineOrder.

Happily, is $Container is set to a $Path as opposed to a $Name value, the note is routed to the correct container and the parent $Name is stored in container. So, unless you know your target container is a unique $Name in the TBX, you can substitute $Path in the steps below:

  • remember or copy the $Name of the target container
  • Open the Quickstamp Inspector (Stamps menu ▸ Quickstamp, or ⌘+2)
  • Use the Search box to set $Container’ as the quickstamp target attribute: type ‘Container’ in the box and select that value for the pop-up list of possible matches.
  • In the left-hand input box above the Apply button, type or paste in the $Name (or $Path is $Name is not unique) of the target container.
  • Click the Apply button.
  • Check the note has moved, and close the Inspector.

If desired use the stamps from the first solution above to move the migrated note to the first or last sibling position.

Navigate the outline via shortcuts

@dmrogers has already mentioned cut/paste as an even quicker option - see post above

But you can also ‘walk’ the note to the new location via shortcuts…

Shift+Tab (⇧+⇥) promotes the selected note(s) to next siblings(s) of the parent container, i.e. listing after it in the outline.

Cmd+up-arrow (⌘+↑) moves the selection up one sibling place at current level (but never past first sibling position. Likewise Cmd+down-arrow (⌘+↓) moves the selection down a sibling place at current level.

Tab (⇥) demotes the selection to last sibling position of the note or container preceding the selected note (i.e. above in outline view).

So, to move a note into a container 3 before the current container:

  • select the note
  • Shift+Tab (⇧+⇥)
  • Cmd+up-arrow (⌘+↑), Cmd+up-arrow (⌘+↑). The selection is now below/after (in Outline view) the target container.
  • Tab (⇥)
  • The selection is now the last sibling of the target container.

If the target container is at a different outline level to the starting container, you may need to use Shift+Tab (⇧+⇥) and Tab (⇥) more times to move u/down to the outline levels to get from source container to target container.


All these approaches use far less effort than the amount of words above might suggest. the detail is there to avoid you tripping on edge cases the first time around. The second time you use the methods, as the question implies this is a repeating need, it will be easy. :slight_smile:

4 Likes

Right-clicking will offer you a “Move to top” and “Move to bottom” (sic, I’m not at my computer) option. I usually start from there and then back-tab - tab my way to the destination nook.

If I can’t easily access that Container, I just add $Container to the DisplayedExpressions (edit: sorry, $DisplayedAttributes) and navigate from there - it’s super-fast and less error-prone than physically dragging/tabbing.

i’m peculiarly averse to cut-pasting simply because of concern I might Cut, then get distracted and forget to Paste somewhere.

2 Likes

Yet more, ways. Oops, I should have added the link to the right-click View pane (note selected), pop-up menu which would have reminded me that the move up/down or to first/last methods listed above are ‘hard-coded’ options at the top -of the menu.

But as noted above, the is another way around the $Container issue via editing the attribute as a Displayed Attribute. We could also have opened Get Info/attributes and edited $Container there.

Why so many ways? Which is right? They all are! We just tend to work in different ways. For instance once you are used to using Displayed Attributes and adding/removing them as needed, this is a neat way to edit attribute. some, especially those who are fast touch-typists might find shortcuts quicker (once memorised!) as hands can stay on the key.

1 Like

@dmrogers @mwra @archurhh Thank you!
I have tried all the methods that you kindly shared! Can use each of them in different context.

Indeed changing the $Container using Quickstamp is elegant.

Is there a way to have a keyboard short cut for stamp?

Thank you!

No, not in terms of configured within Tinderbox and you can set up custom shortcuts. I think this is the OS method here (not tried!). However, I think many using custom shortcuts often use 3rd party apps like Keyboard Maestro, etc.

@mwra Thank you for the tip.

The prototype note has a $Done attribute (Boolean).
When the task is completed, I now click it.

I have created a stamp (“Move to Completed”):

if($Done){
$Container="/Completed"
}

Then I check the ‘Done’ checkbox in all the notes where the task has been completed.

Then I trigger the stamp ‘Move to Completed’ with shift + CTRL + CMD + D (I set up the keyboard short-cut using KeyQue)

Thank you very much for all the great suggestions and guidance!

1 Like

Thanks for the feedback. It’s always useful to see how the general guidance gets translated into an actual working process.

1 Like

Try the free CustomShortcuts app.

2 Likes