From e3c5e07b20aabd375db5ff3e84e89b0473274dba Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Tue, 28 Mar 2023 17:55:00 +0200 Subject: [PATCH] Update documentation --- docs/Config.md | 61 +++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/docs/Config.md b/docs/Config.md index 22f2a8e9b..df9003d23 100644 --- a/docs/Config.md +++ b/docs/Config.md @@ -96,9 +96,12 @@ git: parseEmoji: false diffContextSize: 3 # how many lines of context are shown around a change in diffs os: - editCommand: '' # see 'Configuring File Editing' section - editCommandTemplate: '' - openCommand: '' + editPreset: '' # see 'Configuring File Editing' section + edit: '' + editAtLine: '' + editAtLineAndWait: '' + open: '' + openLink: '' refresher: refreshInterval: 10 # File/submodule refresh interval in seconds. Auto-refresh can be disabled via option 'git.autoRefresh'. fetchInterval: 60 # Re-fetch interval in seconds. Auto-fetch can be disabled via option 'git.autoFetch'. @@ -268,40 +271,41 @@ os: ### Configuring File Editing -Lazygit will edit a file with the first set editor in the following: +There are two commands for opening files, `o` for "open" and `e` for "edit". `o` +acts as if the file was double-clicked in the Finder/Explorer, so it also works +for non-text files, whereas `e` opens the file in an editor. `e` can also jump +to the right line in the file if you invoke it from the staging panel, for +example. -1. config.yaml +To tell lazygit which editor to use for the `e` command, the easiest way to do +that is to provide an editPreset config, e.g. ```yaml os: - editCommand: 'vim' # as an example + editPreset: 'vscode' ``` -2. \$(git config core.editor) -3. \$GIT_EDITOR -4. \$VISUAL -5. \$EDITOR -6. \$(which vi) +Supported presets are `vim`, `emacs`, `nano`, `vscode`, `sublime`, `bbedit`, and +`xcode`. In many cases lazygit will be able to guess the right preset from your +$(git config core.editor), or an environment variable such as $VISUAL or $EDITOR. -Lazygit will log an error if none of these options are set. - -You can specify the current line number when you're in the patch explorer. +If for some reason you are not happy with the default commands from a preset, or +there simply is no preset for your editor, you can customize the commands by +setting the `edit`, `editAtLine`, and `editAtLineAndWait` options, e.g.: ```yaml os: - editCommand: 'vim' - editCommandTemplate: '{{editor}} +{{line}} -- {{filename}}' + edit: 'myeditor {{filename}}' + editAtLine: 'myeditor --line={{line}} {{filename}}' + editAtLineAndWait: 'myeditor --block --line={{line}} {{filename}}' + editInTerminal: true ``` -or +The `editInTerminal` option is used to decide whether lazygit needs to suspend +itself to the background before calling the editor. -```yaml -os: - editCommand: 'code' - editCommandTemplate: '{{editor}} --goto -- {{filename}}:{{line}}' -``` - -`{{editor}}` in `editCommandTemplate` is replaced with the value of `editCommand`. +Contributions of new editor presets are welcome; see the `getPreset` function in +[`editor_presets.go`](https://github.com/jesseduffield/lazygit/blob/master/pkg/config/editor_presets.go). ### Overriding default config file location @@ -317,15 +321,6 @@ or LG_CONFIG_FILE="$HOME/.base_lg_conf,$HOME/.light_theme_lg_conf" lazygit ``` -### Recommended Config Values - -for users of VSCode - -```yaml -os: - openCommand: 'code -rg {{filename}}' -``` - ## Color Attributes For color attributes you can choose an array of attributes (with max one color attribute)