Ora

How do you split a line on a comma in Sublime Text?

Published in Sublime Text Text Manipulation 4 mins read

To efficiently split a single line containing comma-separated values into multiple lines in Sublime Text, you can either use a dedicated plugin designed for this purpose or leverage the powerful built-in Find and Replace feature with regular expressions.

Using the Split Line Plugin (Recommended)

For a quick and automated solution, the Split Line Sublime Plugin is highly recommended. This plugin is specifically designed to split single-line arrays or comma-separated lists into multiple lines, making your code or data much more readable. While originally developed for Python, it works effectively with any comma-separated data.

1. Installation

First, you need to install the plugin via Package Control, Sublime Text's package manager.
If you don't have Package Control installed:

  • Open the Sublime Text console (View > Show Console or Ctrl+\`` /Cmd+``).
  • Paste the installation code from the Package Control website.
  • Restart Sublime Text.

Once Package Control is installed:

  • Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P).
  • Type Package Control: Install Package and press Enter.
  • Type Split Line and select the Split Line plugin from the list.
  • Press Enter to install it.

2. How to Use

After installation, using the Split Line plugin is straightforward:

  • Select the Line: Place your cursor anywhere on the comma-separated line you wish to split, or select the entire line.
  • Execute the Command:
    • Windows/Linux: Press Ctrl+Shift+\\
    • macOS: Press `Ctrl+Shift+`` (backtick key)
    • Context Menu: Right-click on the selected line, and choose the Split Line option from the context menu.

The plugin will then transform a line like item1, item2, item3, item4 into:

item1,
item2,
item3,
item4

This effectively places each comma-separated value on its own line, enhancing readability.

Manual Splitting with Find and Replace (Regex)

If you prefer not to install a plugin or need more fine-grained control over the splitting process, Sublime Text's regular expression-enabled Find and Replace feature is an excellent alternative.

1. Open Find and Replace

  • Press Ctrl+H (Windows/Linux) or Cmd+Option+F (macOS) to open the Find and Replace panel.

2. Configure for Regular Expressions

  • Click the .* icon (the regular expression button) in the Find and Replace panel to enable regex mode. It should turn dark to indicate it's active.

3. Enter Search and Replace Patterns

  • Find What: ,\s*
    • : Matches the literal comma.
    • \s*: Matches zero or more whitespace characters (spaces, tabs) immediately following the comma. This ensures that item1, item2 and item1,item2 are handled consistently.
  • Replace With: ,\n
    • : Keeps the comma at the end of the line.
    • \n: Inserts a newline character, moving the subsequent text to the next line.

4. Execute the Replacement

  • To replace one occurrence at a time: Click Find then Replace.
  • To replace all occurrences in the selected text: Select the line(s) you want to modify, then click Replace All.
  • To replace all occurrences in the entire file: Click Replace All without any selection.

Example Transformation:

Original line:
"apple", "banana", "cherry", "date"

Using Find: ,\s* and Replace: ,\n will result in:

"apple",
"banana",
"cherry",
"date"

Alternative Regex for Different Formatting

If you want to remove the comma before the newline (e.g., to create a list of items without trailing commas), you can modify the Replace With pattern:

  • Find What: ,\s*
  • Replace With: \n

This would transform:
"apple", "banana", "cherry"

Into:

"apple"
"banana"
"cherry"

For more details on Sublime Text's Find and Replace functionality, refer to the Sublime Text documentation.

Comparison of Methods

Feature Split Line Plugin Manual Find & Replace (Regex)
Ease of Use One keyboard shortcut or context menu click Requires opening panel, typing patterns, enabling regex
Speed Instant, especially for frequent use Quick once patterns are set, but more steps
Control Fixed output format (comma then newline) Highly customizable output (e.g., remove comma, add indentation)
Setup Requires initial plugin installation No extra installation needed
Versatility Optimized for comma-separated lists/arrays Can be used for any pattern-based splitting

Both methods offer effective ways to split lines on a comma in Sublime Text. The plugin provides a faster, more integrated experience for this specific task, while the regex method offers unparalleled flexibility for various text manipulation needs.