code: def _split(self, split_cls, editor_buffer=None):
          
          if editor_buffer is None:
              editor_buffer = self.active_window.editor_buffer
  
          active_split = self._get_active_split()
          index = active_split.index(self.active_window)
          new_window = Window(editor_buffer)
  
          if isinstance(active_split, split_cls):
              # Add new window to active split.
              active_split.insert(index, new_window)
          else:
              # Split in the other direction.
              active_split[index] = split_cls([active_split[index], new_window])
  
          # Focus new window.
          self.active_window = new_window
docs: Split horizontal or vertical.
          (when editor_buffer is None, show the current buffer there as well.)