1# Command bar 2 3The command bar is opened by pressing Ctrl-e. It is a single-line buffer, 4meaning that all keybindings from a normal buffer are supported (as well 5as mouse and selection). 6 7When running a command, you can use extra syntax that micro will expand before 8running the command. To use an argument with a space in it, put it in 9quotes. The command bar parser uses the same rules for parsing arguments that 10`/bin/sh` would use (single quotes, double quotes, escaping). The command bar 11does not look up environment variables. 12 13# Commands 14 15Micro provides the following commands that can be executed at the command-bar 16by pressing `Ctrl-e` and entering the command. Arguments are placed in single 17quotes here but these are not necessary when entering the command in micro. 18 19* `bind 'key' 'action'`: creates a keybinding from key to action. See the 20 `keybindings` documentation for more information about binding keys. 21 This command will modify `bindings.json` and overwrite any bindings to 22 `key` that already exist. 23 24* `help 'topic'?`: opens the corresponding help topic. If no topic is provided 25 opens the default help screen. 26 27* `save 'filename'?`: saves the current buffer. If the file is provided it 28 will 'save as' the filename. 29 30* `quit`: quits micro. 31 32* `replace 'search' 'value' 'flags'?`: This will replace `search` with `value`. 33 The `flags` are optional. Possible flags are: 34 * `-a`: Replace all occurrences at once 35 * `-l`: Do a literal search instead of a regex search 36 37 Note that `search` must be a valid regex (unless `-l` is passed). If one 38 of the arguments does not have any spaces in it, you may omit the quotes. 39 40* `replaceall 'search' 'value'`: this will replace all occurrences of `search` 41 with `value` without user confirmation. 42 43 See `replace` command for more information. 44 45* `set 'option' 'value'`: sets the option to value. See the `options` help 46 topic for a list of options you can set. This will modify your 47 `settings.json` with the new value. 48 49* `setlocal 'option' 'value'`: sets the option to value locally (only in the 50 current buffer). This will *not* modify `settings.json`. 51 52* `show 'option'`: shows the current value of the given option. 53 54* `run 'sh-command'`: runs the given shell command in the background. The 55 command's output will be displayed in one line when it finishes running. 56 57* `vsplit 'filename'`: opens a vertical split with `filename`. If no filename 58 is provided, a vertical split is opened with an empty buffer. 59 60* `hsplit 'filename'`: same as `vsplit` but opens a horizontal split instead 61 of a vertical split. 62 63* `tab 'filename'`: opens the given file in a new tab. 64 65* `tabmove '[-+]?n'`: Moves the active tab to another slot. `n` is an integer. 66 If `n` is prefixed with `-` or `+`, then it represents a relative position 67 (e.g. `tabmove +2` moves the tab to the right by `2`). If `n` has no prefix, 68 it represents an absolute position (e.g. `tabmove 2` moves the tab to slot `2`). 69 70* `tabswitch 'tab'`: This command will switch to the specified tab. The `tab` 71 can either be a tab number, or a name of a tab. 72 73* `textfilter 'sh-command'`: filters the current selection through a shell 74 command as standard input and replaces the selection with the stdout of 75 the shell command. For example, to sort a list of numbers, first select 76 them, and then execute `> textfilter sort -n`. 77 78* `log`: opens a log of all messages and debug statements. 79 80* `plugin list`: lists all installed plugins. 81 82* `plugin install 'pl'`: install a plugin. 83 84* `plugin remove 'pl'`: remove a plugin. 85 86* `plugin update 'pl'`: update a plugin (if no arguments are provided 87 updates all plugins). 88 89* `plugin search 'pl'`: search available plugins for a keyword. 90 91* `plugin available`: show available plugins that can be installed. 92 93* `reload`: reloads all runtime files. 94 95* `cd 'path'`: Change the working directory to the given `path`. 96 97* `pwd`: Print the current working directory. 98 99* `open 'filename'`: Open a file in the current buffer. 100 101* `reset 'option'`: resets the given option to its default value 102 103* `retab`: Replaces all leading tabs with spaces or leading spaces with tabs 104 depending on the value of `tabstospaces`. 105 106* `raw`: micro will open a new tab and show the escape sequence for every event 107 it receives from the terminal. This shows you what micro actually sees from 108 the terminal and helps you see which bindings aren't possible and why. This 109 is most useful for debugging keybindings. 110 111* `showkey`: Show the action(s) bound to a given key. For example 112 running `> showkey Ctrl-c` will display `Copy`. 113 114* `term exec?`: Open a terminal emulator running the given executable. If no 115 executable is given, this will open the default shell in the terminal 116 emulator. 117 118--- 119 120The following commands are provided by the default plugins: 121 122* `lint`: Lint the current file for errors. 123* `comment`: automatically comment or uncomment current selection or line. 124