Skip to content

DifferencesFromPureVim

b1f6c1c4 edited this page May 22, 2020 · 8 revisions

How can I make vmp behave as close to pure-vim's default as possible?

Paste following setting to your config.cson.
See flight-manual for how to open your config.cson.

  "vim-mode-plus":
    useClipboardAsDefaultRegister: false
    updateRegisterOnChangeOrSubstitute: true
    clearMultipleCursorsOnEscapeInsertMode: true
    stayOnTransformString: false
    stayOnDelete: false
    stayOnYank: false
    stayOnSelectTextObject: false
    stayOnVerticalMotion: false
    incrementalSearch: false
    highlightSearch: false

Optionally, you can install a package no-evil-eol-newline so that the last empty line is hidden, just like in pure vim.

Config: vmp: stayOnTransformString, stayOnYank, stayOnDelete

These configurations are unique feature of vim-mode-plus and enabled by default.

  • vmp: Try to keep original cursor position as much as posible after operation(select, move, operate).
  • vim: Move to start position of target after operation(e.g. Cursor moved to start of paragraph after y i p)

If you don't like this incompatible behavior, set all false.

Config: vim: startofline, vmp: stayOnVerticalMotion( meaning inverted )

  • In vim startofline is true by default.
    • When true, move cursor to start of first character for specific commands.
    • When false, try to keep same column for specific commands.

The affected commands

  • vim: startofline affects following commands
    • ctrl-d, ctrl-u, ctrl-b, ctrl-f, G, H, M, L, gg, d, <<, >>
  • vmp: stayOnVerticalMotion affect motion command only.
    • Meaning inverted: !startofline === stayOnVerticalMotion stayOnVerticalMotion`
    • ctrl-d, ctrl-u, ctrl-b, ctrl-f, G, H, M, L, gg
    • So how to set for d, <<, >>?
      • For d: stayOnDelete config is available, setting false is equal to startofline=true.
      • For <<, >>: stayOnTransformString config is available, setting false is equal to startofline=true.

g ctrl-a, g ctrl-x in visual-mode (v_g_CTRL-A)

This command increment number within the selected text with count(default 1) step.

  • vmp: do not increment first number.
  • vim: increment first number.

So in the following text

1 1 1 1
  • vmp: V g ctrl-a make text to 1 2 3 4
  • vim: V g ctrl-a make text to 2 3 4 5

This difference is intentional breaking change.