Home

Awesome

Whats' this?

:rotating_light: This package provide keymaps only. surround feature itself is provided by vim-mode-plus itself.

Provides default surround keymaps for vim-mode-plus.

Provides following keymaps.

Unlike tpop's vim-surround. d s, c s auto-detect pair char to delete/change.
But this is not perfect, if fail, try manual version d S, c S.

ModeKeystrokeDescription
normaly ssurround e.g. y s i w (
normald sdelete-surround-any-pair. auto-detect surrounding char. e.g. d s
normald Sdelete-surround e.g. d s (
normalc schange-surround-any-pair. auto-detect surrounding char. e.g. c s {
normalc Schange-surround. auto-detect e.g. c s ( {
visualSsurround selected text. S (

Don't want to move cursor after surround operator?

From setting-view of vim-mode-plus, Check stayOnTransformString.

Explain behavior details in pseudo DSL


# Normal-mode
# -------------------------
# Set base text. cursor is `|`.

text = """
  pen pin|eapple
  apple pen
  """

# y s
# -------------------------
setText(text)
normal 'y s i w {',
  text: """
  pen {pineapple}
  apple pen
  """

# `y s s` surround current line
setText(text)
normal 'y s s {',
  text: """
  {pen pineapple}
  apple pen
  """

# d s
# -------------------------
text = """
  pen pineapple
  (apple {pe|n})
  """

# `d s` delete surrounding char by auto-detect
setText(text)
normal 'd s',
  desc: "auto detect `{`"
  text: """
  pen pineapple
  (apple pen)
  """

normal 'd s',
  desc: "auto detect `(`"
  text: """
  pen pineapple
  apple pen
  """

setText(text)
normal 'd S (',
  desc: "manually specify surrounding char"
  text: """
  pen pineapple
  apple {pen}
  """

# c s
# -------------------------
text = """
  pen pineapple
  (apple {pe|n})
  """
setText(text)

normal 'c s "',
  text: """
  pen pineapple
  (apple "pen")
  """
normal 'c s [',
  text: """
  pen pineapple
  (apple [pen])
  """

normal 'c S [ <',
  text: """
  pen pineapple
  (apple <pen>)
  """

normal 'c S ( {',
  text: """
  pen pineapple
  {apple <pen>}
  """

# Visual-mode selected-area is | to |
# -------------------------
text = """
  pen pi|neap|ple
  apple pen
  """
setText(text)

visual 'S {',
  text: """
  pen pi{neap}ple
  apple pen
  """