When you setup a .inputrc file in your home or in /etc/ directory with this content (part of it maybe):
set editing-mode vi set keymap vi "yn":yank-nth-arg "yl":yank-last-arg "qq":start-kbd-macro "qe":end-kbd-macro "Q":call-last-kbd-macro You get about keybindings (in normal mode) like here: [number]yn -> paste the [number]ed argument of the previous line [number]yl -> paste the [number]ed argument of the previous line yn / yl -> paste the first / last argument of the previous line Please note, also without that setting you can easily do a: _ or [number]_ to achieve the same unless that when [number] = 1, it's the first word on the previous line rather then the first arg. "qq" -> start-kdb-macro "qe" -> end-kbd-macro "Q" -> call-last-kdb-macro (does only work until the next <esc> here) VI Mode bindings VI Insert Mode functions "C-D" -> vi-eof-maybe "C-H" -> backward-delete-char "C-I" -> complete "C-J" -> accept-line "C-K" -> kill-line "C-L" -> clear-screen "C-M" -> accept-line "C-N" -> next-history "C-P" -> previous-history "C-Q" -> quoted-insert "C-R" -> reverse-search-history "C-S" -> forward-search-history "C-T" -> transpose-chars "C-U" -> unix-line-discard "C-V" -> quoted-insert "C-W" -> unix-word-rubout "C-Y" -> yank "C-[" -> vi-movement-mode " " to "~" -> self-insert "C-?" -> backward-delete-char VI Command Mode functions "C-D" -> vi-eof-maybe "C-E" -> emacs-editing-mode "C-G" -> abort "C-H" -> backward-char "C-J" -> accept-line "C-K" -> kill-line "C-L" -> clear-screen "C-M" -> accept-line "C-N" -> next-history "C-P" -> previous-history "C-Q" -> quoted-insert "C-R" -> reverse-search-history "C-S" -> forward-search-history "C-T" -> transpose-chars "C-U" -> unix-line-discard "C-V" -> quoted-insert "C-W" -> unix-word-rubout "C-Y" -> yank "C-[" -> abort " " -> forward-char "#" -> vi-comment "$" -> end-of-line "%" -> vi-match "&" -> vi-tilde-expand "*" -> vi-complete "+" -> down-history "," -> vi-char-search "-" -> previous-history "." -> vi-redo "/" -> vi-search "0" -> beginning-of-line "1" to "9" -> vi-arg-digit ";" -> vi-char-search "=" -> vi-complete "?" -> vi-search "@" -> is undefined "A" -> vi-append-eol "B" -> vi-prev-word "C" -> vi-change-to "D" -> vi-delete-to "E" -> vi-end-word "F" -> vi-char-search "I" -> vi-insert-beg "N" -> vi-search-again "P" -> vi-put "R" -> vi-replace "S" -> vi-subst "T" -> vi-char-search "U" -> revert-line "W" -> vi-next-word "X" -> backward-delete-char "Y" -> vi-yank-to "\" -> vi-complete "^" -> vi-first-print "_" -> vi-yank-arg "a" -> vi-append-mode "b" -> vi-prev-word "c" -> vi-change-to "d" -> vi-delete-to "e" -> vi-end-word "f" -> vi-char-search "h" -> backward-char "i" -> vi-insertion-mode "j" -> next-history "k" -> prev-history "l" -> forward-char "n" -> vi-search-again "r" -> vi-change-char "s" -> vi-subst "t" -> vi-char-search "u" -> undo "w" -> vi-next-word "x" -> vi-delete "y" -> vi-yank-to "|" -> vi-column "~" -> vi-change-case old table: C-w delete last word (insert mode) h move cursor one character to left j next line in history k previous line in history l move cursor one character to right w move cursor one word to right b move cursor one word to left 0 move cursor to beginning of line $ move cursor to end of line <ESC> switch to 'normal' mode i insert to left of current cursor position I insert at beginning of line a append to right of current cursor position A append to end of line dw delete current word cw change current word r change current character ~ change case (upper-, lower-) of current character dd delete current line D delete portion of current line to right of the cursor x delete current character ma mark currrent position `a go back to the marked position p dump out at current place your last deletion (``paste'') u undo the last command . repeat the last command / search history forwards ? search history backwards n next item (during search) N previous item (during search)