Is there a command in Xcode 4.2 to swap two views in Assistant Editor mode from left to right and vice versa?
Asked Answered
M

5

40

I would like to quickly swap two views from one side to the other and wonder if there is a hotkey for this functionality?

Masturbation answered 27/11, 2011 at 17:59 Comment(3)
+1. FWIW, The current fastest way to get the file open in the assistant editor into the primary editor that I know of is to Right Click in Assistant Editor > Open in Primary Editor and the press <kbd>⌘</kbd>+<kbd>Return</kbd>. But yeah, a keyboard shortcut for the swap will be real handy.Unitive
This would be very helpful when setting the assistant editor to CallersEpochal
Finally found one that works (answer below). It requires you to navigate to the symbol (e.g. using emacs keyboard shortcuts). Once you're there, it's quite fast and easy.Epochal
R
30

Single Assistant Editor

This can be done in two steps. You can start with the cursor in either the Primary or the Assistant editor.

Step 1:

, - Open in Assistant / Primary Editor

It opens the current file (where the cursor is) in Primary Editor if you are in Assistant Editor and vice versa. You end up with two exact same files open.

Step 2:

^` - Move Focus to Next Editor (available since Xcode 8, in older version use J)

^ - Go Back (and open the result) in Primary / Assistant Editor

This opens the previous file of the other editor in the first one.

Idea: It might be even possible to assign a custom shortcut to it using the technique used in Xcode duplicate line. I have not gone so far.

Multiple Assistant Editors

If you are using multiple assistant editors, you can use graphical navigation chooser to choose the destination of each action. You can start in any editor and you can even swap the content of two assistant editors this way.

, - Open in... and choose the second editor
J - Move Focus to Editor... and choose the second editor (or use ^` multiple times)
^ - Go Back in... and choose the first editor

Rosanarosane answered 8/12, 2013 at 17:7 Comment(4)
To clarify, the 'current file' is defined by where your cursor is.Haemophiliac
If you also add Shift to this shortcut, you will be able to choose any editor as a destination (not just Primary editor).Precondition
Second half of swap can be made by pressing ^+++. (go back and open result in assistant editor)Precondition
@Marian. this works great. are you up for trying to get this working as a custom shortcut like duplicate line. I've been using duplicate line shortcut for years and its great so similar shortcut to swap editors would be useful. I'll give it a go myself but the not sure how to do the last bit where it brings up the window where you choose the final editor.Coast
I
15

There is a very easy way to do this. In the assistant editor, there is a bar at the top that shows the path of the file in the editor. Drag that file's icon into the same bar in the main editor.

Boom! swapped.

Keep in mind, that you need to be set up this way to pull this off:

  • Have the "Assistant Editor" selected
  • The Assistant Editor needs to be set to Automatic or "Counterparts" for the swap to work.

Here are the keyboard shortcuts to do the swap:

ctrl + command + up

or

ctrl + command + down

Impressure answered 18/10, 2012 at 17:37 Comment(5)
Could you please upload a screen shot? I could not follow your instruction.Bedel
Dragging the path doesn't do anything: just acts as if you'd clicked it and opens the list.Fricandeau
it works if you drag the icon of the file, but in this way it will open the file in both editors, not swap the two..Downstage
hariseldon78, if you have "assistant editor" selected AND set to automatic/counterparts, it will actually swap. If it's set to manual, it won't.Impressure
Not quite the answer to the question in a general contextAstra
P
9

You can open active document in any other editor by pressing

,


I would use it like this:

Suppose we have two editors E1 and E2

  1. Choose E1
  2. Press ,
  3. In graphical navigation chooser choose E2

    Original content of E1 now opened both in E1 and E2

  4. click the back arrow of E2 (or just press )
  5. In graphical navigation chooser choose E1

Congratulations, you've swapped content of two editors 🎉

You could press just instead of last two steps, because opens file in assistant editor.


P.S. Meaning of :
is resposible for graphical navigation chooser
is responsible for Go back

Precondition answered 20/1, 2016 at 16:38 Comment(0)
W
2

ctr + cmd + up

or

ctr + cmd + down

If you have assistant view open it will automatically open the counterpart file. This way if you switch back and forth in your main window your counterpart window will update with the header/implementation file.

Withershins answered 24/5, 2013 at 16:42 Comment(1)
This is good if you're using the Assistant with counterparts but doesn't work in the general case. Also your keyboard focus would have to already be on the Primary Editor.Epochal
E
1
  1. Position the cursor over the symbol you want to load (e.g. the method or class name)
  2. Command + Shift + O to load the quick open window (it will prepopulate with the item underneath the cursor)
  3. Shift + Option + Enter loads a UI that lets you choose a tab or editor
  4. It should select the primary editor by default, so just press Enter!

You can also use Command + Shift + Option + Click.

Epochal answered 12/6, 2013 at 2:14 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.