Skip to content
t9md edited this page Aug 8, 2016 · 35 revisions

Keymap selector abbreviations

In this document, following abbreviations are used for shortness.

Abbrev Selector Description
!i :not(.insert-mode) except insert-mode
i .insert-mode
o .operator-pending-mode
n .normal-mode
v .visual-mode
vB .visual-mode.blockwise
vL .visual-mode.linewise
vC .visual-mode.characterwise
iR .insert-mode.replace
# .with-count when count is specified

Operator

Keymap Command Description
select-latest-change Select latest yanked or changed range
n gv select-previous-selection Select last selected visual area in current buffer
!i d
v x
delete
n x delete-right
n X delete-left
!i D
vB D
delete-to-last-character-of-line
v D delete-line
!i g~
o,v ~
toggle-case
!i ~ toggle-case-and-move-right
!i gU
o,v U
upper-case
!i gu
o,v u
lower-case
split-by-character
!i gc camel-case
snake-case CamelCase -> camel_case
!i gC pascal-case text_before -> TextAfter
!i g- dash-case
title-case CamelCase -> Camel Case
encode-uri-component URI encode string
decode-uri-component Decode URL encoded string
!i gSPC compact-spaces Compact multiple spaces to single space
transform-string-by-select-list Transform string by specified oprator selected from select-list
transform-word-by-select-list Transform string by specified oprator selected from select-list
transform-smart-word-by-select-list Transform InnerSmartWord by transform-string-by-select-list
replace-with-register Replace target with specified register value
swap-with-register Swap register value with target
!i > indent
!i < outdent
!i = auto-indent
!i g/ toggle-line-comments
surround Surround target by specified character like (, [, "
surround-word Surround word
surround-smart-word Surround smart-word
map-surround Surround each word(/w+/) within target
delete-surround Delete specified surround character like (, [, "
delete-surround-any-pair Delete surround character by auto-detect paired char from cursor enclosed pair
delete-surround-any-pair-allow-forwarding Delete surround character by auto-detect paired char from cursor enclosed pair and forwarding pair within same line
change-surround Change surround character, specify both from and to pair char
change-surround-any-pair Change surround character, from char is auto-detected
change-surround-any-pair-allow-forwarding Change surround character, from char is auto-detected from enclosed and forwarding area
!i y yank
!i Y yank-line
yank-to-last-character-of-line
!i J join
!i gJ join-with-keeping-space
join-by-input Transform multi-line to single-line by with specified separator character
join-by-input-with-keeping-space Join lines without padding space between each line
split-string Split single-line into multi-line by splitting specified separator chars
reverse Reverse lines(e.g reverse selected three line)
n . repeat
!i ⌃a increase
!i ⌃x decrease
!i g⌃a increment-number
!i g⌃x decrement-number
!i P put-before
!i p put-after
put-before-and-select Paste before then select
put-after-and-select Paste after then select
!i r replace
add-selection
.with-range-marker!i ⌘-d select-all-in-range-marker
set-cursors-to-start-of-target
set-cursors-to-start-of-marked-range
mark-range
n i activate-insert-mode
n R activate-replace-mode
n a insert-after
n A insert-after-end-of-line
!i I insert-at-beginning-of-line
n gi insert-at-last-insert
n O insert-above-with-newline
n o insert-below-with-newline
insert-at-start-of-target
vB I insert-at-start-of-selection
insert-at-end-of-target
vB A insert-at-end-of-selection
insert-at-head-of-target
insert-at-tail-of-target
insert-at-previous-fold-start Move to previous fold start then enter insert-mode
insert-at-next-fold-start Move to next fold start then enter insert-mode
!i c
v s
change
n s substitute
!i S substitute-line
!i C change-to-last-character-of-line

Motion

Keymap Command Description
!i h
!i
move-left
!i l
!i SPC
!i
move-right
!i k
!i
move-up
!i j
!i
move-down
move-up-to-edge Move cursor up to edge char at same-column
move-down-to-edge Move cursor down to edge char at same-column
!i w move-to-next-word
!i b move-to-previous-word
!i e move-to-end-of-word
!i W move-to-next-whole-word
!i B move-to-previous-whole-word
!i E move-to-end-of-whole-word
move-to-next-alphanumeric-word Move to next alphanumeric(/w+/) word
move-to-previous-alphanumeric-word Move to previous alphanumeric(/w+/) word
move-to-end-of-alphanumeric-word Move to end of alphanumeric(/w+/) word
move-to-next-smart-word Move to next smart word (/[w-]+/) word
move-to-previous-smart-word Move to previous smart word (/[w-]+/) word
move-to-end-of-smart-word Move to end of smart word (/[w-]+/) word
!i } move-to-next-paragraph
!i { move-to-previous-paragraph
!i 0
!i home
move-to-beginning-of-line
!i move-to-column
!i $
!i end
move-to-last-character-of-line
!i g_ move-to-last-nonblank-character-of-line-and-down
!i ^ move-to-first-character-of-line
!i - move-to-first-character-of-line-up
!i +
!i
move-to-first-character-of-line-down
!i _ move-to-first-character-of-line-and-down
!i gg move-to-first-line
!i G move-to-last-line
#!i % move-to-line-by-percent
!i H move-to-top-of-screen
!i M move-to-middle-of-screen
!i L move-to-bottom-of-screen
!i ⌃f scroll-full-screen-down
!i ⌃b scroll-full-screen-up
!i ⌃d scroll-half-screen-down
!i ⌃u scroll-half-screen-up
!i f find
!i F find-backwards
!i t till
!i T till-backwards
!i ; repeat-find
!i , repeat-find-reverse
move-to-mark
move-to-mark-line
!i / search
!i ? search-backwards
!i * search-current-word
!i # search-current-word-backwards
!i n repeat-search
!i N repeat-search-reverse
move-to-previous-fold-start Move to previous fold start
move-to-next-fold-start Move to next fold start
move-to-previous-fold-start-with-same-indent Move to previous same-indented fold start
move-to-next-fold-start-with-same-indent Move to next same-indented fold start
move-to-previous-fold-end Move to previous fold end
move-to-next-fold-end Move to next fold end
move-to-previous-function Move to previous function
move-to-next-function Move to next function
move-to-previous-string Move to previous string(searched by string.begin scope)
move-to-next-string Move to next string(searched by string.begin scope)
move-to-previous-number Move to previous number(searched by constant.numeric scope)
move-to-next-number Move to next number(searched by constant.numeric scope)
!i % move-to-pair

TextObject

Keymap Command Description
o,v aw a-word
o,v iw inner-word
o,v aW a-whole-word
o,v iW inner-whole-word
a-smart-word A word that consists of alphanumeric chars(/[A-Za-z0-9_]/) and hyphen -
inner-smart-word Currently No diff from a-smart-word
o,v as a-any-pair
o,v is inner-any-pair
a-any-pair-allow-forwarding Range surrounded by auto-detected paired chars from enclosed and forwarding area
inner-any-pair-allow-forwarding Range surrounded by auto-detected paired chars from enclosed and forwarding area
o,v aq a-any-quote
o,v iq inner-any-quote
o,v a" a-double-quote
o,v i" inner-double-quote
o,v a' a-single-quote
o,v i' inner-single-quote
o,v a` a-back-tick
o,v i` inner-back-tick
o,v a{
o,v a}
o,v aB
a-curly-bracket
o,v i{
o,v i}
o,v iB
inner-curly-bracket
a-curly-bracket-allow-forwarding
inner-curly-bracket-allow-forwarding
o,v a[
o,v a]
a-square-bracket
o,v i[
o,v i]
inner-square-bracket
a-square-bracket-allow-forwarding
inner-square-bracket-allow-forwarding
o,v a(
o,v a)
o,v ab
a-parenthesis
o,v i(
o,v i)
o,v ib
inner-parenthesis
a-parenthesis-allow-forwarding
inner-parenthesis-allow-forwarding
o,v a<
o,v a>
a-angle-bracket
o,v i<
o,v i>
inner-angle-bracket
a-angle-bracket-allow-forwarding
inner-angle-bracket-allow-forwarding
o,v at a-tag
o,v it inner-tag
o,v ap a-paragraph
o,v ip inner-paragraph
o,v ai a-indentation
o,v ii inner-indentation
o,v a/ a-comment
o,v i/ inner-comment
o,v az a-fold
o,v iz inner-fold
o,v af a-function
o,v if inner-function
o,v al a-current-line
o,v il inner-current-line
o,v ae a-entire
o,v ie inner-entire
o,v ac a-latest-change
o,v ic inner-latest-change
!i gn search-match-forward
!i gN search-match-backward
o,v gv previous-selection
.with-range-marker!i ⌃cmd-g
o,v ir
marked-range

InsertMode

Keymap Command Description
i ⌃r insert-register
insert-last-inserted Insert text inserted in latest insert-mode.
Equivalent to i_CTRL-A of pure Vim
i ⌃y copy-from-line-above Insert character of same-column of above line.
Equivalent to i_CTRL-Y of pure Vim
copy-from-line-below Insert character of same-column of above line.
Equivalent to i_CTRL-E of pure Vim

MiscCommand

Keymap Command Description
v o
vB O
reverse-selections
vB o blockwise-other-end
n u undo
n ⌃r redo
!i za toggle-fold
iR ⌃h
iR BS
replace-mode-backspace
!i ⌃e scroll-down
!i ⌃y scroll-up
!i z⏎ scroll-cursor-to-top
!i zt scroll-cursor-to-top-leave
!i z- scroll-cursor-to-bottom
!i zb scroll-cursor-to-bottom-leave
!i z. scroll-cursor-to-middle
!i zz scroll-cursor-to-middle-leave
!i zs scroll-cursor-to-left
!i ze scroll-cursor-to-right
i ⌃o activate-normal-mode-once
Clone this wiki locally