# Editor backend selection

Source: /tuil/docs/guides/editor-backends
Locale: en

Select buffer, Vim, or rich-document editing.



Use the built-in buffer for ordinary text and code fields, the Vim provider for
modal commands, and the rich provider for structured blocks. Providers register
through `editorProviders`; commands register independently through
`editorCommands`, so plugins can extend behavior without replacing the editor.

Every provider owns selection, undo/redo, composition, clipboard, and static
output. Test provider-independent behavior with the editor conformance harness.

Masked sessions redact snapshots, text/Markdown/JSON serialization, copy, cut,
and clipboard-adapter writes. An owning password control receives the private
value only through the explicit `onDocumentChange` provider option; providers
that advertise the `masked` capability must honor that boundary.
`PasswordInput` therefore accepts `editorProvider` but rejects a pre-created
`session`, because a control cannot retrofit that private change sink without
recovering secrets through a redacted serialization API.
