Enum BindingMode
pub enum BindingMode {
Show 24 variants
Normal,
Insert,
Visual,
Select,
Replace,
Command,
Search,
Prompt,
OperatorPending,
AfterG,
AfterZ,
AfterMark,
AfterJumpMarkLine,
AfterJumpMarkExact,
AfterRegister,
AfterMacroStart,
AfterMacroPlay,
AfterFindChar,
AfterTextObject,
Help,
AfterCtrlW,
AfterCtrlX,
CompletionPopup,
Snippet,
}Expand description
Where a binding takes effect. Multi-key sequences (e.g. gg)
resolve atomically; intermediate single-key prefixes (g, z) get
their own descriptor entries so :describe-key g explains the
pending substate.
Variants§
Normal
Vim Normal mode — the default command state.
Insert
Insert mode: unbound printable chords insert themselves as text.
Visual
Charwise / Linewise / Blockwise visual share the same chord table; differences are in the operator dispatch (Range::Selection resolution).
Select
Vim Select mode (SN.3d). Its own chord table — distinct from
Self::Visual because a bare printable key dispatches
differently (Visual: command lookup; Select: replace-and-insert).
Motions/extensions are duplicated from the Visual table and kept
honest by a parity test. See docs/dev/architecture/select-mode.md.
Replace
Vim Replace mode (R): typed chars overwrite rather than insert.
Command
: minibuffer.
Search
/ ? minibuffer.
Prompt
Effect::OpenPrompt’s generic one-line prompt — the third
buffer-backed readline surface, peer of Self::Command and
Self::Search.
Its own table for the same reason they have theirs: a minibuffer is
not an Insert buffer. Resolving these surfaces against the Insert
table let every globally-active minor’s Insert bindings leak onto
them — auto-pair’s <BS> shadowed the builtin backspace on the :
line, so backspace did nothing there in either renderer.
OperatorPending
After d / y / c / > / < / gU / gu / g~ – waiting
for a motion or text-object target.
AfterG
After g – waiting for the second key.
AfterZ
After z – waiting for the second key.
AfterMark
After m – waiting for the mark name.
AfterJumpMarkLine
After ' (jump to mark line) – waiting for mark name.
AfterJumpMarkExact
After ` (jump to mark exact) – waiting for mark name.
AfterRegister
After " – waiting for register name.
AfterMacroStart
After q (when not already recording) – waiting for register
name to record into.
AfterMacroPlay
After @ – waiting for register name to play (or @ for last).
AfterFindChar
After f / F / t / T – waiting for the target char.
AfterTextObject
After i<x> / a<x> in operator-pending – waiting for the
text-object key.
Help
While the §5.11 help overlay is active.
AfterCtrlW
After <C-w> – waiting for the window-management
resolution key.
AfterCtrlX
After <C-x> in Insert mode – waiting for the
expansion-prefix resolution key (<C-x><C-o> ->
completion trigger; future siblings: <C-x><C-s>
snippet expand, <C-x><C-f> filename completion).
CompletionPopup
Insert-mode completion popup minor mode (Phase
4.2.g.1). Active only while
App.insert_completion.is_some(). Bindings inside this
layer override Insert-mode + Normal-mode meanings for
the popup’s lifetime; closing the popup deactivates the
layer.
Snippet
Active-snippet minor mode (Phase 4.2.g.4). Active
only while App.active_snippet.is_some(). Bindings
inside this layer override Insert-mode meanings for the
snippet’s lifetime: <Tab> jumps to the next
placeholder (instead of inserting a literal tab),
<S-Tab> to the previous, <Esc> exits the snippet
and Insert mode. Closing the snippet (reaching $0,
pressing <Esc>, or :snippet-leave) deactivates the
layer.
Implementations§
§impl BindingMode
impl BindingMode
pub fn label(self) -> &'static str
pub fn label(self) -> &'static str
Human-readable label used in :describe-key output and diagnostics.
Also the Display form.
§Examples
use lattice_keymap::BindingMode;
assert_eq!(BindingMode::OperatorPending.label(), "Operator-Pending");
assert_eq!(BindingMode::AfterG.to_string(), "After-g");pub fn all() -> &'static [BindingMode]
pub fn all() -> &'static [BindingMode]
The binding modes :describe-key iterates, in declaration order.
Used by KeymapHandle::resolve_trace_all_modes
to walk every mode.
Note: the list currently omits Self::Prompt (23 of the 24
variants), so a chord bound only in the Prompt table is not
reported by the all-modes trace.
§Examples
use lattice_keymap::BindingMode;
assert_eq!(BindingMode::all()[0], BindingMode::Normal);
assert!(BindingMode::all().contains(&BindingMode::Snippet));Trait Implementations§
§impl Clone for BindingMode
impl Clone for BindingMode
§fn clone(&self) -> BindingMode
fn clone(&self) -> BindingMode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for BindingMode
§impl Debug for BindingMode
impl Debug for BindingMode
§impl Display for BindingMode
impl Display for BindingMode
impl Eq for BindingMode
§impl Hash for BindingMode
impl Hash for BindingMode
§impl PartialEq for BindingMode
impl PartialEq for BindingMode
impl StructuralPartialEq for BindingMode
Auto Trait Implementations§
impl Freeze for BindingMode
impl RefUnwindSafe for BindingMode
impl Send for BindingMode
impl Sync for BindingMode
impl Unpin for BindingMode
impl UnsafeUnpin for BindingMode
impl UnwindSafe for BindingMode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.