diff --git a/book/src/configuration.md b/book/src/configuration.md
index 5372b9f0..5eb94c4e 100644
--- a/book/src/configuration.md
+++ b/book/src/configuration.md
@@ -63,6 +63,7 @@ Statusline elements can be defined as follows:
 left = ["mode", "spinner"]
 center = ["file-name"]
 right = ["diagnostics", "selections", "position", "file-encoding", "file-line-ending", "file-type"]
+separator = "│"
 ```
 
 The following elements can be configured:
@@ -79,6 +80,7 @@ The following elements can be configured:
 | `selections` | The number of active selections |
 | `position` | The cursor position |
 | `position-percentage` | The cursor position as a percentage of the total number of lines |
+| `separator` | The string defined in `editor.statusline.separator` (defaults to `"│"`) |
 | `spacer` | Inserts a space between elements (multiple/contiguous spacers may be specified) |
 
 ### `[editor.lsp]` Section
diff --git a/book/src/themes.md b/book/src/themes.md
index ad8864b2..e03782db 100644
--- a/book/src/themes.md
+++ b/book/src/themes.md
@@ -224,6 +224,7 @@ These scopes are used for theming the editor interface.
 | `ui.statusline.normal`    | Statusline mode during normal mode ([only if `editor.color-modes` is enabled][editor-section]) |
 | `ui.statusline.insert`    | Statusline mode during insert mode ([only if `editor.color-modes` is enabled][editor-section]) |
 | `ui.statusline.select`    | Statusline mode during select mode ([only if `editor.color-modes` is enabled][editor-section]) |
+| `ui.statusline.separator` | Separator character in statusline              |
 | `ui.popup`                | Documentation popups (e.g space-k)             |
 | `ui.popup.info`           | Prompt for multiple key options                |
 | `ui.window`               | Border lines separating splits                 |
diff --git a/helix-term/src/ui/statusline.rs b/helix-term/src/ui/statusline.rs
index df6d4800..75e5dbd7 100644
--- a/helix-term/src/ui/statusline.rs
+++ b/helix-term/src/ui/statusline.rs
@@ -144,6 +144,7 @@ where
         helix_view::editor::StatusLineElement::Selections => render_selections,
         helix_view::editor::StatusLineElement::Position => render_position,
         helix_view::editor::StatusLineElement::PositionPercentage => render_position_percentage,
+        helix_view::editor::StatusLineElement::Separator => render_separator,
         helix_view::editor::StatusLineElement::Spacer => render_spacer,
     }
 }
@@ -353,6 +354,19 @@ where
     write(context, title, None);
 }
 
+fn render_separator<F>(context: &mut RenderContext, write: F)
+where
+    F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
+{
+    let sep = &context.editor.config().statusline.separator;
+
+    write(
+        context,
+        sep.to_string(),
+        Some(context.editor.theme.get("ui.statusline.separator")),
+    );
+}
+
 fn render_spacer<F>(context: &mut RenderContext, write: F)
 where
     F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs
index f99924cf..501c3069 100644
--- a/helix-view/src/editor.rs
+++ b/helix-view/src/editor.rs
@@ -203,6 +203,7 @@ pub struct StatusLineConfig {
     pub left: Vec<StatusLineElement>,
     pub center: Vec<StatusLineElement>,
     pub right: Vec<StatusLineElement>,
+    pub separator: String,
 }
 
 impl Default for StatusLineConfig {
@@ -213,6 +214,7 @@ impl Default for StatusLineConfig {
             left: vec![E::Mode, E::Spinner, E::FileName],
             center: vec![],
             right: vec![E::Diagnostics, E::Selections, E::Position, E::FileEncoding],
+            separator: String::from("│"),
         }
     }
 }
@@ -247,8 +249,12 @@ pub enum StatusLineElement {
     /// The cursor position
     Position,
 
+    /// The separator string
+    Separator,
+
     /// The cursor position as a percent of the total file
     PositionPercentage,
+
     /// A single space
     Spacer,
 }