X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=runtime%2Fhelp%2Fcommands.md;h=771f06a2c218b336a2cbdcc1d2e3e2aa23557aef;hb=54c23cae72d7237bc898a59f79aad0acffdf0ffe;hp=13123099cf647548a4123737370978f3a6266397;hpb=9b5106904104d85472f39f87bfdde02d2263db23;p=micro.git diff --git a/runtime/help/commands.md b/runtime/help/commands.md index 13123099..771f06a2 100644 --- a/runtime/help/commands.md +++ b/runtime/help/commands.md @@ -1,81 +1,123 @@ -# Possible commands +# Command bar -You can execute an editor command by pressing `Ctrl-e` followed by the command. -Here are the possible commands that you can use. +The command bar is opened by pressing Ctrl-e. It is a single-line buffer, +meaning that all keybindings from a normal buffer are supported (as well +as mouse and selection). -* `quit`: Quits micro. +When running a command, you can use extra syntax that micro will expand before +running the command. To use an argument with a space in it, put it in +quotes. The command bar parser uses the same rules for parsing arguments that +`/bin/sh` would use (single quotes, double quotes, escaping). The command bar +does not look up environment variables. -* `save filename?`: Saves the current buffer. If the filename is provided it will - 'save as' the filename. +# Commands -* `replace "search" "value" flags`: This will replace `search` with `value`. - The `flags` are optional. - At this point, there is only one flag: `c`, which enables `check` mode - which asks if you'd like to perform the replacement each time. +Micro provides the following commands that can be executed at the command-bar +by pressing `Ctrl-e` and entering the command. Arguments are placed in single +quotes here but these are not necessary when entering the command in micro. - Note that `search` must be a valid regex. If one of the arguments - does not have any spaces in it, you may omit the quotes. +* `bind 'key' 'action'`: creates a keybinding from key to action. See the + `keybindings` documentation for more information about binding keys. + This command will modify `bindings.json` and overwrite any bindings to + `key` that already exist. -* `set option value`: sets the option to value. See the `options` help topic - for a list of options you can set. +* `help 'topic'?`: opens the corresponding help topic. If no topic is provided + opens the default help screen. -* `setlocal option value`: sets the option to value locally (only in the current - buffer). +* `save 'filename'?`: saves the current buffer. If the file is provided it + will 'save as' the filename. -* `show option`: shows the current value of the given option. +* `quit`: quits micro. -* `eval "expression"`: Evaluates a Lua expression. Note that micro will not - print anything so you should use `messenger:Message(...)` to display a - value. +* `replace 'search' 'value' 'flags'?`: This will replace `search` with `value`. + The `flags` are optional. Possible flags are: + * `-a`: Replace all occurrences at once + * `-l`: Do a literal search instead of a regex search -* `run sh-command`: runs the given shell command in the background. The - command's output will be displayed in one line when it finishes running. + Note that `search` must be a valid regex (unless `-l` is passed). If one + of the arguments does not have any spaces in it, you may omit the quotes. -* `bind key action`: creates a keybinding from key to action. See the sections on - keybindings above for more info about what keys and actions are available. +* `replaceall 'search' 'value'`: this will replace all occurrences of `search` + with `value` without user confirmation. -* `vsplit filename`: opens a vertical split with `filename`. If no filename is - provided, a vertical split is opened with an empty buffer. + See `replace` command for more information. -* `hsplit filename`: same as `vsplit` but opens a horizontal split instead of - a vertical split. +* `set 'option' 'value'`: sets the option to value. See the `options` help + topic for a list of options you can set. This will modify your + `settings.json` with the new value. -* `tab filename`: opens the given file in a new tab. +* `setlocal 'option' 'value'`: sets the option to value locally (only in the + current buffer). This will *not* modify `settings.json`. -* `tabswitch tab`: This command will switch to the specified tab. - The `tab` can either be a tab number, or a name of a tab. - +* `show 'option'`: shows the current value of the given option. -* `log`: opens a log of all messages and debug statements. +* `run 'sh-command'`: runs the given shell command in the background. The + command's output will be displayed in one line when it finishes running. + +* `vsplit 'filename'`: opens a vertical split with `filename`. If no filename + is provided, a vertical split is opened with an empty buffer. -* `plugin install plugin_name`: installs the given plugin. +* `hsplit 'filename'`: same as `vsplit` but opens a horizontal split instead + of a vertical split. -* `plugin remove plugin_name`: removes the given plugin. +* `tab 'filename'`: opens the given file in a new tab. + +* `tabmove '[-+]?n'`: Moves the active tab to another slot. `n` is an integer. + If `n` is prefixed with `-` or `+`, then it represents a relative position + (e.g. `tabmove +2` moves the tab to the right by `2`). If `n` has no prefix, + it represents an absolute position (e.g. `tabmove 2` moves the tab to slot `2`). + +* `tabswitch 'tab'`: This command will switch to the specified tab. The `tab` + can either be a tab number, or a name of a tab. + +* `textfilter 'sh-command'`: filters the current selection through a shell + command as standard input and replaces the selection with the stdout of + the shell command. For example, to sort a list of numbers, first select + them, and then execute `> textfilter sort -n`. + +* `log`: opens a log of all messages and debug statements. * `plugin list`: lists all installed plugins. -* `plugin update`: updates all installed plugins. +* `plugin install 'pl'`: install a plugin. + +* `plugin remove 'pl'`: remove a plugin. -* `plugin search plugin_name`: searches for the given plugin. - Note that you can find a list of all available plugins at - github.com/micro-editor/plugin-channel. +* `plugin update 'pl'`: update a plugin (if no arguments are provided + updates all plugins). - You can also see more information about the plugin manager - in the `Plugin Manager` section of the `plugins` help topic. +* `plugin search 'pl'`: search available plugins for a keyword. -* `plugin available`: list plugins available for download (this includes - any plugins that may be already installed). +* `plugin available`: show available plugins that can be installed. * `reload`: reloads all runtime files. -* `cd path`: Change the working directory to the given `path`. +* `cd 'path'`: Change the working directory to the given `path`. * `pwd`: Print the current working directory. -* `open filename`: Open a file in the current buffer. +* `open 'filename'`: Open a file in the current buffer. + +* `reset 'option'`: resets the given option to its default value + +* `retab`: Replaces all leading tabs with spaces or leading spaces with tabs + depending on the value of `tabstospaces`. + +* `raw`: micro will open a new tab and show the escape sequence for every event + it receives from the terminal. This shows you what micro actually sees from + the terminal and helps you see which bindings aren't possible and why. This + is most useful for debugging keybindings. + +* `showkey`: Show the action(s) bound to a given key. For example + running `> showkey Ctrl-c` will display `Copy`. + +* `term exec?`: Open a terminal emulator running the given executable. If no + executable is given, this will open the default shell in the terminal + emulator. --- The following commands are provided by the default plugins: * `lint`: Lint the current file for errors. +* `comment`: automatically comment or uncomment current selection or line.