- Fix: Attempt to user non-yet-supported register( such as
" 0 y) no longer throw exception.- This is regression introduced in v0.98.0. #844.
- Fix: Quickly switching active tab and back no longer re-start remaining flash animation #846.
- In previous version of vmp, You can see remaining flash re-triggered by(just an example)
y i psee yanked paragraph is flashed.cmd-shfit-](pane:show-next-item),cmd-shfit-](pane:show-previous-item) quickly.- When you come back to original editor, once fadeout-ed flash is re-started. But no longer from this version.
- In previous version of vmp, You can see remaining flash re-triggered by(just an example)
- Fix: Incorrect mouse selection when editor was soft-wrapped.
- Improve: Make conditional keymaps config's title and description more user friendly.
- New: Conditional keymap config
keymapYToYankToLastCharacterOfLine(defaultfalse).- By default
Ybehaves asy y. - This is not consistent with
CandDwhich behavesc $andd $. - By enabling this
Ybehaves asy $.
- By default
- New: Screen line based column motion commands
g 0,g ^andg $. Commands:move-to-beginning-of-screen-line( keymapg 0)move-to-first-character-of-screen-line( keymapg ^)move-to-last-character-of-screen-line( keymapg $) Config:allowMoveToOffScreenColumnOnScreenLineMotion( vim-mode-plus original, intentionally differentiate default behavior from pure-Vim ).- Affects how
g 0,g ^andg $find destination position. - When a line is wider than the screen width(no-wrapped line a)
true(default): move to off-screen column.false: move to on-screen(visible) column( = Vim default ).
- Behavioral difference appears only when
- Line is not wrapped.
- Destination column is off-screen(invisible because of the line is wider than screen width).
- for
g 0: column-0 is off-screentrue: move to column-0.false: move to first-visible-column.
- for
g ^: first-char-column is off-screentrue: move to first-char-column.false: move to first-visible-char-column.
- for
g $: last-char-column is off-screentrue: move to last-char-column.false: move to last-visible-char-column.
- for
- Improve: Now
r,f,F,t,Tandsurrounduse mini-editor to read user-input. #838- Benefit?
- Old: User cannot input non ascii char. It used keybinding to read user-input.
- New: User can input non ascii char and also can paste from clipboard(
cmd-v).
- Limitation
- When user set keymap like
f a, originalfcommand no longer work properly( You cannot usef b,f c, etc... ). - This is Atom's keymap system's limitation which cannot follow activeElement change when replaying keystroke on partial-match.
- When user set keymap like
- Still
m,`,'read char through keybinding intentionally. - These command use ascii char only.
- To allow user to set
mprefix keymap likem Xwithout breaking wholemfeature.
- Benefit?
- Fix: Clicking find-and-replace's project-find result view throw exception when
projectSearchResultsPaneSplitDirectionset tonone(default). #830.- Because, it opens matched entry on same pane and fire
mouseuponly(without preceedingmousedownevent) on newly opened editor. - Now vmp guard wired mouse-event by explicitly manage next expecting mouse-event.
- Because, it opens matched entry on same pane and fire
- Fix: When
startInInsertModewastrueclicking editor ininsert-modethrow exception but no longer. #830.
- Maintenance: Rewrite big amount of part from CoffeScript to JavaScript.
- Spec files are not re-written yet(and no plan at this point).
- Now files under lib/ directory are 29(JavaScript) vs 9(CoffeScript).
- Rewritten is done in following processare
-
- Translate by decaffeinate command provided by decaffeinate project(thanks!).
-
- Manual cleanup.
-
- Sorry If I create some regression.
- Improve: Hide mode-string in status-bar while non-editor-item become active item(e.g. settings-view).
- Breaking: Rename and change behavior of
vim-mode-plus:clear-persistent-selectiontovim-mode-plus:clear-persistent-selections.- How?
- Old: clear persistent selections for all editors in workspace.
- New: clear persistent selections for current active editor.
- Why I changed
- Old behavior is inconsistent with other similar command.
- I couldn't imagine practical scenario where old behavior shines.
- How?
- Improve:
maximize-pane#828, #829- New: Config option
centerPaneOnMaximizePane( defaulttrue). by @dcalhoun- Old behavior: Text in editor is always centered.
- New behavior: Text in editor is centered if
centerPaneOnMaximizePaneistrue.
- New: Command
vim-mode-plus:maximize-pane-without-center(default keymap:ctrl-w Z). - Confusing?
- If you never need centering effect, set
centerPaneOnMaximizePanetofalseand usevim-mode-plus:maximize-panecommand. - If you sometime want to centering, but sometime don't want centering
- Leave
centerPaneOnMaximizePanetotrue( default ) - Use
maximize-pane(cmd-enterorctrl-w z) andmaximize-pane-without-center(ctrl-w Z) command respectively."
- Leave
- If you never need centering effect, set
- New: Config option
- Internal, Dev, Breaking: Remove introspection report generating command, which was important in early phase of vmp, but no longer.
- Dev:
write-command-tableno longer throw exception on first use after restart. - Tweak: Change normal operator flash duration from 0.3s to 0.5s.
- Improve: Mouse #826
- Fix: click in
visual.blockwisemode no longer move cursor to first line of editor. - Now mouse action appropriately modify selection and enter
visual-modeif necessary.shift-clickclick(mousedown -> mouseup)drag(mousedown -> mousemove -> mouseup).- double click: Atom select clicked word, vmp update visual-mode.
- triple click: Atom select clicked row, vmp update visual-mode.
- Fix: click in
-
Improve: #819 TextObject function for
language-rustnow also works on Windows platform. -
Fix:
g q qnow work again.g w walso work now.
- Fix:
g q qnow work again.g w walso work now.
- New, Breaking: Operator
reflow-with-stay. #818reflow-with-stayisg qequivalent feature. but unlikeg q,g wkeep cursor at same position.- It auto-format each lines to fit with
editor.preferredLineLength. - Breaking: Existing command for
g qwasauto-flow, but renamed toreflowat this timing. - If you enabled,
stayOnTransformStringconfig,g qandg wbehave exactly same way.
- Improve: #819 TextObject function now work for both
language-rustandatom-language-rust.
- New: Pane manipulation commands
ctrl-w H,ctrl-w J,ctrl-w K,ctrl-w L.- These feature are merged from my
panerpackage. - Following keymaps are provided in
atom-workspacescope.ctrl-w ctrl-xorctrl-w x:vim-mode-plus:exchange-panectrl-w K:vim-mode-plus:move-pane-to-very-topctrl-w J:vim-mode-plus:move-pane-to-very-bottomctrl-w H:vim-mode-plus:move-pane-to-very-leftctrl-w L:vim-mode-plus:move-pane-to-very-right
- These feature are merged from my
- Fix: No longer throw exception when accessing unsupported register via
insert-mode'sctrl-r(insert-mode) #812. - Support: set minimum engines to
1.18.0.
- Improve: Improve Fold handling in several operations. #809.
y y,d dnow yank/delete whole fold.onow start insertion from next line of end-of-fold(OLD-ver was next line of start-of-fold).Von folded row select whole fold, soV ddelete multiple lines which was folded.- No longer show cursor at incorrect row when
Von folded row(long lived cosmetic issue now FIXED).
- No longer show cursor at incorrect row when
pon folded row paste next line of end-of-fold(OLD-ver was next line of start-of-fold).
- New: Add several Fold manipulation commands. #807
- Commands:
z c:fold-current-rowz C:fold-current-row-recursivelyz o:unfold-current-rowz O:unfold-current-row-recursivelyz a:toggle-foldz A:toggle-fold-recursively
- Previously
z c,z owas mapped to following Atom's native fold commands. But now replaced withvmp's one. - Why? for consistency, and vmp's one is multi-cursor aware, linewise selection aware(not manipulate next line of selected row).
z c:editor:fold-current-rowz o:editor:unfold-current-row
- Commands:
- Improve, Experimental: Hide, left/right dock when
maximized-pane. - Improve: Disable
maximized-panekeymap(cmd-enter) intree-viewscope. - Keymap, Breaking: Remove default
ctrl-vkeymap in search-mini-editor to avoid conflicts. #791- Previous version have following keymap(was experimental, you can recover this by set manually).
- scope:
atom-text-editor.vim-mode-plus-search - keystroke:
ctrl-vtovim-mode-plus:search-activate-literal-mode
- scope:
- Previous version have following keymap(was experimental, you can recover this by set manually).
- Fix: Protect from
pthrow exception in some uncertain situationp#802. - Fix: [Atom-v1.19-beta] Smooth scroll now work again.
- This issue is introduced by the big change in editor-rendering rewrite in v1.19.
- Fix: [Atom-v1.19-beta],
ctrl-yon first line of editor incorrectly mutate that row(do nothing is correct behavior) #808 - Fix: [Atom-v1.19-beta]
ctrl-y,ctrl-enow correctly use 2 lines offset. - Keymap: Make numpad0-9 behave same way as normal 0-9 key #806
- Improve?, Breaking: Remove angle-bracket(<,>) matching for
%motion. refs #700- Still work in progress to improve behavior.
- Spec: Fix spec failure in v1.19.0-beta.
- New:
countsupport forg tto activate Nth pane item(= tab).3 g tactivate 3rd pane item.7 g tactivate 7th pane item.g tjust activate next pane items as previous version.- When specified pane items was not exist, do nothing.
- Limitation: vim-mode-plus's command only works on normal text-editor.
- You can not do
g ton non editor pane Item such assetting-view.
- You can not do
- Fix: #766 executing
maximize-paneon single-pane workspace make screen blank.- This was happening only when pane have not yet split once after atom launch.
- Fix: #777
Jat last buffer row no longer clear text. - Doc: mention ex-mode link on README.md since it's now support vim-mode-plus.
- Improve: #782 Skip creating marker/decoration for empty range in hlsearch and incsearch.
- E.g.
- When user searched
()literally, it matches empty-range between each char. - In previous release, invisible hlsearch/incsearch marker/decoration was created.
- By skipping this empty range highlight, improve responsiveness when user repeat
norNfor that search.
- When user searched
- E.g.
- Fix: blockwise-selection was not cleared correctly in some situation(but I noticed via code review)
- Fix: #780 No longer throw exception when close editor in the middle of smooth scrolling.
- New: #770, #774 Add fold manipulation commands based on PR by @weihanglo.
- Commands: Put non-NEW commands here for thoroughness.
z a:toggle-fold, toggle( fold or unfold ) cursor's fold.( NEW )z r:unfold-next-indent-level, unfold deepest folded fold. support count.( NEW )z m:fold-next-indent-level, fold deepest unfolded fold. support count.( NEW )z M:fold-all, unfold all fold.( not NEW )z R:unfold-all, fold all fold.( not NEW )
- Setting:
maxFoldableIndentLevel( default20)- Folds which startRow exceeds this level are not folded on
zmandzM - e.g.
- If you have 3 folds in editor, each fold starts following indentLevel.
fold-a: 0fold-b: 1fold-c: 2
maxFoldableIndentLevel = 20:z Mfold allz mfoldfold-c,fold-b,fold-aon each time.
maxFoldableIndentLevel = 1:z Mfoldfold-az mfoldfold-b,fold-aon each time.
maxFoldableIndentLevel = 0:z Mfoldfold-aonly.z mfoldfold-a.
- If you have 3 folds in editor, each fold starts following indentLevel.
- Folds which startRow exceeds this level are not folded on
- Implementation is NOT exactly same as pure-Vim.
- Pure-vim: explicitly manage
foldlevelvalue andzm,zris done based onfoldlevelkept. - vmp: Does not manage
foldlevelexplicitly, instead it detect fold state from editor.- This approach gives better compatibility for Atom's native fold commands like
cmd-k cmd-1
- This approach gives better compatibility for Atom's native fold commands like
- Pure-vim: explicitly manage
- Commands: Put non-NEW commands here for thoroughness.
- Improve: Don't auto-load
vimState.highlightSearchwhen nothing to highlight. - Internal: #768 Support upcoming new decoration
type: 'cursor'for cursor visibility in visual-mode. - Internal: #763 add spec for ensure minimum required file on vmp startup.
- Improve, Performance: Reduce amount of IO( number of files to read ) on startup further. #760
- Avoid require on initial package activation. Especially following widely-used libs is not longer
required on startup.lib/selection-wrapper.coffeelib/utils.coffeeunderscore-plus
- Now
swrapandutilsare accessible via lazy-prop(vimState.utilsandvimState.swrap).
- Avoid require on initial package activation. Especially following widely-used libs is not longer
- Developer: When
debugsetting was set totrue, log lazy-require info when atominDevMode.
- Fix: For
searchon initial active-editor after startup,highlightSearchdid not happened.- This is regression introduced as part of lazy instantiation of
HighlightSearchManager.
- This is regression introduced as part of lazy instantiation of
- Fix: Sorry, removed leftover
console.login atom running in dev mode.
- Improve: Reduce activation time of vim-mode-plus to reduce your frustration on Atom startup. #758
- About 2x faster activation time( Full detail is on #758 ).
- With Two technique
- Define all vmp-command from pre-populated command-table and lazy-require necessary command file on execution.
- Defer instantiation of xxxManager referred by
vimState.- E.g.
vimState.highlightSearchis instance ofHighlightSearchManagerand it's now set on-demand.
- E.g.
- [For vmp developer only] If command signature was changed, need update command-table.
- Command signature it's name and scope(e.g.
vim-mode-plus:move-downandatom-text-editor) - [Caution]
write-command-table-on-diskcommand is available only when atom running in dev-mode. - [Caution] Directly update
lib/command-table.coffeeif populated-table was changed from loaded one.
- Command signature it's name and scope(e.g.
- New, Breaking: Default keymap update #753
- macOS user only
ctrl-smapped totransform-string-by-select-listinnormal-modeandvisual-mode
- All user
zinoperator-pendingis short hand ofa z(a-fold).- You can do
y zinstead ofy a z. E.g. When you yank foldable wholeifblock. - You can do
c zinstead ofc a z. E.g. When you change foldable wholeifblock.
- You can do
g rmapped toreverseg smapped tosortg cmapped toselect-latest-changewhich correspond tog v(select-previous-selection)g Cmapped tocamel-case
- What was broken?
Before:
g cwas forcamel-case,g Cwas forpascal-case. Now:g cis forselect-latest-change,g Cis forcamel-case. No defaultpascal-case.
- macOS user only
- New: Target alias for surround #751, #755
- Now
b,B,r,achar is aliased to corresponding target.bis alias for(or)Bis alias for{or}ris alias for[or]ais alias for<or>( I don't like this, just followed howsurround.vimis doing ).
- These alias can be used in
surround,delete-surround,change-surround.- When have these keymap:
surround(y s),delete-surround(d s),change-surround(c s)y s i w bis equals toy s i w (.y s i w Bis equals toy s i w {y s i w ris equals toy s i w [y s i w ais equals toy s i w <
- When have these keymap:
- Now
- New: InnerPair pre-targeted
rotatecommand- Commands:
rotate-arguments-of-inner-pairrotate-arguments-backwards-of-inner-pair
- No keymap by default.
- E.g.
- When you map
g >torotate-arguments-of-inner-pairandg <tobackwards - You can rotate arg of parenthesis by
g >and.if necessary,g <for backwards.
- When you map
- Commands:
- Internal: Cleanup
developer.coffeeand remove unused dev commands.
- New: Text-object for arguments
- Keymap:
i ,:inner-argumentsa ,:a-arguments,:inner-arguments( shorthand keymap available only in operator-pending-mode )
- Example:
c i ,( you can doc ,)d i ,( you can dod ,)d a ,v a ,
- From where this text-object find arguments?
- Auto-detect inner range of
(),[],{}pairs and parse argument and select. - When it failed to find inner-pair range, it fallbacks to current-line range.
- Auto-detect inner range of
- How to determine separator of arguments?
- Heuristically determine separator from comma
,or white-space.- When some separator contains comma, it treat comma as separator.
- When no separator contains comma, it treat white-space as separator.
- Heuristically determine separator from comma
- Keymap:
- New, Setting: #747 Conditional keymap setting
keymapPToPutWithAutoIndent.- When enabled,
p, andPpaste with-auto-indent for linewise paste. - Why I added this helper setting?
- You can set keymap by yourself in your
keymap.cson- But you need to be careful to not overwrite
pinoperator-pending-mode.
- But you need to be careful to not overwrite
- In
normal-mode,pis mapped toput. - In
operator-pending-mode,pis mapped toinner-paragraph, as shorthand ofi p. - When set
pkeymap in yourkeymap.csonwithout breaking predefined shorthandp. - You need to exclude
operator-pending-modescope like this.'atom-text-editor.vim-mode-plus:not(.insert-mode):not(.operator-pending-mode)': 'p': 'vim-mode-plus:put-after-with-auto-indent' - But I don't think I can expect normal user to do so. So
- You can set keymap by yourself in your
- When enabled,
- New:
rotate,rotate-backwardsoperator- No keymap by default.
- ChangeOrder family operator, which rotate line in
linewise, argument incharactewise.
- New: #748 ChangeOrder family( child ) operator now work differently for charactewise-target.
- Affects:
reverse,rotate,rotate-backwards,sort,sort-case-insensitively,sort-by-number - [Same]: When
linewisetarget, it change order of line. - [New]: When
characterwisetarget, it auto-detect arguments and change order of arguments within characterwise-range.
- Affects:
- New: Operator
split-argumentsandsplit-arguments-with-remove-separator- Commands:
split-arguments: split arguments into multiple-lines within specified target without removing separator.split-arguments-with-remove-separator: behave same assplit-argumentsbut it remove separator(sugh as,).
- Keymap
g ,tosplit-argumentsby default( aggressive decision ).- Pure-Vim's
g ,is "move to newer cursor position of change list", but vmp have nochangelistanyway.
- Pure-Vim's
- Commands:
- New: [Experimental] Added
inner-pairpre-targeted version ofsplit-argumentsandreverseto evaluate it's usefulness.- No keymap
- Commands:
split-arguments-of-inner-any-pairreverse-inner-any-pair
- Breaking: Remove
showCursorInVisualModesetting- Notify and ask confirmation for auto-remove from
config.csonif it set to non-default value.
- Notify and ask confirmation for auto-remove from
- Improve:
r enterto replace with new-line now correctly auto-indent inserted new-line. - Improve: When
surroundlinewse-target, now auto-indent surrounded lines more accurately than previous release.
- Doc: New wiki page
- DifferencesFromPureVim
- VmpUniqueKeymaps
- Keymaps: Normal keymap addition
- New: Now
subwordtext-object have default keymap, you can change subword byc i d.i d:inner-subworda d:a-subword
cmd-ais mapped toinner-entireinoperator-pendingandvisual-modefor macOS user.- So macOS user can use
cmd-aas shorthand ofi e(inner-entire). - E.g. Change all occurrence in text by
c o cmd-ainstead ofc o i e
- So macOS user can use
- New: Now
- Keymaps: Shorthand keymaps in
operator-pendingmode- Prerequisite
- In
operator-pending-mode, next command must betext-objectormotion - So all
operatorcommand inoperator-pending-modeis INVALID. - This mean, we can safely use operator command's keymap in
operator-pending-modeas shorthand keymap oftext-objectormotion. - But using these keymap for
motionis meaningless since motion is single-key, but text-object key is two keystroke(e.g.i w). - So I pre-defined short-hand keymap for text-object which was work for me.
- In
- What was defined?
cas shorthand ofinner-smart-word, butc cis not affected.- You can
yank wordbyy cinstead ofy i w. ( change byc cif you enabled it in setting ) - To make
c cworks forchange inner-smart-word, setkeymapCCToChangeInnerSmartWordtotrue(falseby default ) smart-wordis similar towordbut it's include-char.
- You can
Cas shorthand ofinner-whole-word- You can
yank whole-wordbyy Cinstead ofy i W. ( change byc C)
- You can
das shorthand ofinner-subword, butd dis not affected.- You can
yank subwordbyy dinstead ofy i d. ( change byc d)
- You can
pas shorthand ofinner-paragraph- You can
yank paragraphbyy pinstead ofy i p. ( change byc p)
- You can
- Prerequisite
- Keymaps: Conditional keymap enabled by setting.
- Prerequisite
- Added several configuration option which is 1-to-1 mapped to keymap.
- When set to
true, corresponding keymap is defined. - This is just as helper to define complex keymap via checkbox.
- For me, I enabled all of these setting and I want strongly recommend you to evaluate these setting at least once.
- These keymaps are picked from my local keymap which was realy work well for a log time.
- Here is new setting, all
falseby default. Effect(good and bad) of these keymap is explained in vmp's setting-view.keymapUnderscoreToReplaceWithRegisterkeymapCCToChangeInnerSmartWordkeymapSemicolonToInnerAnyPairInOperatorPendingModekeymapSemicolonToInnerAnyPairInVisualModekeymapBackslashToInnerCommentOrParagraphWhenToggleLineCommentsIsPending
- Prerequisite
- Breaking: Default setting change:
clearPersistentSelectionOnResetNormalMode:true(falsein previous version )clearHighlightSearchOnResetNormalMode:true(falsein previous version )highlightSearch:true(falsein previous version )useClipboardAsDefaultRegister:true(falsein previous version )
- New: #743, #739 New config option
dontUpdateRegisterOnChangeOrSubstitute( defaultfalse).- When set to
true, allc,s,C,Soperation no longer update register content. - If you want keep register content unchanged by
c i w, set this tofalse.
- When set to
- New: TextObject
comment-or-paragraphfor use of easy comment-in/out wheng /is pending. - Fix: For commands
set-register-name-to-*orset-register-name-to-_, now show hover and correctly setwith-registerCSS scope on editorElement. - Fix, Improve: #744 Make vmp work well with other atom-pkg or atom's native feature.
- Update selection prop on command dispatch of outer-vmp command
- Now correctly update cursor visibility and start
visual-modeaftercmd-ethencmd-g.
- Now correctly update cursor visibility and start
- Update selection prop if editor retake
focus.- Now correctly start
visual-modeaftercmd-fresult was confirmed byenter.
- Now correctly start
- Update selection prop on command dispatch of outer-vmp command
- Improve: Better integration with
demo-modepackage- Postpone destroying operator-flash while demo-mode's hover indicator is displayed.
- Improve: When undo/redoing occurrence operation, flash was suppressed when all occurrence start and end with same column, but now flashed.
- Improve: Improve containment check for
togggle-preset-occurrence- When cursor is at right column of non-word char(e.g. closing parenthesis
)), not longer misunderstand that cursor is on occurrence-marker.
- When cursor is at right column of non-word char(e.g. closing parenthesis
- Internal: #742 Rewrite
RegisterManager, reduced complex logic which make me really confuse.
- New: #732 Add integration with
demo-modepackage.demo-modeis new Atom package I've released recently, it was originally developed as part of vim-mode-plus.- When demo-mode is activated via
demo-mode:toggle, vmp do special integration to- Make operator flash duration longer than normal duration
- Demo-mode hover indicator show
keystorke,commandandkind(extra info added by vmp) on each keybinding dispatch.- kind is one of
operator,text-object,motion,misc-command
- kind is one of
- New: #722 New version of put command which paste content to suggested indent level with keeping pasting text layout.
- PR by @apazzolini
- Normal
p,Ppaste content as-is, so ignores desirable( or suggested ) indent level. - Following two command respect suggested indent level on linewise paste( no diff for characterwise paste ).
vim-mode-plus:put-before-with-auto-indent: Same asput-before(P) with respect suggested indent level.vim-mode-plus:put-after-with-auto-indent: Same asput-after(p) with respect suggested indent level.
- No keymaps provided by default
- Improve:
o,Oto adjust IndentLevel wheno,Ois executed from empty row #723- PR by @apazzolini
- To provider further pure-Vim compatible behavior.
- Improve: #727 Tweak incremental-search match highlight style to not hide covering text in some syntax-theme.
- Fix: #725 Now
v( orVorctrl-v) thenescape g vcorrectly re-select previously selected range. - Improve: #726 Relax selection-property assertion.
- Fix: #716 No longer throw error when confirming color via color-picker then
escape.
- Fix: #716 No longer throw error when confirming color via color-picker then
- New:
insert-at-start-of-subword-occurrenceandinsert-at-end-of-subword-occurrencecommand.- Start insert at start or end of
subwordoccurrence. - E.g
- When I map
{, and}to these command innormal-mode.{ f: start insert at each start of subword-occurrence within function.} f: start insert at each end of subword-occurrence within function.{ p: start insert at each start of subword-occurrence within paragraph.
- When I map
- Start insert at start or end of
- Internal, Breaking: Remove
did-restore-cursor-positionshook which was used in Operator code but no longer used. - Internal, Breaking: Remove many of simple accessor method like
getName,getOperator, now just use@name,@operatorto access these values. - Improve: Hide cursor on early select
- For
supportEarlySelect = trueoperator(surround,replace). - These operator began to shows cursor on early-select from Atom v1.15, but now hide again for early-select timing.
- For
- Internal, Dev: #719 No longer use
HTMLElementas search-input for speedy dev by hot-reload vmp. - Internal, Breaking: Move
InsertMode(was ininsert-mode.coffee) operations underMiscCommands( inmisc-commands.coffee) - Improve: Keep original multi-cursor on occurrence operation by migrating mutation info.
- Improve: Simplify mark manager and destroy all marker on
vimState.onDidDestroy. - Improve: Clean up mutationManager.
- Fix, Internal: Now do TYPE check for spec-helper's
ensurefunction's argument, some test was silently skipped in previous release.
- Fix, SUPER Critical: #175 Moving cursor in
visual-modemake Atom editor really slow.- vmp's mark is stored as marker and was created limitlessly without destroying previous-marker.
- As number of marker increased, editor get really slow.
- This is old Bug from original vim-mode, but impact get really significant from v0.58.0.
- Since from v0.58.0, to track previousSelection(used for
g v)<and>mark is updated on everyvisual-modemovement.
- Since from v0.58.0, to track previousSelection(used for
- Fix: When
stayOnYankwas enabled,y 0,y hno longer move cursor. - Fix: [Cosmetic but important] Fix very small cursor position jump( cosmetic ) when activating vL ( because of gap between px and em? )
- Fix: Respect
voperator-modifier fort( Till ) motion.- e.g. In text "ab" when cursor is at "a"
- Old:
d t bdelete "a"( Good ),d v t bdelete "a"( Bad ). - New:
d t bdelete "a"( Good ),d v t bdon't delete "a"( Good ).
- Old:
- e.g. In text "ab" when cursor is at "a"
- Improve: Now can select line ending new line char in
visual-mode.- E.g. Move right by
lat end of line select new-line.
- E.g. Move right by
- Fix: #699 Lost goalColumn in
visual.blockwisewhen move across blank-row.- This is regression in v0.84.0.
- Fix: #119 When
j,kis used as operator's target, don't apply operation when failed to move.- Now more compatible with pure Vim.
- Example:
d jfrom last line do nothing. ( In previous version, delete last line ).d kfrom first line do nothing. ( In previous version, delete first line ).
- Improve:
g vaftervL( visual-linewise ) to restore characterwisecolumn. - Fix:
v i p dthen.repeat from different cursor position now works correctly - Internal:
- Overhaul:
CursorStyleManager,SelectionWrapper,TextObject,BlockwiseSelection - Rename
characterwiseHeadtopropertyHeadinspec-helper.coffee - Remove lots of unnecessary
nullguard.
- Overhaul:
- Breaking: Remove
Alltext-obect, it's alias ofEntirebut not used. - Breaking: Remove
Edgetext-object, it's experimentally added in the past, but not maintained and not as useful as I originally thought. - Improve: TextObject
- Improve: No longer iterate
selectTextObjectover each memberSelection of blockwise selection( blockwiseSelection consists of multiple selection ). - Improve:
Fold,Functiontext-object now always expand if possible by checking containment against selected buffer range - Improve:
Pairtext-object now always find from cursor position. - Improve: Executing text-object from
vLmode now works as expected in most of text-object. - Internal: Set wise explicitly in most of text-obect rather than dynamically determine from selection range.
- Internal: Auto generate
Inner, orAprefixed classes andAllowForwardingsuffixed classes( reduced lots of boilerplate code ).
- Improve: No longer iterate
- Improve: visual-blockwise (
vB-mode )- #699 Fix: Now respect goalColumn in
vBwhen move across blank row byjork.- Regression introduced in v0.84.0.
- #704 Rewrite vB-mode related code.
- vB selection is normalized before selecting text-object.
- So no longer iterate
selectTextObjectover each memberSelection of blockwise selection.
- Improve: #438 when vB selection respect
goalColumn- Original goalColumn is respected as long as selection-head is right-most column.
- #699 Fix: Now respect goalColumn in
- Fix: To fix vim-mode-plus-move-selected-text degradation.
- Fix, Improve: #689 Occurrence was not worked for the word which include non-word char such as
$and@.- E.g.
$varin Perl, PHP. - This was because when finding occurrences, it searched by
\bword\bpattern. - But
\b\$var\bnever match$var, in this case find by\$var\bpattern from this release( auto relax\bboundary ).
- E.g.
- Improve: Preserve fold on
g v - Internal:
- Cleanup selection-wrapper code.
- Remove unused functions from
utils.coffee
- Support: set minimum engines to
^1.14.0 - Fix: When
owas executed invLmode, didn't correctly restore column on shift tovCornormal.- Now correctly restore
characterwisecolumn afteroinlinewisemode.
- Now correctly restore
- Improve:
g .correctly restore subword-occurrence-markerg .(vim-mode-plus:add-preset-occurrence-from-last-occurrence-pattern) is command to restore last cleared preset-occurrence.- It is useful when you mistakenly cleared it by
escapeand quickly recover last preset-occurrence marker. - Previously
preset-subword-occurrencewas not correctly restored byg ., but now fixed.
- Improve: Use faster
displayMarkerLayer::clear()for hlsearch, occurrence-manager, search-model etc. - Internal: add
devprefix for setting for dev-use. - Internal: Remove lots of unused function in
utils.coffee. - Internal: add
vimState::getConfigto access package settings.
- Fix:
move-to-previous-subwordstops boundary of white-space unnecessarily( upstream issue auto-fixed)- Spec to accommodating wrong behavior removed.
- Fix:
Bmoves to beginning of file when invoked from begging of line.- Introduced by upstream change in Atom v1.14.0( or v1.14.1?).
- Fix: No longer throw exception when
showHoverSearchCounteris enabled and editor was closed immediately after hover counter was shown.
- Fix:
p,Pin vB-mode no longer throw exception #672- This bug was introduced in v0.80.0.
- New: command
move-up-wrap,move-down-wrap,j,kwith line wrap( top-to-bottom/bottom-to-top ).- No keymap by default. intended to use from atom-narrow package(now I'm actively developping).
- Improve, Breaking: Remove
fallbackTabAndShiftTabInNormalMode- This was necessary since
tab,shift-tabwas mapped tomove-to-next-occurrenceandmove-to-previous-occurrence. - When
true, fallbacktab,shift-tabtoeditor:indentoreditor:outdent-selected-rowswhen nooccurrence-markerexist. - But now, these mapping is defined in
has-occurrencescope, which meansoccurrence-markerexists on editor. - So your
tab,shift-tabis no longer conflict if nooccurrence-markerexits.
- This was necessary since
-
Breaking: Disable
I,Aspecial keymap inhas-occurrencescope.- To avoid surprising user. Now behave as normal
IamndA. - To insert start/end of each occurrences, use
visual-modeselect thenIorA. - Or set keymap in your
keymap.csonto restore previous verison's keymap.'atom-text-editor.vim-mode-plus.has-occurrence:not(.insert-mode)': 'I': 'vim-mode-plus:insert-at-start-of-target' 'A': 'vim-mode-plus:insert-at-end-of-target'
- To avoid surprising user. Now behave as normal
-
Fix: No longer throw exception when specified register has no value(=text) on
p,Poperation. #656. -
Fix: Now
selectionproperties cleared on each normal-mode operation finish to avoid hover counter is shown at incorrect position. -
Developer: Spec helper
ensureModeno longer mutate passed array itself. -
Developer:
reload-packagescommand now reload depending packages in correct order.
- Fix: #653 Immediately close search-mini-editor when main editorElement was clicked to avoid stale decorations remains on editor.
- Fix: Move to next subword no longer throw error in some ending string pattern.
- Improve:
move-to-next-wordand it's child motion now skip white-space only row(compatible with pure-Vim).
- Fix: #647 Ensure clearing blockwise selection after
.repeating blockwise operation. - Fix: #537 When
persistent-selectionis exists,Iinvisual-blockwise, make selected range get wired. - Fix: In atom 1.14-beta, when
IncrementalSearchwas enabled,/throw exception #652 - Improve: #646 Improve
TagFinderto find enclosed range first - Internal: Extract normalization/denormalization of
linewise,characterwiseselection to selection-wrapper - Internal: Improve spec helper
- Introduce cursorScreen for spec-helper for explicitness
- Now
cursor:is bufferPosition-wise - #650
textCno longer ensure order of cursors appear
- New: TransformString Operator
sort-case-insensitivelyby @thancock20 #640 - Fix:
v *thennorNin different editor no longer throw error #641. - Improve: Pair text-object
- Internal: Use new
PairFinderclass to find pair range(extracted fromtext-object.coffee). - Improve: Bracket TextObject:
(, ),{, },[, ],<, >- Find range by considering syntax-scope. #644.
- Improve: Quote TextObject:
',"etc..- Simply find quote if cursor is NOT in quote char #173, #638
- If cursor is ON quote char consider inside/outside of double-quote #556, #642
- Internal: Use new
- Improve: Fold text-object(
i z,a z) no longer ignore fold on cursor's row. #636 - Internal: New
Base::scanForward,Base::scanBackwardand use it - Internal: Lots of internal code cleanup(
utils.coffee,text-object.coffeeetc.)
- New: Subword support #634
- Motion:
move-to-next-subword,move-to-previous-subword,move-to-end-of-subword' - TextObject:
a-subword,inner-subword(no keymaps by default) - OperatorModifier:
Oworks as likeo, exceptOworks for subword.(e.g.c O p) g O(toggle-preset-subword-occurrence) mark subword, subword-version ofg o.
- Motion:
- New: TransformString family operator
split-string-with-keeping-splitter,sort-by-number( no keymap ) - New
g q(auto-flow) operator,g q qorg q g qworks for current line #187- Implementation-wise, it just dispatch to core autoflow package. So might not be compatible with pure-Vim.
- Improve:
maximize-pane#633- Tweak: Now set
left-margin(20%) when maximized, so that code comes front of your eye. - Now hide statusbar.
- New: option
hideStatusBarOnMaximizePane(defaulttrue).
- Tweak: Now set
- Tweak: Support #627 earlySelect for operator
replace - Improve: Early settle insertion count for insertion operator(
ia) to avoid taking count for motion. - Fix: Now
v enterthen.repeated correctly create 1 column persistent #630 - Fix:
ctrl-v enter .no longer throw error #630 - Spec: Improve coverage for
TransformStringchildren(joinetc..) - Internal: Rewrite
ctrl-a,ctrl-x,g ctrl-a,g ctrl-x- Breaking: No longer beep when failed.
- Breaking, Cosmetic: Remove
showHoverOnOperatefeature #626- Reason:
- This is fancy feature added at very early phase of vim-mode-plus as experiment.
- But this feature getting in a way to improve, cleanup vim-mode-plus.
- Removed Configuration: Following parameters are removed, remove it manually from
config.csonif necessary.showHoverOnOperateshowHoverOnOperateIcon
- Reason:
- New: [Experimental]
surroundnow select target immediately then get user input.- Better UI feedback, to reduce
what-I-have-to-do-next,where-am-Isituation in complex keystroke operation. - When
change-surroundfail at first character, it immediately stop execution( No need to input useless next char ).
- Better UI feedback, to reduce
- Fix:
maximize-panenow work for many many split pane #623. - Improve: Hover performance is greatly improved #625
- Hover shown in
1 0 j," a y y,change-surroundis now responsive than before. - HoverElement is renamed to HoverManager(no longer HTMLELement).
- Hover shown in
- Improve:
undo/redoflashing humanization further. - Improve: Tweak search flashing to win over existing
highlight-search. - Internal: Cleanup occurrence-spec, avoid using
editor.elementfor mini-editor.
- New:
setCursorToStartOfChangeOnUndoRedoStrategy(defaultsmart) #620, #621 - New:
remove-leading-white-spaces( no defautl keymap ): work alwayslinewise. - New, Breaking:
replaceis now normal operator which enteroperator-pending-mode, oldreplacecommand was renamed.- OldName:
vim-mode-plus:replace( mapped fromr) - NewName:
vim-mode-plus:replace-character( mapped fromr)
- OldName:
- Fix:
mcommand was inappropriately repeatable by. - Fix: No longer throw exception for
V taborV shift-tab#619 - Improve: Respect operator specific
stayOnoption whenstayOnOccurrencewastrueand fail to selectoccurrence-marker. - Improve:
d o pmoves cursor to end of mutation as normald#611 - Improve:
undo/redo- Cursor placement on
undo/redofurther.oandOundo/redo is now behave same as pure-Vim.
- Flashing is further suppressed to be un-noisy. Also humanize new line(
\n) change flash to feel naturally.- Skip flash for leading white spaces change
- Skip flash when multiple range start and end with exactly same column(e.g.
toggle-line-comments).
- Cursor placement on
- Improve:
transform-smart-word-by-select-listnow respect precomposed target of each string transformer.- E.g.
SplitStringhave precomposed target( =MoveToRelativeLine), respect it oversmart-wordtarget.
- E.g.
- Internal: Remove manual checkpoint and change grouping management from normal operator as like before(was not necessary).
- Improve: More accurate cursor placement after undo/redo. #603
- IMPORTANT, new approach to restore cursor position after undo/redo.
- Previous release: Did manual-cursor-position-adjustment after undo/redo
- From this release: Create text-buffer's checkpoint at correct timing then restore on undo/redo.
- Checkpoint mechanism was being used for long time for
i,a,c, from this release used operator globally. - This shift is not completed, will continue gradual improvement.
- IMPORTANT, new approach to restore cursor position after undo/redo.
- Improve: Use different color on
flashOnUndoRedo#610- Single change: subtle color flash with duration
0.3s(singe delete-only change is no longer flashed). - Multi change add: green flash with duration
0.8s - Multi change delete: red flash with duration
0.8s
- Single change: subtle color flash with duration
- Improve:
p,P#615- Improve: Flash color differentiation on
p,P(use longer flash to make it obvious mutation boundary). - Breaking: Simplified linewise paste, when line have no ending newline, it add newline automatically
- Improve: Pasting characterwise register now place cursor at start of pasted text if text was not single-line-text.
- Improve: Flash color differentiation on
- Improve: Now Indent(
>), Outdent(<) indent/outdent count times invisual-mode#614 - Improve, Breaking: Improve
insert-at-start/end-of-smart-word, now no longer stop at whitespace boundary. #613- Breaking: Renamed command name(as same as previous release, no default-keymap)
insert-at-start-of-inner-smart-word->insert-at-start-of-smart-wordinsert-at-end-of-inner-smart-word->insert-at-end-of-smart-word
- Breaking: Renamed command name(as same as previous release, no default-keymap)
- FIX: Incorrectly used
occurrence-flashifoccurrence-markerexists but not selected by operation. - Breaking: Remove experimental
put-after-and-select,put-before-and-selectcommand #612 - Internal: When fail to select occurrence
did-select-occurrenceevent no longer fired(was fired in previous release). - Internal: Rename register type name from
charactertocharacterwisefor consistency.
- Fix:
CandDinvB(visual-block) mode was broken from v0.70.0. #602. - Fix:
d o tabthen.repeat no longer fail #598 - Improve: Simplify flash for undo/redo, red color is used for remove-only-change #601
- Improve, New: fallback for
tab,shift-tabinnormal-mode.- By default in
normal-mode,tabandshift-tabis mapped tomove-to-occurrenceandmove-to-previous-occurrence - When no occurrence-marker was exists on editor, it fallbacks to Atom's default
editor:indent,editor:outdent-selected-rows. - For user don't want this fallback, set
fallbackTabAndShiftTabInNormalModetofalse(defaulttrue).
- By default in
- New: Close empty search-mini-editor by
backspacefrom @gittyupagain. #567 - New, Breaking: Keep
occurrence-markerafter operation. #572- Improve: Destroy
occurrence-markerremains after invalidated. - Breaking: Operate on normal-target when fail to select
occurrence-marker. #578, #579 - Improve: Destroy
occurrence-markerin-sync if possible #592
- Improve: Destroy
- New: [experimental] Operator
add-blank-line-below,add-blank-line-above, No defaut keymap. #574 - New, Breaking:
I,Akeymap in operator-pending(d Iford ^,d Aford $). - New: Simplify
tab,shift-tab, #581, #594- Keymap, Breaking: Mapped in all mode except
insert-mode, opinionated decision.tab:move-to-next-occurrenceshift-tab:move-to-previous-occurrence
- New: Setting
flashOnMoveToOccurrence, defaultfalse. - Improve: Now correctly skips cleared or invalidated(=invisible)
occurrence-marker. #594 - Improve:
.repeat support formove-to-occurrencetargeted operation #591 - Improve: Spec coverage.
- Keymap, Breaking: Mapped in all mode except
- Fix: text-objects function now work properly in language-elixir syntax by @dillonkearns. #585
- Fix: To undo repeat-of-change need
utwice in v0.72.0. - Fix: When
has-occurrence,I,Awas incorrectly keymapped ininsert-mode. - Fix: Prevent Atom editor freezes by passing BIG count. #560, #596
- For Motion(
9999999j), TextObject:v9999999ipand Insert:9999999i
- For Motion(
- Improve: Flashing
- Use red flash color for delete operation #573
- Longer flash for undo/redo(by keyframe tweaking).
- Improve: Reduce chance to re-flash immediately split after undo by reducing duration(1sec to 500ms).
- Improve: Documentation, description
- Improve config description
- Add FAQ for
charactersToAddSpaceOnSurround - Mention
vim-mode-plus-keymaps-for-surroundkeymap only package in README.md.
- Internal, Breaking: [experimental] No longer directly call
Motion::select()from operator #595 - Internal: Spec improved
textCspec DSL which declare cursor position by|and!(last-cursor)- Rewrite several specs by improving granularity by checking cursor position(was not checked before)
- Allow
partialMatchTimeoutoptions for ensure and keystroke spec helper
- New: Command
add-preset-occurrence-from-last-occurrence-patterndefaultg .keymap. - New: Command
insert-at-start-of-occurrence,insert-at-end-of-occurrence - New: Config parameter
stayOnOccurrenceto specify stayOn behavior on occurrence-operation. #569. - New: unused and unnecessary indirection
- Improve: Efficiency improved for cursorStyleManager. Skip cursor style modification if it can,
- Improve, Breaking:
AngleBracketnow can work with multi-line #552- TextObject
Tagis no longer member ofAnyPair. Since its conflict withAngleBracket
- TextObject
- Improve, Fix: No longer unwanted remaining flash by
flashOnOperatesince now it's invalidate when touched. - Improve: Flash color is more stand-out when occurrence-operation #566
- Improve: For flashing undo/redo, no longer red/green color blended when whichever is contained other #562
- Improve: Place cursor more accurately for undo/redo when occurrence is involved.
- Improve: Respect last cursor position when multiple cursor is cleared by
escapeinnormal-mode. #557, #562 - Improve: When occurrence is involved in operation, respect original cursor position after operation finished. #557
- Improve: highlight when highlightSearch changed like on, off, on
- Fix:
toggle-preset-occurrenceshould not accept persistentSelection but it was in previous release. - Fix: highlightSearch no longer extend highlight marker on appending text on tail #555
- Internal: All vimState instances are managed by VimState class itself.
- Internal: New convention. Ensure
ActivateInsertModeand it's child call@selectTarget()before starting any mutation.
- New:
moveToFirstCharacterOnVerticalMotionoptions #550, #549- Default:
true, if you disable, column position is kept after these motion. - Similar to
startoflineoption in pure-Vim. - Affects following motion(Unlike pure-Vim,
d,< <,> >is not affected)G,g g,H,M,L,ctrl-f,ctrl-b,ctrl-d,ctrl-u
- For
d,< <,> >, usestayOnXXXoption if you want to keep column.
- Default:
- Improve: Don't close search mini-editor on
blurevent. (e.g. app-switch by cmd-tab) #539 - Internal:
Base::getCount()can take offset. - Internal Bug: Now properly detect duplicate class Name among operations.
- Internal: Rename
Misc.ScrolltoScrollWithoutChangingCursorPositionfor explicitness.
- New: Option
automaticallyEscapeInsertModeOnActivePaneItemChange#535 - New: Option
keepColumnOnSelectTextObjectto keep original column inv i petc. #541, #543 - Fix: Cursor no longer become out-of-screen when move upward in
vB#546 - Fix:
IandAshould work on occurrence when has-occurrence #488, #518 - Fix: select-occurrence in
vLdoes not correctly select occurrence(spec missed to catch) in previous release. - Improve: flash-UI feedback when
YinvCmode. - Improve: Cleanup and suppress flash for
rcommand - Improve: As general rule selection target can override pre-composed target #531
- e.g
transform-smart-word-by-select-listworks on selection if selection was not empty.
- e.g
- Improve: Persistent-selection treated as-if real-selection further #532, #534
- Improve: Tweak what syntax scope is treated as function for TextObject.Function
- Improve:
delete-lineis now available in all mode(visual mode only for default keymap) - Improve: Now pair text-object change mode to
vCregardless of current mode. #542- Remove internally used
TextObject::allowSubmodeChangeproperty
- Remove internally used
- Breaking: Remove experimental but un-used operators and text-objects.
- Operator
DeleteOccurrenceInAFunctionOrInnerParagraph,ChangeOccurrenceInAFunctionOrInnerParagraph,ChangeOccurrenceInAPersistentSelection - TextObject
UnionTextObject,AFunctionOrInnerParagraph,ACurrentSelectionAndAPersistentSelection,TextObjectFirstFound
- Operator
- Internal: Rename useMakerForStay to stayByMarker and no longer track marker unless needStay()
- Internal: Cleanup mutationManger #530
- Internal, Spec: New
textCset/ensure option, validate exclusive option. #528, #533
- New: Command
equalize-panes(ctrl-w =) by @mattaschmann - New, Breaking:
g Isupport, breaking because oldImapped command was renamed(harmless for most users).- Renamed because of naming-bug.
- Renamed old
insert-at-beginning-of-linetoinsert-at-first-character-of-line(mapped toI). - Then now
insert-at-beginning-of-lineis mapped tog I.
- New: vim-niceblock compatible behavior #488
- Now visual-mode's
I,Aworks differently depending onvC,vB,vLmodes. - See
YouDontKnowVimModePluspage on vmp's wiki for detail.
- Now visual-mode's
- New: [experimental]
search-occurrencemotion. #519- When you can see dotted-underlined-occurrence-marker,
tab,shift-tabcan be used as motion. - You can use
spaceto deselect occurrence-marker while moving next/prev ofoccurrence-marker. - [keymap]
tab:vim-mode-plus:search-occurrenceshift-tab:vim-mode-plus:search-occurrence-backwards
- When you can see dotted-underlined-occurrence-marker,
- Fix: When yank into named register for input-taking-motion(e.g
" a y f )), it fail to save to register. #520 - Improve: now
vimState.globalStateis resettable for all or specific field - Dev:
open-in-vimnow open buffer with at same cursor position. - Fix: Improve:
y i pnow move to start of paragraph after operator finished. #507 - Fix: Improve: Further compatible resulting cursor position after operator finished. #529
- Fix: Hover used to show count and register was not correctly positioned, really was bad degradation. #406
- Improve: No longer share inputUI across operation, as a result
vimState.inputbecome unavailable. #525. - New:
CinvCmode change whole-line #527
- New:
project-find-from-searchcommand which have being provided as separate package #508.cmd-enteris default keymap for macOS user.
- Fix: when
flashScreenOnSearchHasNoMatchwasfalse, throw error when search item was not found #510.
- Support: set minimum engines to
^1.13.0-beta1. - Fix: Remove use of
::shadow. #485 - Fix:
cmd-ddidn't startvisual-modesuffered by the side-effect of shadowDOM removal #490 - Experimental, Improve: Better flashing effect using keyframe CSS animation
- Breaking: Removed flashing duration config params.
- Now flashingDuration is fixed to 1 sec at maximum(duration until marker be destroyed)
- User can tweak by css within this duration. Refer
styles/vim-mode-plus.lessif you want.
- Fix: Scroll motion failed to put cursor at firstChar of screen line when it’s wrapped.
- Breaking: Remove cursor line flashing effect on smoothScrolling. #502
- UI: Modify style of search match to modern(??) style.
- Fix: No longer remove non-vmp-css-class from editorElement temporarily while waiting-user-input #497.
- Fix: Flash only one instance at a given moment when search
/,?,#,?. #494 - Fix: % motion now work again #493 by @mattaschmann
- Fix When both operation and target take user input, it didn't work correctly. #491
- New: Following motion commands by @bronson.
move-to-previous-end-of-word(g e)move-to-previous-end-of-whole-word(g E)
- New: Sugar command
set-register-name-to-*to use system-clipboard. #272 - Breaking: Rename
set-register-name-to-blackholetoset-register-name-to-_#478, #473, #482 - Breaking:
move-up-to-edgeandmove-down-to-edgeno longer move to first-line and last-line if it's not stoppable.- This means, eliminated special handling for first-line and last-line. Just behave same as other line. #481
- Doc: Fix typo and grammar for README.md by @jimt #483.
- Improve: Incremental-search
/ enterand? enter(confirm with blank imput) repeat last-search #474, #464 - New: Update backtick(
`) and'mark on jump-motion #476, #384- So keystroke
` `and' 'jump back to previous position.
- So keystroke
- New: Support
'mark. - New:
set-register-name-to-blackholecommand(no default keymap) to make blackhole-register(_) easy-to-use #478, #473
- Fix: cursor-style-manager no longer throw error when executing
find-and-replace:select-nextin wholeline selection. #406 - Fix: No longer destroy first cursor after incremental-search is executeded with multi-cursors #461
- Fix: In visual-blockwise, unnecessary add selection in bottom direction when bottom selection start at column 0 #454
- Fix:
e(move-to-end-of-word) on blank row at the end of file freezes Atom #469
- New: Config option
statusBarModeStringStyle(defaultshort) #451 - New, Improve: Repeate(
.) command now can repeatinsert-mode's delete/backspace operation #322
- Improve: Improve performance for
f,F,t,T, Surround #448, #435.
- Doc: Simplify README.md
- New: Sentence motion by @bronson
move-to-next-sentence: default keymap)move-to-previous-sentence: default keymap(move-to-next-sentence-skip-blank-row: no default keymapmove-to-previous-sentence-skip-blank-row: no default keymap
- New: tab to space, space to tab conversion operator by @zhaocai #432, #433
convert-to-soft-tab: no default keymapconvert-to-hard-tab: no default keymap
- Improve: No longer actually select to display target range for
change-surround-any-pair, so cursor position is not changed when canceled. - Breaking, Improve: Use shorter, minimum length mode indcator string on status-bar #428.
- Improve: More pure-vim-like behavior for
#and#. - Improve: Cleanup search motion(
/,?). #440. - Breaking: Remove experimental motion and operator which was intended to replacement of
f,Fbut was not such useful.SearchCurrentLineSearchCurrentLineBackwardsInsertAtStartOfSearchCurrentLineInsertAtEndOfSearchCurrentLine
- Fix: Don't pass empty array to
editor.setSelectedBufferRanges, and collectly restore cursor when occurrence opeation was failed on.repeat.
- Fix:
;,,throw error if orignal-find-command-executed-editor was destoyed. #434
- Improve: Fix minor inconsistency for amount of rows to scroll between normal and visual for
ctrl-f, b, d, u. - New: Smooth scroll for
ctrl-f, b, d, u. Disabled by default. New config option to enable and tweak animation duration. - New, Experimental: TextObject
a-edgeandinner-edge(no diff for now), which select from up-edge to down-edge. No keymap by default.
- Breaking:
j,know always works as bufferRow-wise(screenRow-wise in previous version).- Previous
j,kbehavior is available asg k,g jas like pure Vim.
- Previous
- New: Operator
InsertAtStartOfInnerSmartWord,InsertAtEndOfInnerSmartWordno keymap by default #424 - Fix:
p,Pmutation tracked again(was not tracked by degradation) toselect-latest-changes#426 - Fix:
frepeat by;,,clear existing selection where it should extend selection #425 - Improve:
g nandg Nworks more pure-vim-like. - Internal: Cleanup cursor position normalization required in
visual-mode.
- Improve:
delete-surround,change-surroundno longer trim spaces when open-pair-char and close-pair-char was same(e.g'text',"text").
- Fix, Degradation: Again guard in case mutation information was unavailable when tracking changes.
- Internal, Improve:
,and;is no longer instance of operator to avoid complexity. - Fix: Throwing error in
V Dkeystroke. #416, #417.
- Fix: Guard in case mutation information was unavailable when tracking changes.
- Improve: Clear multiple-selection when
create-persistent-selection#414 - Keymap: Remove
cmd-dinhas-persistent-selectionscope to work well with defaultcmd-d#413 - Keymap: Add
[,]tovim-mode-plus:move-up-to-edge,vim-mode-plus:move-down-to-edge#412
- New:
preset-occurrence#395, #396- Allow user to set occurrence BEFORE operator.
- Keymap: In
normal,visual,g ototoggle-preset-occurrence.- It add/remove
preset-occurrenceat cursor position. - When removing, it remove one by one, not all.
- It add/remove
- Keymap: In incsearch input,
cmd-otoadd-occurrence-pattern-from-search- It add
preset-occurrenceby search-pattern.
- It add
- Following two operation do the same thing, but former is
operator-modifier, later ispreset-occurrence(g o).c o $: change cursor-word till end-of-line.g o c $: change cursor-word till end-of-line.
- New: PersistentSelection: (former RangeMarker)
- Allow user to set target BEFORE operator.
- Used as implicit target of operator. As like selection in
visual-modeis used as implicit target. - Config:
autoSelectPersistentSelectionOnOperate(default=true) control to disable implicit targeting. - Updated style to seem like selection.
- Keymap: In
visual,entertocreate-persistent-selection. - If you map
c stochange-surround, I recommend you to disable it including other keymap starting withc. - Following two operation do the same thing, but former target is normal selection, later target is
persistent-selection.V j j c: change two three line.V j j enter c: change three line.
- Common use case is
- Work on multiple target without using mouse: set multiple target by
persistent-selectionthen mutate. - Narrow target range to include particular set of
occurrence.
- Work on multiple target without using mouse: set multiple target by
- New: Highlight occurrence when occurrence modifier(
o) is typed. #377 - API Breaking, Improve: globalState is no longer simple object, use
get,setmethod instead. Now observable it's change. - Breaking, Improve: When
H, andLmotion is used as target of operator, ignore scrolloff to mutate till visible-top or bottom row. - Breaking:
clearMultipleCursorsOnEscapeInsertModeis now defaultfalse, this was changed in v0.57.0, but now reverted. #376 - Fix: PreviousSelection(
g v) was incorrectly shared across editor. - Fix: No longer use
@syntax-result-marker-colorinstead use@syntax-text-color. - Improve: Gradual clearing different kind of marker(persistent-selection, occur, hlsearch).
- Improve, Fix:
stayOnDeleteis now work properly on every situation. - Improve: Use marker to track original cursor position to stay. #380
- Improve: When
stayOnOperatefamily feature are enabled, adjust cursor position to not exceeds end of mutation #380 - Improve: Crean up OperationStack. #400
- Improve: Many TextObject now follow new convention(return range of text-object by
getRange()). - Improve:
wordtext-object family to select more vim-like range(don't select adjoining non-word-char like Atom's defaultselection.selectWord()). - Internal: Debug codes and cleanup
- Internal:
OperationStack::subscribenow return subscribed handler. - Internal: Split out highlightSearch concerning code as HighlightSearchManager class #398
- Internal: Split out mutation concerning code in operator as MutationTracker class
- Internal: Split out rangeMaker concerning code as PersistentSelectionManager class
- New: VisibleArea text-object. keymap
i v. - New:
UnionTextObjectandAFunctionOrInnerPair - Rename: Operator
replacetoreplace-and-move-rightandreplaceis general replace operator.
- Fix:
a-wordanda-whole-wordnow select leading white-space when trailing space was not exist #355 - Fix: Paste(
p) non-linewise text to empty line now insert text to same line, not next-line like previous version. #359. - New: When
omodifier is used inoperator-pending-mode,with-occurrencecss scope is set to provide keymap scope. - New: Now
Operator Pendingstatus is shown on status-bar. - Internal, Improve:
Operator.coffeeis split out into three files and overhauled greatly #370. - New: Stay preference support for
Delete, andStayOnDeleteconfig options control this behavior. - Breaking: Removed
SetCursorsToStartOfTarget,SetCursorsToStartOfRangeMarkersince not used. - Improve:
.repeat is no longer dependRepeatwrapper operation. Simply replayed recorded operation by operationStack. - Breaking, New:
clearMultipleCursorsOnEscapeInsertModeconfig option withtrueby default. - Breaking, Experimental, New: Default keymap only available in
omodifier is specified. #379- To change occur in
inner-paragraph: Can typec o p, instead ofc o i p - To change occur in
a-function: Can typec o f, instead ofc o a f - To change occur in
a-range-marker: Can typec o r, instead ofc o a r - To change occur in
inner-current-line: Can typec o l, instead ofc o i l - To change occur in
a-fold: Can typec o z, instead ofc o a z - Off course: you can do with operator other than
c. e.g.d o f,g U o z.
- To change occur in
- Breaking, Degradation, Improve: To fix stale selection properties, I disabled special support for outer-vmp command which create selection.
- When outer-vmp command create selection and enter
visual-mode, original cursor position is no longer preserved. e.g.cmd-l.
- When outer-vmp command create selection and enter
- New: Operator
insert-at-start-of-occurrence,insert-at-end-of-occurrenceto start insert at occurrence. - New: Operator
sort#365 - New: Motion
search-current-line,search-current-line-backwards#366 - Fix:
f,F,t,Twas broken, no longer focus input on repeat by;or,#367
- Internal: Avoid circular referencing for string transformers store.
- Doc: Update doc-string of many operator for better command report for vmp wiki.
- Breaking, Improve:
AddSelectionno longer get word from visual-mode #351 - New:
AllTextObject as alias ofEntire. #352 - Improve?, Breaking?: Change range-marker style as-if selection #357
- Improve, Rename: Cleanup operator-modifier mechanism. Renamed command #357
v:force-operator-characterwisetooperator-modifier-characterwiseV:force-operator-linewisetooperator-modifier-linewise
- New: Occurrence operator-modifier #357
oinoperator-pending-mode- As like
vorVmodifier force the wise of operator. omodifier re-select cursor-word from target range.- e.g.
g U o i pupper case all occurrence of cursor-word in paragraph - e.g.
c i pchange whole paragraph,c o i pchange occurrence of cursor word in paragraph.
- e.g.
- This modifier is available for all operator.
select-occurrence,map-surroundis created based on thisoccurrencemodifier.
- New: Narrowed selection state #357
is-narrowstate is automatically activated/deactivated whenvisual-modeand last selection is multi-line.- Available shortcut in
visual-mode.is-narrowscope.ctrl-cmd-c:change-occurrenceto change occurrence of cursor word in selection.cmd-d:select-occurrenceto select occurrence of cursor word in selection.
- New: RangeMarker new command.
toggle-range-marker: remove or add range-markertoggle-range-marker-on-inner-word:inner-wordpre-targeted versionconvert-range-marker-to-selection: add selection on all range-marker and remove range-marker after select.
- New: IncrementalSearch specific
/,?special feature #357- Direct command from search-input mini editor.
ctrl-cmd-c:change-occurrence-from-searchto change occurrence of search pattern matched.cmd-d:select-occurrence-from-searchto select occurrence of search pattern matched.- When above command is applied operator target is automatically set in following priority.
- In
visual-modeuse current selection as target. - If there is
range-markerthen use it as target. - None of above match, then enter operator-pending state to get target from user.
- In
- Direct command from search-input mini editor.
- Rename:
add-selectiontoselect-occurrence - Improve:
reset-normal-modeclear hlsearch and range-marker more thoughtfully. No longer clear in following situation.- Internal invocation of
vimState.resetNormalMode(). - When having multiple cursor.
- Internal invocation of
- Internal: Define
Base::initializeto be eliminate uncertainty of super call in child class. #361
- Breaking: Revert change introduced in 0.54.0(Was not good). insert-mode escape return to normal-mode regardless os autocomplet popup #339.
- Improve, Breaking: When autocomplete's popup is active,
escapeininsert-modeno longer escape insert-mode. #339 - New:
TrimStringoperator 'g |' for default keymap. #341 - Improve, Breaking: #342
TransformStringBySelectListno longer ask target first. Instead ask target last as in normal operator. - Internal: Let each operator register itself to select-list
- New, Experimental:
incrementalSearchVisitDirectionconfig option #343- Default
absolute, ifrelative,visit-next(tab) follows to search direction(/or?).
- Default
- Improve: Now user can invoke
add-selectionfromvisualmode #340. - New: Add default keymap
g cmd-dtovim-mode-plus:add-selection. - Improve, Breaking: Rename
RangeMarkerfamily operator, text-object to fix naming inconsistency. #346- Operator:
MarkRangetoCreateRangeMarker - TextObject:
MarkedRangetoRangeMarker
- Operator:
- Fix: In case vimState is not available(not sure why), cancel execution of operation. #347
- New: Add keymap to make
IandAis available in all visual submode(was available invisual-blockonly in previous version) #348
- Fix: Command is dispatched to different(incorrect) editor instead of editor which fired original event. #338
- Doc: Update links in README.md
- Improve: Suppress error when motion is pushed to operation stack when previous motion had not finished. #327
- Internal: Consolidate vmp specific error class. Avoid inappropriate class inheritance.
- Improve: Prevent unnecessary propagation of event for all vmp commands.
- Doc: Add ISSUE_TEMPLATE.md.
- New:
Yin visual-mode yank whole line #330. - Improve, Breaking:
SurroundandChangeSurroundtrim() white spaces of inner text before surround #331. by @ypresto - Improve:
ctrl-fno longer put cursor to EOF instead of vimEOF. - Improve: Accuracy improved for the position where hover shows up, so
ChangeSurroundAnyPairshows hover on original cursor position. - Improve: Notification warning when user enabled both vim-mode and vim-mode-plus #335.
- New:
groupChangesWhenLeavingInsertModesetting to control whether bundle changes or not when leaving insert-mode #323. When disabled, changes are not bundled and user can undo more granular level(smaller steps). Default istrue(same as pure Vim). - Mention
panerin helper packages section of README.md since revived!
- Fix: Deprecation warning introduced by new editor.displayLayer #319.
- Support: set minimum engines to 1.9.0 above.
- Fix: Invoking text-object command directly from insert-mode cause uncaught exception #318.
- Improve, Breaking: #314 Allow
move-up-to-edgeandmove-down-to-edgestops at first or last row even if it char was blank.
- Improve: New command
vim-mode-plus:force-operator-characterwise,vim-mode-plus:force-operator-linewiseto change original wise(linewise/charactewise) and toggle exclusiveness #313
- Fix: TextObject a-paragraph did not select trailing blank rows for one-line non-blank paragraph #309
- Breaking: Simplify TextObject comment. now
a /andi /works identically #311
- cosmetic change, my preference about parenthesis has changed.
- Improve: reversing selection by
oin visual-mode make reversed state sync to lastSelection in multi-selection situation. - Fix:
ctrl-f,ctrl-b,ctrl-d,ctrl-u. Just follow the way of vim-mode's fix. It was better than vmp's. - Doc: Make "disable vim-mode first" instruction standout since not small amount of user reporting issue by enabling both!
- Fix;
.repeat collectedly replay vB range. #261 - New: Support
activate-normal-mode-once command#281 suggested by @wangxiexe
- Fix:
ctrl-y,ctrl-e, throw error, and not worked properly, latent bug of vmp become obvious from Atom 1.9.0-beta0 - Improve: Now
3d2wdelete 6(3x2) words instead of 32 words in previous version. #289
- New: Improve % motion, support HTML Tag, and AngleBracket #285
- Fix:
Uncaught TypeError: history.getChangesSinceCheckpoint is not a function#288
- Fix: Don't throw error when
vrin empty buffer by avoiding odd state(=visual-mode but selection is empty) #282 - Improve: Refactoring
- New: Operator.PascalCase by @raroman, default keymap is
gC. pascase-case works likepascal-case to PascalCase. - Improve:
Din visual-mode should delete whole line #284
- Change Default:
setCursorToStartOfChangeOnUndoRedois now enabled by default. - Change Default:
flashOnUndoRedois now enabled by default. - Cleanup: Remove
pollyFillsToTextBufferHistorysince supported engine is already>=1.7.0. - Cleanup: Remove workaround for AutoIndent of single "\n" since v1.7.2 Atom-core includes this fix. #231
- New: CompactSpaces operator(
g spaceby default). To compacts multiple space to single space, not touch leading, trailing spaces #279.
- New: Add service
observeVimStates,onDidAddVimStateandvimState::onDidSetMark#276
- Breaking: Rename
split-charactertosplit-by-character. - Fix:
ctrl-y,ctrl-e. Just follow original vim-mode fix. #275
- Improve: Test spec now support more concise keystroke syntax and all spec rewritten to use new keystroke #270
- New: add experimental
startInInsertModeScopesconfiguration to selectively start ininsert-modefor specified scopes.
- Improve: Now selectAllInRangeMarker can pick word from visual selection.
- Improve: selectAllInRangeMarker can switch regex's word boundary option \b based if in visual-mode.
- New: Motion YankToLastCharacterOfLine for user who don't like default
Yinclude newline #265. - New: New setting option to suppress highlightSearch for certain scopes
- Improve: No longer use custom marker property since it's deprecated in v1.9.0 #242
- Improve: Use display-layer methods #242
- Improve: Use clipDirection instead of clip for screenPosition clipping #242
- Fix:
wnow can move to next line in CRLF file #267
- Improve: #259
*,#now pick search word under cursor in the same manner where selection.selectWord() pick word. - Breaking: #259 Remove hidden
vim-mode-plus.iskeywordconfiguration option. - Fix: Make
MoveToMarkexecutable from command-pallate #252, #254. - Improve: highlightSearch no longer extend highlight marker even when character inserted at intersecting tail.
- Improve: #262 Now
maximize-panecan maximize none-editor paneItem such as setting-view, markdown-preview. - Breaking: #262
maximize-paneis mapped fromctrl-w z(for all) andcmd-enter(for mac) by default. - New: #262 New config
hideTabBarOnMaximizePane(enabled by default). Disabling it keep tab-bar when maximized. - Fix: #258
fcommand occasionally throw error, so I simply revert to former code which use panel to attach hidden mini-editor.
- Fix: #258
f,Ffail after paneItem change then back to original paneItem.
- Fix: #252, #254 No longer use input mini editor for single char input for mark
- Internal: make command event accessible via vimState while running command
- Improve: If hide option is set on Input::focus() it don't add Panel
- Fix: #253 fix
rin vB
- Internal: Eliminate view/model separation for Hover and HoverElement.
- New:
SearchMatchForward(gn),SearchMatchBackward(gN) text-object. #241 - Fix: Don't clear maximized state when active item changed in same pane #244
- New: AddSelection operator #245
- Dev: add
npm run watch - New: Preserve
<,>mark for visual start and end. - New: PreviousSelection text-object vB still not supported #246
- New: MarkRange operator and MarkedRange text-object #249
- New: Config option to clear HighlightSearch and RangeMarker on
escapein normal-mode. #250 - Improve: Support
InsertAtStartOfSelectionfrom vC mode, no longer need to enter vB only for insert at start of selection. - Breaking: MoveTo(Previous/Next)FoldStart no longer linewise motion.
- New: General insertion operator
MotionByTarget - New Experimental new Operator
SetCursorsToStartOfTargetand MarkedRange precomposed version. - Internal: Do editorElement className update manually.
- Fix: Ignore
mouseupevent handling oninsertmode #240
- Internal: Gradually making motion into pure point calculator #225
- Improve: Operate on same range on
.repeat even ifstayOnTransformStringwas enabled #235 - New: MoveToColumn motion. Default keymap is
|. #230 - Improve:
dblclickcorrectly activate visual mode, simplify mouse event observer. #228 - Improve: Better integration with Atom's native commands(e.g
cmd-l) #239
- Fix:
gg,GGthrow error when destination row was blank line. #233 - Fix: Critical bug TextBuffer.history pollyfilled multiple times because of incorrect guard #229
- Support: set minimum engines to 1.7.0 above.
- Internal: Cleanup blockwise-selection.
- Internal: Now modeManager::activate take only true mode(no longer handle
reset,previousas former version). - Breaking: Rename
activate-previous-visual-modetoselect-previous-selection - Experiment: Trying to not depend on atom's Selection::selectWord. #225
- Experiment: Trying being independent from atom's imperative cursor motion. #225
- Breaking: #224 remove Move(Up|Down)ToNonBlank
- Fix: Don't move cursor up when inserting single white space at column 0 #226
- Fix: To support Atom v1.7.0, polyfill for TextBuffer::history.getChangesSinceCheckPoint #229
- Fix:
cc,Signore auto indent on Atom v1.7.0 #231
- Fix: Uncaught error on
y,gUetc.. invBwhenstayOnYank,stayOnOperatorenabled #221.
- Improve: Further coverage of
gvsupport. Not yet complete but much better. - Improve: Respect
stayOnYank,stanOnOperateonvisual-mode#221 - Fix:
TransformStringByExternalCommandthrow error onOperationStack::finishbecause of incorrect argument. - Fix: Correctly unfocus input mini editor when
SurroundAnyPaircan't find(detect) pair chars.. - Internal: Update charactewrise selection properties in
visual-modeselection modification by Motion, TextObject. - Improve: Don't flash in
visual-modeeven ifflashOnOperatehave enabled.
- Fix: Guard for calling
refreshHighlightSearchagainst destroyed editor #196 - Internal: Quit model, view separation for
InputandSearchInput - Rename:
misc-commands.coffeetomisc-command.coffee - Internal: move
scroll.coffeecode tomisc-command.coffee - New: add
SmartWordbased motions(MoveToNextSmartWord,MoveToPreviousSmartWord,MoveToEndOfSmartWord) - Fix:
goalColumnincorrectly reset onvLmode. #220 - Improve: keep
goalColumninvLtovC,vCton.
- Fix: No longer necessary to set
editor.useShadowDOMenabled to use vmp #218 - New: [Experimental] Set
yank-pending,delete-pendingscope for granular keymap setting #215.
- Improve: cleanup
operation-stack.coffee - Internal: New convention. use
Operator::mutateSelection - Improve: Reduce complexity for MoveToNextWord #200
- Internal: improve Base::countTimes pass isLast as 2nd arg
- Fix: For
$motion with count now correctly move to end of line of Nth line blow. - Improve: Now support all motion in
visual-blockwise#213 - Internal: Remove many visual-blockwise special code #213
- Internal: Each command class can answer its description.
- Internal: Generate summary table for all commands.
- Internal: Remove VisualBlockwise class #210.
- Improve:
con visual-blockwise now keep multi-cursors. - Fix: null guard in case Patch is not yet available for >=Atom v1.7.0-beta0
- Internal: Refactoring many parts(Search, MatchList, ModeManager, OperationStack) #200
- Improve: Support upcoming Atom 1.7+ text-buffer change #206, #203
- New: New Motion for alphaNumeric word family #207
- MoveToNextAlphanumericWord for
w - MoveToPreviousAlphanumericWord for
b - MoveToEndOfAlphanumericWord for
e
- MoveToNextAlphanumericWord for
- Fix: Tweak L(MoveToBottomOfScreen) motion don't cause scroll.
- Internal: Reuse Select, CurrentSelection instance, hope improve #162
- Internal: Introduce Sugar methods on Base.prototype for instanceof check
- Fix:
n,Nin different editor causeflashScreenis not function.
- Breaking: Remove scroll among search matched feature #201
- Breaking: Literal input mode in Search input field is now achieved by standard selector-specific keymap.
User who used this feature in older version need to update keymap selector to
atom-text-editor.vim-mode-plus-search:not(.literal-mode). See example in wiki/Keymap-example - Internal: cleanup
Search,SearchCurrentWord. - Fix: Use new pane split feature from Atom v1.6.0 #204
- Support: set minimum engines to 1.6.0 above #204
- Breaking: Remove semi-broken
disableInputMethodExceptInsertModesetting #205 - Fix:
oafterVjjthencmd-shift-ddisplay cursor incorrect position(cosmetic). #202
- Improve: #192 Keep original visible area as much as possible when scrolling by
n,N,/,?to avoid mental context switching - New: delete/change-any-pair-allow-forwarding. More powerful version of existing
change-surround-any-pairanddelete-surround-any-pair#194 - Improve: #195 keep code layout when
surround,delete-surround,change-surround. former implementation mechanicallytrim()white space of inner string.
- Fix: Inconsistency for changed area for
P,p. And respect original newline on EOF. - New:
PutAfterAndSelectandPutBeforeAndSelectto paste and select #184 - New: allow-forwarding text-object #188
- Spec: Improve test coverage for
%motion - Improve: Fix several minor bug for
%motion. - Improve: Fix several minor bug for pair text-object.
- Fix: Now
ccan enter insert mode even if target is empty. #189 - Fix: Don't treat double backslash \ as escape char in TextObject.Pair family #191
- New:
innerTagandaTagtext object. #84
- Fix: setHover error. Guard when
vimState::getBlockwiseSelections()is empty. - Fix:
ctrl-vthenjthrows error "Cannot read property 'getHead' of undefined" #179 - New:
SwapWithRegisteroperator to complementv_pandv_Pin pure Vim #180. keymap is disabled by default. - Internal: Greatly simplify cursor offset calculation by using
Point::traveralFrom() - Fix: visual-blockwise
j,kalways work bufferRow-wise and never past BOL and EOL #10. - New: new config options
ignoreCaseForSearch,ignoreCaseForSearchCurrentWord,useSmartcaseForSearchCurrentWord#181
- Fix: Quick fix for degradation for issue cursorDOM node is not exits #178
- New: Add space when surround if input char is in
charactersToAddSpaceOnSurround. #171 - Improve: Cancel search when tab was switched in the middle of searching.
- Internal: cmd keystroke support for spec helper
- Improve: Warn user when useShadowDOM disabled #177
- Fix: Prevent ReplaceModeBackspace is invoked except from replace-mode #175
- Fix: subscription leak for highlightSearch #158
- Improve: blockwiseSelection,
getHeight(),setSelectedBufferRanges(). - New:
vimState.getBlockwiseSelections() - Fix: Hover place was incorrect when visual-blockwise and its selection is reversed.
- Internal: Avoid mode change within visual-blockwise and remove dirty
operation.isProcessing()guard inmodeManager::restoreCharacterwise() - Fix:
MoveToFirstCharacterOfLineDownandUpshold work as buffer-positoin-wise. #166
- Fix: #161
gvnot re-select last selection after Yank in visual-mode. - Fix: #163 occasional
Uncaught TypeError: event.target.getModel is not a functionwhen executing vmp commands.
- Internal: cleanup blockwiseSelection.
- Fix: #158 When highlight cleared, it should not highlighted again on refreshing event(scroll, switch pane).
- Fix: #158 Maker default flash color transparent(fadeout 50%) to not hide overlapping text when text color is same as flash color.
- Fix: Bump up engines version to atom 1.4.0 above.
- Fix: In visual-linewise, position of hover indicator was incorrect.
- New: highlight last search pattern across all buffer. #158
highlightSearchconfig parameter to enable/disable.vim-mode-plus:toggle-highlight-search: to togglehighlightSearchconfig value.vim-mode-plus:clear-highlight-search: one-time clearing for highlightSearch. equivalent to:nohlsearchin pure Vim.
- Fix: Guard for case when editorElement.component is not available #98
- Fix: Search flash no longer flash multiple word simultaneously. #153
- Fix:
flashOnSearchconfiguration parameter was not checked on flash. - @crshd - Fix:
dw,dWdon't go beyond EOL on last movement in single transaction. #150 - Fix: Respect and observe
editor.lineHeightand refresh cursorStyle on change #154. - @crshd, @t9md - Internal: New dev-mode command
toggle-reload-packages-on-saveto reload vmp on buffer save. - Internal: New dev-mode command
reload-packagesto reload vmp and vmp plugins - Internal: Making vmp package hot reload-able to make development easier.
- New: Provide css id for status-bar container so that user can hide status information completely #152
- New: New options to disable Input Method(IME) except insert-mode #148.
- Improve: Full-support for multiple blockwise selections, each blockwise selections are kept in vimState.blockwiseSelections.
- Internal: Allow Operation specific command scope #147.
- Internal: New
swrawp::switchToLinewise()util to switch selection temporarily. - Internal: Now
countTime()is Base methods. - Internal: Remove
toggleClassByCondition()utils. Instead, use nativeclassList.toggle(). - Internal:
swrap::translate()function arguments was inconsistent with wrappingRange::translate()function.
- Breaking: Remove
move-line-up,move-line-down, it is externalized asmove-selected-textplugin package #145. - New:
Operator::execute()now can do asynchronous operation(can return instance of Promise). #146. - Internal: Consolidate
counter-manager.coffeinto vimState. - Improve: Several refactoring. spec-helper keystroke now support
waitsForFinishto wait operationFinish for asynchronous operation.
- Bug:
TransformStringBySelectListfail because of un-registeredSortNumericalmember left by development.
- Internal: Fix naming inconsistency
- New: Provide
getCommand,getStdin,getStdoutas hook forTranformStringByExternalCommand - Improve: Error handling for
TranformStringByExternalCommand. - New:
TransformString::getNewTextpass selection as 2nd args. - New: #143, suspend/unsuspend execution of operation to make async method involved operation repeatable.
- New: TranformStringByExternalCommand #140
- Doc: Update old wiki link in Readme
- Improve: Use more accessible displayName for
TransformStringBySelectList - Internal: No longer use short variable name like
cfor cursor,sfor selection . - Internal: Refactoring. extract restorePoint logic from Operator::eachSelection method.
- Internal: Provide wrapper function
Base.processOperation(),Base.cancelOperation()to controll operationStack. - New: #142 Support per selection clipboard for
Change,Delete,Yankoperation. - Fix: #141, For
Changeoperation, if target is TextObject, it auto-detect target's wise(linewise, characterwise)
- New: InsertByMotion can insert after move, and repeatable.
- New: Support insert count e.g
10iabc,10oabc. - Spec: #137 dot register, insertion count, insert-last-inserted
- New: TextObject.SmartWord which is just include dash(-) char into
\w - New: SurroundSmartWord is pre-targeting InnerSmartWord
- New: Operator EncodeUriComponent, DecodeUriComponent
- New: Operator TitleCase
- New: #139 support SelectList UI
- New: #138, #139 Operator TransformStringBySelectList transform string by choice
- Fix: Don't change submode from
characterwisetolinewiseautomatically #131. - Internal: new
TextObject::allowSubmodeChangeproperty control automatic submode shift from selected range. - New: Fix: As part of fix from Atom v1.4.0 change, Paragraph motion was completely rewritten, now more compatible behavior to pure Vim.
- New: Configuration parameter
flashOnOperateBlacklistallow disable flash for specific operation. - Improve: Now
move-to-blank,move-to-edgeworks correctly for hardTab language buffer like golang.
- Improve, New: TextObjet.Fold can expand when repeated!
- Improve: Spec for TextObject.Fold, Motion.MoveUpToEdge
- New:
insert-at-previous-fold-start,insert-at-next-fold-start - New:
move-to-position-by-scopeas parent class of every scope based motion. - New:
move-to-next-string,move-to-previous-string - New:
move-to-next-number,move-to-previous-number - Internal: Reporting command in dev-mode which report commands which have no default keymap.
- FIX: Disable strict check of non-empty selection in normal-mode at the timing of operation finished. #123.
- Fix:
Idoesn't go to first char if already there. #122.
- New: Misc.Maximize-pane command from my
panerpackage. - Fix: Selecting big text object(its range is not fit in one screen) lost cursor marker #109.
- Breaking: BracketMatchingMotion is completely rewritten and renamed to MoveToPair(move-to-pair).
- Internal: TextObject Pair improved(pre-split pairChars, provide more granular range info) #113.
- Improve: Improve error message in OperationStack throw error related to #114.
- Improve: TextObject.Pair don't select first line when its text is opening pair char only #111.
- Internal: New convention all TextObject must implement selectTextObject function.
- New: Move(Up|Down)ToEdge to moveUP/Down only edge row.
- New: MoveTo(Previous|Next)FoldStartWithSameIndent. to skip different indentation row.
- Internal: commands for speedup development.
- FIX:
e,Eshould skip blank line #117. - FIX:
w,Wmoved to endOfWord instead of beginningOfWord when cursor is trailing white space. - FIX:
dknot delete blank line if cursor is at blank row #118. - FIX:
j,kin visual-linewise should not expand folds, but was expanded #120. - Internal: Refactor
Motion::selectInclusive()now almost finished! - New: Base.commandPrefix class variable is used as command name prefix(for user's custom command use).
- New: Operator.Reverse to reverse selected lines.
- New: Motion move-(up|down)-to-non-blank to move up/down by skipping blank characters #101.
- New: Motion move-to-(previous|next)-fold-(start|end) to move around code folds #102
- FIX: TextObject Paragraph and its child class get called getRange with negative row number fix #99
- FIX: When last line have no newline("\n") char, cursor marker shown at incorrect place #100
- FIX: Select operator should not be repeatable, but was repeatable(that cause unexpected error).
- FIX: When
r(replace operator) in visual-blockwise mode causeSelection is not empty in normal-modeerror #104 - Internal: move ModeManager::replaceModeBackspace to Misc commands
- Internal: Service API no longer expose vim-mode-plus's subscriptions
- Internal: New
Base.reset()class method to reload all commands to speed up development process.
- Internal: cleanup cursor movement in
Motion::selectInclusive()#87 - Internal: remove flashManager class. move flashManager feature to utils.coffee.
- Internal: spec-helper mini DSL now can check characterwiseHead in
Vscenario. #90 - FIX: Stacktrace is not displayed for OperationStackError.
- FIX: When shift from visual-blockwise to other modes, cursor marker get odd. #71
- Breaking: remove
vim-mode-plus:set-count, and provide distinctvim-mode-plus:set-count-1and alike #63 - Improve: Accuracy improved for cursor movement in visual-linewise for
*,#,/,?commands. #91 - FIX: TextObject CurrentLine should work on bufferRow instead of screenRow #95
- FIX: goalColumn is not respected in visual-line
j,kon soft-wrapped line #96 - FIX: visual-linewise cursor marker is incorrect in soft-wrapped line. #97
- Internal: visual mode's cursor display functions are separated from vimState into cursorStyleManager #97
- FIX: #86 Repeating text-object targeted operation(e.g.
ciwthen.) incorrectly activate characterwise visual-mode. - FIX: Work around issue #85 issue vim-mode-plus with term2 package.
- NEW: support characterwise movement in visual-linewise mode #74, #83.
- FIX: When buffer is soft-wrapped and in visual-characterwise mode, moving selection put cursor on incorrect position #81
- FIX:
wrapLeftRightMotionparameter is not respected in visual-mode and soft-wrapped buffer's normal-mode. #82
- FIX: Critical degradation, when selection whole buffer with
cmd-a, exception thrown.
- Breaking: Surround take target before reading surround-char #75
- ex-1:
ysmapped tovim-mode-plus:surround- old:
ys(iw - new:
ysiw(
- old:
- ex-2:
msmapped tovim-mode-plus:map-surround- old:
ms(ip - new:
msip(
- old:
- ex-1:
- Breaking: Remove default keymap of surround like
gss,gsw,gsd,gsc. - FIX:
ggandGshould go to buffer line instead of screen line. - FIX: SelectLatestChange didn't correctly restore visual submode.
- FIX: Increment, Decrement didn't clear selection on finished.
- FIX:
v,escapeon empty-line put cursor one-line down in corner case #70 - FIX: degradation,
Gshould use bufferRow than screenRow. - Improve:
acheck cursor.isAtEndOfLine() for each cursor in multi-cursor. - Improve: When Surround target is linewise area, it insert line break char #78.
- Internal: Cleanup selection, cursor adjustment for consistent moveCursor behavior in both normal and visual mode #73.
- Internal: Remove debug feature for OperationStack #72
- Internal: Now throw error when selection is not empty in normal-mode at operation finished to strictly catch unexpected operation result.
- Internal:
dd,yy,gUgUlike sequential operation support now done in OperationStack. - Improve: Visual characterwise mode keep tailRange correctly when selection is indentation white spaces char. #79
- Internal: Separate big spec files into small topic based spec file.
- Further accuracy improve for cursor not past last newline #56.
- BUG: V, escape on empty-line put cursor one-line down than expected row #70
- Improve: Tweak default add/change color of undo/redo operation.
- FIX: Cursor visibility in
cmd-doperation. #55 - FIX: Cursor visibility in visual-line mode on last line of buffer.
- FIX: Change operator wasn't atomic(not in one transaction) in multi-cursor #57.
- FIX: SurroundWord operator eat extra whitespace. #58
- New: MapSurround operator to apply surround operation to each word in targeted area.
- New: ToggleFold misc command to toggle fold at cursor row. Default keymap is
za - FIX: F/T should be exclusive(exclude char under cursor) when used as operator's target but was inclusive. #62
- FIX: Add keymap
down,upin visual-block-mode #64 - Internal: Revival of once removed atom.commands.onDidDispatch observation to track selection change.
- Improve: Accuracy improve for behavior when setCursorToStartOfChangeOnUndoRedo is enabled.
- New: LatestChange text-object. Which area is defined between
[and]marker. - Breaking: Rename
vim-mode-plus:splittovim-mode-plus:split-stringto avoid confusion. - Don't allow cursor past last newline by vim-mode-plus's operation #56.
- New: provideVimModePlus service API now provide Base class and subscriptions.
- Internal: Remove dynamic derivation for (a, inner) TextObject for consistency.
- Doc: Most of sections are moved to vim-mode-plus Wiki and remove old documents.
- Improve: Change operator properly update change marker(
[,]) - Internal: Refine definition for what
isComplete()is. - New experiment: Split operator to split selected line by string entered.
- New experiment: Performance effective(in big buffer) version of move-line-up/down operator.
- Internal: Remove direct referencing to settings parameter in hover instance.
- Improve: hover can show input char even in oneChar input operator like Surround.
- Improve: hover sync text when multi-char input text is deleted for operator like ChangeSurround. #42
- New improve: [Experimental] Show cursor position in visual-linewise. #45
- Improve: Change won't enter insert-mode if target object is not found like in case
ci(failed. - Improve: All Pair text-object properly select text-object in case char under cursor is closing pair. #48
- FIX: Prevent vim-mode-plus's command become available in mini-editor. #50
- FIX:
p,Pinsert extra newline when line ending is CRLF #49. - FIX:
dd,dkremove extra line when its executed last line of buffer. #43
- Improve cursor position on Undo/Redo when setCursorToStartOfChangeOnUndoRedo is enabled.
- FIX: hover didn't cleared when
;was repeated without previous find. - Improve: Flasher.flash do simply flash removed callback args for simplicity.
- New: Introduce onDidSelect, onWillSelect, onDidOperationFinish internal event system.
- Improve: Now most of operation is child of TransformString class
- Breaking: deprecated parameter 'stayOnIndent', 'stayOnReplaceWithRegister', merged to 'stayOnTransformString'
- New: Introduce
g Jjoin-with-keeping-space commands - New: Introduce JoinByInput, JoinByInputWithKeepingSpace(default no keymap) [experimental]
- New: Option to put cursor start of change on Undo/Redo
- New: Option to flash on Undo/Redo(green: addded, red: removed) by option flashOnUndoRedo
- New: Support mark
[,]which is updated on yank and change. - New: select-latest-change command select range from mark
[,]) command(no keymap by default) - New: track change when insert-mode repeated.
- FIX: Paste fail when flashOnOperate was disabled. #38
- FIX: incorrect cursor position when escaped from visual-linewise
- Improve: operator.coffee is now more readable by power of @eachSelection abstracts final cursor position handling.
- New: stayOnReplaceWithRegister, stayOnYank, stayOnIndent to stay same cursor position after operation finished.
- Improve: InsertLastInserted is now accurate by refactoring ActivateInsertMode and its descendants.
- FIX: spec bug, revealed by validating spec-helper's mini-DSL options.
- Improve: Lots of test spec refactored.
- Improve: Refactoring TransactionBundler used in ActivateInsertMode.
- New: [Experimental] introduce increment/decrement operation
g ctrl-a,g ctrl-x. - FIX: incremental-search throw error: findFoldMarkers need explicit filter query object from Atom 1.3.0.
- New: [Experimental] new InsertLastInserted in insert-mode(ctrl-a in pure Vim).
- New: keymap
ctrl-hin replace-mode.
- Add spec for visual-blockwise to visual-characterwise shift
- New:
^mark which store last insert-mode position. - New:
gito start insert-mode from last-insert position(^mark). - New: when count is specified
with-countselecter is set on editorElement - New: when register is specified
with-registerselecter is set on editorElement - New:
N%motion N is count. In 100L buffer,50%move cursor to 50L. - New:
gvsupport all sumbmode(characterwise, linewise, blockwise). - New:
increase,decreasesupport in visual-mode which greatly extends usage of these commands. - Tweak: don't clear multi-selection when from char-2-block if only selection is single line, this allow
cmd-d,ctrl-v,I(orA) work.
- FIX: #31 RepeatSearch(
n) commands repeat last search regardless success or not. - No longer add commands per editorElement, commands are added on activate phase once.
- Now each operations(TextObject, Motion, Operator etc) can registerCommands().
- Base.init() do all necessary initialization.
- Improve BlockwiseSelect when softwrapped.
- Add spec for visual-blockwise mode.
- Cleanup: globalState no longer instance of class, and nor property of vimState, since its global. It should be treated as like settings.
- New: #24 now folds kept closed when selection go over folded area. l, h expand folds as like Vim.
- Recorded operation history is no longer extended infinitely, just keeping one lastRecordedOperation is enough.
- Remove old meaningless(anymore) pushSearchHistory, getSearchHistoryItem on vimState.
- Move misc commands(like vimState::reverseSelection) to separate misc-commands.coffee so now processed by operationStack good for consistency.
- Support count for BlockwiseMoveUp and BlockwiseMoveDown.
- FIX #26: incorrect cursor position when escaped from visual-blockwise mode.
- FIX #27: Coludn't escape from visual-mode if non-left mouse button is used during drug. Thanks @jackcasey for first PR.
- Refactoring: visual-blockwise and fix corner case bug in shift submode within visual-mode.
- Refactoring: Cleanup mode-manager.coffee, now use Disposable::dispose when deactivating old mode etc...
- Now warn to console if duplicate constructor name is used, this is only for safe guard when developer add new TOM.
- Improve accuracy of TextObject.Function for language which have
meta.functionscope. - Lots of cleanup/refactoring
- Now commands are dispatched via vimState::dispatchCommand which translate command name to klassName with special translation for TextObject
- Explicitly {autoscroll: false} when selection modified by
j,kto avoid tail of selection on each movement. #23 - Partially implemented to not expand fold when selection across folded area. folds are expanded by
l,hmovement. - Add keymap for home, end key.
- FIX deprecation warning for Atom 1.1.0
- Bump supported engines to >=1.1.0
- FIX zs ze broken
- FIX c-f, c-b, c-u, c-d broken after Atom 1.1.0, Fix in 0.1.7 was quick fix and not appropriate behavior.
- New config option to disable 'flashScreenOnSearchHasNoMatch'.
- Don't use atom.commands.onDidDispatch.
- FIX: selectBlockwise select incorrect range in some situation.
- clear hover if ChangeSurroundAnyPair fail to find pair
- FIX: c-f,c-b,c-u,c-d broken after upgrading Atom 1.1.
- FIX: visual block $A operation put cursor on beginning of next line.
- FIX: shift from visual-char2block incorrectly add extra selection when rows contain blank row.
- FIX: p and P didn't correct replace text in visual-linewise mode.
- FIX: In softwrapped line, moveDown/moveUp fail in visual-linewise mode.
- FIX: cursor not when activate visual-blockwise with one clumn selection.
- FIX: move-down, move-up on visual-blockwise throw error when not have tail.
- Revival once disabled text-object quote to select forwarding range.
- New: TextObject.AnyQuote select any next AnyQuote within line.
- Now all TextObject Pair can expand selection.
- Fix TextObject AnyPair incorrectly expand selection when it fail to find pair.
- Add default keymaps on incremental search element for arrow and tab keys.
- FIX: debug feature was broken
- FIX:#4 select area when TextObject is executed via command-pallate(was throw err).
- 1st public release
- 2015.9.21 rename vim-mode to vim-mode-plus
- 2015.8.1 forked from vim-mode.
- Added replace ('R') mode! - @jacekkopecky
- Added the
iWandaWtext objects! - @jacekkopecky - Made the 't' operator behave correctly when the cursor was already on the
searched character - @jacekkopecky - Fixed the position of the cursor after pasting with 'p' - @jacekkopecky
- Renamed 'command mode' to 'normal mode' - @coolwanglu
- Fixed indentation commands so that they exit visual mode - @bronson
- Implemented horizontal scrolling commands
z sandz e- @jacekkopecky
- Fixed an error where repeating an insertion command would not handle characters inserted by packages like autocomplete or bracket-matcher - @jacekkopecky
- Fixed an exception that would occur when using
.to repeat in certain cases.
- Fixed incorrect cursor motion when exiting visual mode w/ a reversed selection - @t9md
- Added setting to configure the regexp used for numbers and the
ctrl-aandctrl-xkeybindings - @jacekkopecky
- Fixed cursor position after
ddcommand - @bronson - Implement
aptext-object differently thanip- MarkusSN
- Fixed an issue that caused the cursor to move left incorrectly when near the end of a line.
- Fixed usages of deprecated APIs
- Fixed usages of deprecated APIs - @hitsmaxft, @jacekkopecky
- Fixed issues with deleting when there are multiple selections - @jacekkopecky
- Added paragraph text-objects 'ip' and 'ap' - @t9md
- Fixed use of a deprecated method - @akonwi
- Added
ctrl-xandctrl-afor incrementing and decrementing numbers - @jacekkopecky - Fixed the behavior of scrolling motions in visual mode - @daniloisr
- Fixed issue where canceling the replace operator would delete text - @jacekkopecky
- Implemented repeat search commands: '//', '??', etc - @jacekkopecky
- Fixed issue where registers' contents were overwritten with the empty string - @jacekkopecky
- Made '%', '*' and '#' interact properly with search history @jacekkopecky
- Fixed spurious command bindings on command mode input element - @andischerer
- Added ability to append to register - @jacekkopecky
- Fixed an issue where deactivation would sometimes fail
- Fixed an issue where the search input text was not visible - @tmm1
- Added a different status-bar entry for visual-line mode - @jacekkopecky
- Made repeating insertions work more correctly with multiple cursors
- Fixed bugs in
*and#with cursor between words - @jacekkopecky
- Implemented change case operators:
gU,guandg~- @jacekkopecky - Fixed behavior of repeating
IandAinsertions - @jacekkopecky
- Fixed an issue where
dandcwith forward motions would sometimes incorrectly delete the character before the cursor - @deiwin
- Implemented basic version of
i toperator - @neiled - Made
tmotion repeatable with;- @jacekkopecky
- Added a service API so that other packages can extend vim-mode - @lloeki
- Added an insert-mode mapping for ctrl-u - @nicolaiskogheim
- Added a setting for using the system clipboard as the default register - @chrisfarms
- Added setting for allowing traversal of line breaks via
handl- @jacekkopecky - Fixed handling of whitespace characters in
Bmapping - @jacekkopecky - Fixed bugs when using counts with
f,F,tandTmappings - @jacekkopecky
- Added '_' binding - @ftwillms
- Fixed an issue where the '>', '<', and '=' operators would move the cursor incorrectly.
- Make toggle-case operator work with multiple cursors
- Fix regression where '%' stopped working across multiple lines
- Fix some deprecation warnings
- Enter visual mode when selecting text in command mode
- Don't select text after undo
- Always preserve selection of the intially-selected character in visual mode
- Fix bugs in the '%' motion
- Fix bugs in the 'S' operator
- Add o mapping in visual mode, for reversing selections
- Implement toggle-case in visual mode
- Fix bug in 'around word' text object
- Fixed a regression in the handling of the 'cw' command
- Made the replace operator work with multiple cursors
- Fixed the position of the cursor after certain yank operations.
- Fixed an issue where duplicate vim states were created when an editors were moved to different panes.
- Made motions, operators and text-objects work properly in the presence of multiple cursors.
- Fixed a stylesheet issue that caused visual glitches when vim-mode was disabled with the Shadow DOM turned on.
- Fix issue where search panel was not removed properly
- Updated the stylesheet for compatibility with shadow-DOM-enabled editors
- Ctrl-w for delete-to-beginning-of-word in insert mode
- Folding key-bindings
- Remove more deprecated APIs
- Fix behavior of ctrl-D, ctrl-U @anvyzhang
- Fix selection when moving up or down in visual line mode @mdp
- Remove deprecated APIs
- Fix interaction with autocomplete
- Properly re-enable editor input after disabling vim-mode
- Fix typo
- Make go-to-line motions work with operators @gittyupagain
- Allow replacing text with newlines using
r@dcalhoun - Support smart-case in when searching @isaachess
- Ctrl-c for command mode on mac only @sgtpepper43
- Add css to status bar mode for optional custom styling @e-jigsaw
- Implement
-,+, andenter@roryokane - Fix problem undo'ing in insert mode @bhuga
- Remove use of deprecated APIs
- Fix interaction with autocomplete-plus @klorenz
- Fix
ggandGin visual mode @cadwallion - Implement
%@carlosdcastillo - Add ctags keybindings @tmm1
- Fix tracking of marks when buffer changes @carlosdcastillo
- Fix off-by-one error for characterwise puts @carlosdcastillo
- Add support for undo and repeat to typing operations @bhuga
- Fix keybindings for some OSes @mcnicholls
- Fix visual
ngg@tony612 - Implement i{, i(, and i" @carlosdcastillo
- Fix off by one errors while selecting with j and k @fotanus
- Implement 'desired cursor column' behavior @iamjwc
- Fix E in visual mode @tony612
- Implement `` @guanlun
- Fix broken behavior when enabling/disabling @cadwallion
- Enable search in visual mode @romankuznietsov
- Fix end-of-line movement @abijr
- Fix behavior of change current line
ccin various corner cases. @jcurtis - Fix some corner cases of
w@abijr - Don't hide cursor in visual mode @dyross
- Enable arrow keys in visual mode @fholgado
- Additional bindings for split pane movement @zenhob
- Fix search on invalid regex @bhuga
- Add
salias to visual mode @tony612 - Display current mode in the status bar @gblock0
- Add marks (m, `, ') @danzimm
- Add operator-pending mode and a single text object (
iw) @nathansobo, @jroes - Add an option to start in insert mode @viveksjain
- Fix weird behavior when pasting at the end of a file @msvbg
- More fixes for corner cases in paste behavior @SKAhack
- Implement * and # @roman
- Implement ~ @badunk
- Implement t and T @udp
- Implement
ctrl-eandctrl-y@dougblack - Implement
/,?,nandN@bhuga - Registers are now shared between tabs in a single atom window @bhuga
- Show cursor only in focused editor @tony612
- Docs updated with new methods for entering insert mode @tednaleid
- Implement
r@bhuga - Fix
wwhen on the last word of a file @dougblack - Implement
=@ciarand - Implement
Emotion @tony612 - Implement basic
ctrl-fandctrl-bsupport @ciarand - Added
+,*and%registers @cschneid - Improved
^movement when already at the first character @zenhob - Fix off-by-one error for
15gg@tony612
- API Fixes for Atom 0.62 @bhuga
- Add
$and^to visual mode @spyc3r - Add
0to visual mode @ruedap - Fix for yanking entire lines @chadkouse
- Add
Xoperator @ruedap - Add
WandBmotions @jcurtis - Prevent cursor left at column 0 when switching to insert mode @adrianolaru
- Add pane switching shortcuts see #104 for details @dougblack
- Add
H,LandMmotions @dougblack
- Leaving insert mode always moves cursor left @joefiorini
- Implemented
Icommand @dysfunction - Restored
0motion @jroes - Implemented
}motion to move to previous paragraph @zenhob - Implement
gtandgTto cycle through tabs @JosephKu - Implement visual linewise mode @eoinkelly
- Properly clear selection when return to command mode @chadkouse
ctrl-[now activates command mode @ctbarna- enter now moves down a line in command mode @ctbarna
- Documentation links now work on atom.io @michaeltwofish
- Backspace now moves back a space in command mode @Tarrant
- Fixed an issue where cursors wouldn't appear in the settings view.
- Update contributing guide
- Update package.json
- Require underscore-plus directly
- Implemented
.operator, thanks to @bhuga - Fix putting at the end of lines, thanks to @bhuga
- Compatibility with Atom 0.50.0
- Switches apm db to buttant from iriscouch
- Compatibilty with Atom 26
- Compatiblity with atom 0.21
- Characterwise visual-mode!
- System copy and paste are now linked to the
* - Implement
Aoperator - Bugfixes concerning
bandP
- Major refactoring/cleanup/test speedup.
- Added
Scommand. - Added
Coperator. - Proper undo/redo transactions for repeated commands.
- Enhance
Gto take line numbers. - Added
Yoperator. - Added
ctrl-cto enter command mode.
- Added
scommand. - Added
emotion. - Fixed
cwremoving trailing whitepsace - Fixed cursor position for
ddwhen deleting blank lines
- Added the
coperator (thanks Yosef!) - Cursor appears as block in command mode and blinks when inserting (thanks Corey!)
- Delete operations now save deleted text to the default buffer
- Implement
ggandGmotions - Implement
Poperator - Implement
oandOcommands
- Added yank and put command with support for registers
- Added
$and^motions - Fixed repeats for commands and motions, ie
d2dworks as expected. - Implemented
Dto delete through the end of the line. - Implemented
>>and<<indent and outdent commands. - Implemented
J. - Implemented
ato move cursor and enter insert mode. - Add basic scrolling using
ctrl-uandctrl-d. - Add basic undo/redo using
uandctrl-r. This needs to be improved so it understands vim's semantics.
- Nothing changed, used this as a test release to understand the publishing flow.
- Initial release, somewhat functional but missing many things.