Showing the same file in both columns of a Sublime Text window

Sublimetext3Sublimetext2SublimetextSublimetext4

Sublimetext3 Problem Overview


When I have 2 columns set in a Sublime Text window, can I display the same file in both columns?

Sublimetext3 Solutions


Solution 1 - Sublimetext3

EDIT

With the release of Sublime Text 4, there is now a feature called Split View that you can access a couple different ways. Via the menu system, you can simply use File -> Split View. You can also right-click on a tab and select Split View from the context menu. It automatically opens a new pane with a new view of the file currently selected.

You should be aware that unlike the new pane described below, the new Split View pane is temporary. This means that if you click on another tab or open a new file, the split view disappears. However, the new view into the file remains open as a separate tab, so to reopen the pane (or compare any open file(s)), select the tab you want on the left, then Ctrl-click (Command ⌘-click on macOS) on the other tab(s) you want to compare, and each one will be displayed in its own pane.

If want to have two (or more) "permanent" panes that will stay open regardless of which tab you click on, just follow the directions below.


Original Answer

(For Sublime Text 3)

Yes, you can. When a file is open, click on File -> New View Into File. You can then drag the new tab to the other pane and view the file twice.

There are several ways to create a new pane. As described in other answers, on Linux and Windows, you can use AltShift2 (Option ⌥Command ⌘2 on OS X), which corresponds to View → Layout → Columns: 2 in the menu. If you have the excellent Origami plugin installed, you can use View → Origami → Pane → Create → Right, or the CtrlK, Ctrl chord on Windows/Linux (replace Ctrl with on OS X).

Solution 2 - Sublimetext3

Its Shift + Alt + 2 to split into 2 screens. More options are found under the menu item View -> Layout.
Once the screen is split, you can open files using the shortcuts:

  1. Ctrl + P (From existing directories within sublime) or
  2. Ctrl + O(Browse directory)

Solution 3 - Sublimetext3

Inside sublime editor,Find the Tab named View,

View --> Layout --> "select your need"

Solution 4 - Sublimetext3

Here is a simple plugin to "open / close a splitter" into the current file, as found in other editors:

import sublime_plugin

class SplitPaneCommand(sublime_plugin.WindowCommand):
	def run(self):
		w = self.window
		if w.num_groups() == 1:
			w.run_command('set_layout', {
				'cols': [0.0, 1.0],
				'rows': [0.0, 0.33, 1.0],
				'cells': [[0, 0, 1, 1], [0, 1, 1, 2]]
			})
			w.focus_group(0)
			w.run_command('clone_file')
			w.run_command('move_to_group', {'group': 1})
			w.focus_group(1)
		else:
			w.focus_group(1)
			w.run_command('close')
			w.run_command('set_layout', {
				'cols': [0.0, 1.0],
				'rows': [0.0, 1.0],
				'cells': [[0, 0, 1, 1]]
			})

Save it as Packages/User/split_pane.py and bind it to some hotkey:

{"keys": ["f6"], "command": "split_pane"},

If you want to change to vertical split change with following

        "cols": [0.0, 0.46, 1.0],
        "rows": [0.0, 1.0],
        "cells": [[0, 0, 1, 1], [1, 0, 2, 1]]

Solution 5 - Sublimetext3

I regularly work on the same file in 2 different positions. I solved this in Sublime Text 3 using origami and chain with some additional config.

My workflow is Ctrl + k + 2 splits the view of the file in two (horizontal) panes with the lower one active. Use Ctrl + k + o to toggle between the panes. When done ensure the lower pane is the active and press Ctrl + F4 to close the duplicated view and the pane.

In sublime global settings (not origami settings!) add

"origami_auto_close_empty_panes": true,

Add the following shortcuts

  { "keys": ["ctrl+k", "2"], 
    "command": "chain", 
    "args": {
      "commands": [
        ["create_pane", {"direction": "down"}],
        ["clone_file_to_pane", {"direction": "down"}],
      ],
    }
  },

  { "keys": ["ctrl+k", "o"], "command": "focus_neighboring_group" },

Solution 6 - Sublimetext3

I would suggest you to use Origami. Its a great plugin for splitting the screen. For better information on keyboard short cuts install it and after restarting Sublime text open Preferences->Package Settings -> Origami -> Key Bindings - Default

For specific to your question I would suggest you to see the short cuts related to cloning of files in the above mentioned file.

Solution 7 - Sublimetext3

View -> Layout -> Choose one option or use shortcut

Layout        Shortcut

Single        Alt + Shift + 1
Columns: 2    Alt + Shift + 2
Columns: 3    Alt + Shift + 3
Columns: 4    Alt + Shift + 4
Rows: 2       Alt + Shift + 8
Rows: 3       Alt + Shift + 9
Grid: 4       Alt + Shift + 5

enter image description here

Solution 8 - Sublimetext3

It is possible to edit same file in Split mode. It is best explained in following youtube video.

https://www.youtube.com/watch?v=q2cMEeE1aOk

Solution 9 - Sublimetext3

Kinda little late but I tried to extend @Tobia's answer to set the layout "horizontal" or "vertical" driven by the command argument e.g.

{"keys": ["f6"], "command": "split_pane", "args": {"split_type": "vertical"} } 

Plugin code:

import sublime_plugin


class SplitPaneCommand(sublime_plugin.WindowCommand):
    def run(self, split_type):
        w = self.window
        if w.num_groups() == 1:
            if (split_type == "horizontal"):
                w.run_command('set_layout', {
                    'cols': [0.0, 1.0],
                    'rows': [0.0, 0.33, 1.0],
                    'cells': [[0, 0, 1, 1], [0, 1, 1, 2]]
                })
            elif (split_type == "vertical"):
                w.run_command('set_layout', {
                    "cols": [0.0, 0.46, 1.0],
                    "rows": [0.0, 1.0],
                    "cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
                })

            w.focus_group(0)
            w.run_command('clone_file')
            w.run_command('move_to_group', {'group': 1})
            w.focus_group(1)
        else:
            w.focus_group(1)
            w.run_command('close')
            w.run_command('set_layout', {
                'cols': [0.0, 1.0],
                'rows': [0.0, 1.0],
                'cells': [[0, 0, 1, 1]]
            })

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser2777473View Question on Stackoverflow
Solution 1 - Sublimetext3MattDMoView Answer on Stackoverflow
Solution 2 - Sublimetext3RamrajView Answer on Stackoverflow
Solution 3 - Sublimetext3sg28View Answer on Stackoverflow
Solution 4 - Sublimetext3TobiaView Answer on Stackoverflow
Solution 5 - Sublimetext3mrtnlrsnView Answer on Stackoverflow
Solution 6 - Sublimetext3gtmsinghView Answer on Stackoverflow
Solution 7 - Sublimetext3Mile MijatovićView Answer on Stackoverflow
Solution 8 - Sublimetext3Rahul VaradkarView Answer on Stackoverflow
Solution 9 - Sublimetext3VK.View Answer on Stackoverflow