mirror of
https://github.com/mawww/kakoune.git
synced 2024-12-18 17:02:06 +03:00
b40eeae6e3
Relevant filter in the code: ``` if (*bufnames == "*") { for (auto&& buffer : BufferManager::instance() | transform(&std::unique_ptr<Buffer>::get) | filter([](Buffer* buf) { return not (buf->flags() & Buffer::Flags::Debug); }) | gather<Vector<SafePtr<Buffer>>>()) // gather as we might be mutating the buffer list in the loop. context_wrap_for_buffer(*buffer); } ```
67 lines
2.2 KiB
Plaintext
67 lines
2.2 KiB
Plaintext
= Execute-keys and Evaluate-commands
|
||
|
||
== Description
|
||
|
||
The *execute-keys* and *evaluate-commands* commands can be used to run
|
||
Kakoune commands:
|
||
|
||
----------------------------
|
||
execute-keys [<switches>] <key> ...
|
||
evaluate-commands [<switches>] <command> ...
|
||
----------------------------
|
||
|
||
*execute-keys* runs keys as if they were pressed, whereas *evaluate-commands*
|
||
evaluates its given parameters as if they were entered in the command prompt.
|
||
By default, their execution happens within the context of the current client,
|
||
and stops when the last key/command is reached, or an error is raised.
|
||
|
||
*execute-keys* also save the following registers, who are then restored
|
||
when the commands have been executed: */*, *"*, *|*, *^*, *@*.
|
||
*evaluate-commands* does not save any registers by default.
|
||
(See <<registers#,`:doc registers`>>)
|
||
|
||
== Optional switches
|
||
|
||
*-client* <name>::
|
||
execute in the context of the client named *name*
|
||
|
||
*-try-client* <name>::
|
||
execute in the context of the client named *name* if such client
|
||
exists, or else in the current context
|
||
|
||
*-draft*::
|
||
execute in a copy of the context of the selected client. Modifications
|
||
to the selections or input state will not affect the client. This
|
||
permits to make some modification to the buffer without modifying
|
||
the user’s selection
|
||
|
||
*-itersel*::
|
||
execute once per selection, in a context with only the considered
|
||
selection. This permits avoiding cases where the selections may
|
||
get merged
|
||
|
||
*-buffer* <names>::
|
||
execute in the context of each buffers in the comma separated list
|
||
*names*. `*` as a name can be used to iterate on all non-debug buffers
|
||
(See <<buffers#debug-buffers, `:doc buffers`>>)
|
||
|
||
*-save-regs* <regs>::
|
||
regs is a string of registers to be restored after execution (overwrites
|
||
the list of registers saved by default, c.f. description)
|
||
|
||
== evaluate-commands specific switches
|
||
|
||
*-no-hooks*::
|
||
disable hook execution while executing the keys/commands
|
||
(See <<hooks#disabling-hooks,`:doc hooks`>>)
|
||
|
||
== execute-keys specific switches
|
||
|
||
*-with-maps*::
|
||
use user key mapping in instead of built in keys
|
||
(See <<mapping#,`:doc mapping`>>)
|
||
|
||
*-with-hooks*::
|
||
the execution of keys will trigger existing hooks
|
||
(See <<hooks#,`:doc hooks`>>)
|