Readline VI Editing Mode Cheat SheetDefault Keyboard Shortcuts for BashShortcutDescriptionSwitching to Command Mode:ESCSwitch to command mode.Commands for Entering Input mode:iInsert before cursor.aInsert after cursor.IInsert at the beginning of line.AInsert at the end of line.c<movement command>Change text of a movement command <movement command> (see below).CChange text to the end of line (equivalent to c$).cc or SChange current line (equivalent to 0c$).sDelete a single character under the cursor and enter input mode (equivalent toc[SPACE]) .rReplaces a single character under the cursor (without leaving command mode).RReplaces characters under the cursor.vEdit (and execute) the current command in a text editor (an editor in $VISUAL and$EDITOR variables or vi).Basic Movement Commands (in command mode):l or SPACEMove one character right.hMove one character left.wMove one word or token right.bMove one word or token left.WMove one non-blank word right.BMove one non-blank word left.eMove to the end of the current word.EMove to the end of the current non-blank word.0Move to the beginning of line.ˆMove to the first non-blank character of line.$Move to the end of line.%Move to the corresponding opening/closing bracket (()’s, []’s and {}’s).Character Finding Commands (these are also Movement Commands):fcMove right to the next occurance of c.FcMove left to the previous occurance of c.tcMove right to the next occurance of c, then one char backward.TcMove left to the previous occurance of c, then one char forward.;Redo the last character finding command.,Redo the last character finding command in opposite direction.|Move to the n-th column (you may specify the argument n by typing it on numberkeys, for example, 20|).A cheat sheet by Peteris Krumins (peter@catonmat.net), 2008.http://www.catonmat.net - good coders code, great reuseReleased under GNU Free Document License.Deletion Commands:xDelete a single character under the cursor.XDelete a character before the cursor.d<movement command>Delete text of a movement command <movement command> (see above).DDelete to the end of the line (equivalent to d$).ddDelete current line (equivalent to 0d$).CTRL-wDelete the previous word.CTRL-uDelete from the cursor to the beginning of line.Undo, Redo and Copy/Paste Commands:uUndo previous text modification.UUndo all previous text modifications on the line..Redo the last text modification.y<movement command>Yank a movement into buffer (copy).yyYank the whole line.pInsert the yanked text at the cursor (paste).PInsert the yanked text before the cursor.Commands for Command History:kMove backward one command in history.jMove forward one command in history.GMove to the history line n (you may specify the argument n by typing it on numberkeys, for example, 15G)./string or CTRL-rSearch history backward for a command matching string.?string or CTRL-sSearch history forward for a command matching string (remember that on mostmachines CTRL-s stops the output to the terminal (CTRL-q starts output) and youmight need to change it with stty command).nRepeat search in the same direction as previous.NRepeat search in the opposite direction as previous.Completion Commands:TAB or CTRL-i or =List possible completions.*Insert all possible completions.Miscellaneous Commands:∼Invert the case of the character under cursor, and move a character right.#Prepend # (comment character) to the line and send it to the history list.Inserts the n-th word of the previous command in the current line.0, 1, 2, ...Sets the numeric argument.CTRL-vInsert a character literally (quoted insert).CTRL-tTranspose (exchange) two characters.Examples and Tips• Some of the commands take a <movement command>. These commands apply the movement to themselves.For example, d$ would use $ as a movement, which moves the cursor to the end of the line, thus, the whole d$would delete text from the current cursor position to the end of the line. Another example, a command cfA woulduse fA as a movement, which finds the next occurance of the character A, thus, the whole command would changethe line up to character A.• Use CTRL-v to insert character literally, for example, CTRL-v CTRL-r would insert CTRL-r in the commandline.• See man bash, man readline, and built in bind command for modifying the default behavior!A cheat sheet by Peteris Krumins (peter@catonmat.net), 2008.http://www.catonmat.net - good coders code, great reuseReleased under GNU Free Document License.
Add New Comment