{"action":"created","issue":{"url":"https://api.github.com/repos/t9md/atom-vim-mode-plus/issues/54","labels_url":"https://api.github.com/repos/t9md/atom-vim-mode-plus/issues/54/labels{/name}","comments_url":"https://api.github.com/repos/t9md/atom-vim-mode-plus/issues/54/comments","events_url":"https://api.github.com/repos/t9md/atom-vim-mode-plus/issues/54/events","html_url":"https://github.com/t9md/atom-vim-mode-plus/issues/54","id":121491802,"number":54,"title":"Sum up undocumented feature.","user":{"login":"t9md","id":155205,"avatar_url":"https://avatars.githubusercontent.com/u/155205?v=3","gravatar_id":"","url":"https://api.github.com/users/t9md","html_url":"https://github.com/t9md","followers_url":"https://api.github.com/users/t9md/followers","following_url":"https://api.github.com/users/t9md/following{/other_user}","gists_url":"https://api.github.com/users/t9md/gists{/gist_id}","starred_url":"https://api.github.com/users/t9md/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/t9md/subscriptions","organizations_url":"https://api.github.com/users/t9md/orgs","repos_url":"https://api.github.com/users/t9md/repos","events_url":"https://api.github.com/users/t9md/events{/privacy}","received_events_url":"https://api.github.com/users/t9md/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-12-10T14:02:53Z","updated_at":"2015-12-11T20:02:08Z","closed_at":null,"body":"### Replace with register\r\n\r\n- `vim-mode-plus:replace-with-register`\r\nReplace target(selected or text-object) obj with the content of register.\r\n\r\ne.g. precondition: you mapped this cmd to `_`.\r\n\r\n`yiw` then move next word `w`, `_iw` replace word under cursor with content of register and can repeat it with `.`.\r\n\r\n### Surround\r\n\r\ndefault mapping is subject to re-think.\r\n\r\n```\r\n'g s s': 'vim-mode-plus:surround'\r\n'g s w': 'vim-mode-plus:surround-word'\r\n'g s d': 'vim-mode-plus:delete-surround'\r\n'g s c': 'vim-mode-plus:change-surround'\r\n```\r\n\r\n### CamelCase, DashCase, SnakeCase\r\n\r\n```\r\n  'g c':   'vim-mode-plus:camel-case'\r\n  'g /':   'vim-mode-plus:toggle-line-comments'\r\n  'g -':   'vim-mode-plus:dash-case'\r\n#  'g _': 'vim-mode-plus:snake-case'\r\n```\r\n\r\n### Examples operation using new features.\r\n\r\ne.g.\r\n- `gci'`: CamelCase inner-single-quote.\r\n- `g/il`: Toggle comment for current line\r\n- `g/ip`: Toggle comment for paragraph\r\n- `g/i/`: Toggle comment for commented-area(text-object comment)\r\n- `g-is`: DashCase for the area of inner-any-pair(`is` is mapped to inner-any-pair)\r\n- `dii`: Delete inner-indentation(deeper level of indentation stop at blank row).\r\n- `vaf`: Select a-function.\r\n- `yif`: Yank inner-function.\r\n- `ciz`: Change inner-fold\r\n- `vae`: Select a-entire buffer(not diff from inner-entire).\r\n\r\n### Select Latest change\r\n\r\nWhen you Change/Yank text, it saved to `[`, `]` marker.\r\nThis command simply select range maked by those maker.\r\n\r\ne.g. precondition: you map it to `gc` like bllow.\r\n```\r\n  'g c':    'vim-mode-plus:select-latest-change'\r\n```\r\n`yap`: Yank current function.\r\n`}` to move next blank line\r\n`pgcu` paste then select area just pasted with `gc` then lowercase this pasted paragraph with `u`.\r\n\r\n### Insert last inserted\r\n\r\nDisabled by default, intended to be mapped in insert-mode.\r\nIn pure Vim its provided as `ctrl-a` keymap to re-insert previously inserted-text again in different insertion timing'\r\nEach time you escape from insert-mode, inserted text are remembered as `.` register.\r\nYou can insert it by `ctrl-r.` by referencing `.` register.\r\n`insert-last-inserted` command is merely shorthand version of above operation. I mapped it to `ctrl-i` in insert-mode.  \r\n\r\n### Increment/Decrement\r\n\r\nVery experimental state. Vim also have similar feature.\r\nBut behavior is slitely different.\r\nIncrement/decrement number selected by using first instance of number as base number in selection.\r\n\r\n```\r\n  'g ctrl-a': 'vim-mode-plus:increment-number' # experimental\r\n  'g ctrl-x': 'vim-mode-plus:decrement-number' # experimental\r\n```\r\n\r\n### settings\r\n\r\n### stayOnTransformString, stayOnYank, flashOnOperate\r\n\r\nin pure Vim, most of operation move cursor to start position of target object.\r\ne.g `yip` move your cursor to first line even if you type this command from 3rd line of this paragraph.\r\nYou can notice your yanking operation is success by this cursor movement.\r\nBut for movement-wise I don't want this auto-move, I just want to `yip` here without moving cursor position to move downword after `yip`.\r\nBy enabling `stayOnYank`, cursor position won't be auto-changed after yank. `stayOnTransformString` is same purpose for other string transformation operation like surround, uppercase, lowercase etc..\r\nThe probmem is you no longer can depend on auto-cursor-movement to know your yanking operation is scceeded. To compliment this `flashOnOperate` is there.\r\n`yip` not move cursor but you can have confidence of your yanking(`y`) operation by seeing short flash of inner paragraph(`ip`).\r\n\r\n### showHoverOnOperate\r\n\r\nShow hover icon/emoji/none.\r\nEven if you disable this fancy feature.\r\ncount(e.g. `10dd`) and register(e.g `\"add`) prefix are shown on hover.\r\nI believe this is better than Vim's way showing count on statusbar(need  more eye movement).\r\n\r\nEven if you don't want fancy feature,\r\n `showHoverOnOperate=true`, `showHoverOnOperateIcon=none` helps a lot when you ChangeSurround. This opertion demands two char(e.g `[{`) and then require target text-object.\r\nYou lost where you are in this long road ride of ChangeSurround operation.\r\nHover show char as you type so you don't have confidently proceed this long road.\r\n\r\n### My favorite keymapping\r\n\r\n```\r\n'atom-text-editor.vim-mode-plus.operator-pending-mode':\r\n  'c': 'vim-mode-plus:inner-word'\r\n\r\natom-text-editor.vim-mode-plus.visual-mode':\r\n  ';': 'vim-mode-plus:inner-any-pair'\r\n  \"'\": 'vim-mode-plus:inner-any-quote'\r\n\r\n'atom-text-editor.vim-mode-plus.normal-mode':\r\n  'S':   'vim-mode-plus:surround-word'\r\n  'd s': 'vim-mode-plus:delete-surround-any-pair'\r\n  'c s': 'vim-mode-plus:change-surround-any-pair'\r\n```\r\n\r\n- `yc` to yank current word.\r\n- `cc` to change current word\r\n- `y;` to yank innser-any-pair like inside text of `'` single quote.\r\n- `_;` to replace yanked(register value) text to inner-any-pair(like inside of parenthesis).\r\n\r\n### advancement from vim-mode\r\n\r\n- `gi` to start insert mode where you exited from insert-mode previously.\r\n- `gv` re-select last selection.\r\n\r\n- Target requiring operator can operate on line when duplicated.\r\n\r\nWhen target requiring Operator are invoked twise in a row, it operate on linewise range.\r\n\r\ne.g. `dd`, `gUgU`, `yy`, `gugu`.\r\n\r\n### Issue\r\n\r\n The cursor position in visual-mode become strange in multi-byte char buffer.\r\n\r\n\r\n<bountysource-plugin>\r\n---\r\nWant to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/29013894-sum-up-undocumented-feature?utm_campaign=plugin&utm_content=tracker%2F23102845&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F23102845&utm_medium=issues&utm_source=github).\r\n</bountysource-plugin>"},"comment":{"url":"https://api.github.com/repos/t9md/atom-vim-mode-plus/issues/comments/164035268","html_url":"https://github.com/t9md/atom-vim-mode-plus/issues/54#issuecomment-164035268","issue_url":"https://api.github.com/repos/t9md/atom-vim-mode-plus/issues/54","id":164035268,"user":{"login":"t9md","id":155205,"avatar_url":"https://avatars.githubusercontent.com/u/155205?v=3","gravatar_id":"","url":"https://api.github.com/users/t9md","html_url":"https://github.com/t9md","followers_url":"https://api.github.com/users/t9md/followers","following_url":"https://api.github.com/users/t9md/following{/other_user}","gists_url":"https://api.github.com/users/t9md/gists{/gist_id}","starred_url":"https://api.github.com/users/t9md/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/t9md/subscriptions","organizations_url":"https://api.github.com/users/t9md/orgs","repos_url":"https://api.github.com/users/t9md/repos","events_url":"https://api.github.com/users/t9md/events{/privacy}","received_events_url":"https://api.github.com/users/t9md/received_events","type":"User","site_admin":false},"created_at":"2015-12-11T20:02:08Z","updated_at":"2015-12-11T20:02:08Z","body":"Here the GIF https://github.com/t9md/atom-vim-mode-plus/wiki/GIFs#mapsurround"}}