diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2022-05-24 11:40:11 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-05-24 11:40:11 +0100 |
commit | 971f6825ee845828bd5c8869487928a3f32cd467 (patch) | |
tree | 05a3c033c0ed013b0b4f80feb4d163aa1d2f1e14 /runtime/doc/autocmd.txt | |
parent | c9a431c7638ecebb6f2cb3eabd0e1b2b5e269c1e (diff) |
patch 8.2.5011: Replacing an autocommand requires several linesv8.2.5011
Problem: Replacing an autocommand requires several lines.
Solution: Add the "replace" flag to autocmd_add(). (Yegappan Lakshmanan,
closes #10473)
Diffstat (limited to 'runtime/doc/autocmd.txt')
-rw-r--r-- | runtime/doc/autocmd.txt | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index fb4532fc4e..0ef7c4c67b 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -47,6 +47,28 @@ effects. Be careful not to destroy your text. It's a good idea to use the same autocommands for the File* and Buf* events when possible. +Recommended use: +- Always use a group, so that it's easy to delete the autocommand. +- Keep the command itself short, call a function to do more work. +- Make it so that the script it is defined it can be sourced several times + without the autocommand being repeated. + +Example in Vim9 script: > + autocmd_add({replace: true, + group: 'DemoGroup', + event: 'BufEnter', + pattern: '*.txt', + cmd: 'call DemoBufEnter()' + }) + +In legacy script: > + call autocmd_add(#{replace: v:true, + \ group: 'DemoGroup', + \ event: 'BufEnter', + \ pattern: '*.txt', + \ cmd: 'call DemoBufEnter()' + \ }) + ============================================================================== 2. Defining autocommands *autocmd-define* @@ -83,7 +105,8 @@ triggered. } The |autocmd_add()| function can be used to add a list of autocmds and autocmd -groups from a Vim script. +groups from a Vim script. It is preferred if you have anything that would +require using `:execute` with `:autocmd`. Note: The ":autocmd" command can only be followed by another command when the '|' appears where the pattern is expected. This works: > |