{"record":{"id":"30607d65a912283f","repo":"helix-editor/helix","slug":"no-command-named","errorCode":null,"errorMessage":"No command named '{}'","messagePattern":"No command named '(.+?)'","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"helix-term/src/commands.rs","lineNumber":680,"sourceCode":"                    };\n                    MappableCommand::Typable {\n                        name: cmd.name.to_owned(),\n                        doc,\n                        args: args.to_string(),\n                    }\n                })\n                .ok_or_else(|| anyhow!(\"No TypableCommand named '{}'\", s))\n        } else if let Some(suffix) = s.strip_prefix('@') {\n            helix_view::input::parse_macro(suffix).map(|keys| Self::Macro {\n                name: s.to_string(),\n                keys,\n            })\n        } else {\n            MappableCommand::STATIC_COMMAND_LIST\n                .iter()\n                .find(|cmd| cmd.name() == s)\n                .cloned()\n                .ok_or_else(|| anyhow!(\"No command named '{}'\", s))\n        }\n    }\n}\n\nimpl<'de> Deserialize<'de> for MappableCommand {\n    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>\n    where\n        D: Deserializer<'de>,\n    {\n        let s = String::deserialize(deserializer)?;\n        s.parse().map_err(de::Error::custom)\n    }\n}\n\nimpl PartialEq for MappableCommand {\n    fn eq(&self, other: &Self) -> bool {\n        match (self, other) {\n            (","sourceCodeStart":662,"sourceCodeEnd":698,"githubUrl":"https://github.com/helix-editor/helix/blob/079a789e8cb08ead67f19e1971a1b7438b37354b/helix-term/src/commands.rs#L662-L698","documentation":"The fallback arm of MappableCommand::from_str: strings with no ':' (typable) or '@' (macro) prefix are looked up in MappableCommand::STATIC_COMMAND_LIST (internal commands like 'move_next_word', 'command_palette'). No exact match returns 'No command named <s>'. Any unknown spelling of a non-colon, non-@ string lands here.","triggerScenarios":"A keymaps value like \"move_next_chsr\" (typo); a typed command written without its ':' prefix (\"w\" or \"write\" instead of \":w\"); a static command that only exists in another helix version.","commonSituations":"Migrating keymaps between helix versions where static commands were renamed; forgetting the ':' prefix; names guessed instead of copied from the command list.","solutions":["If an Ex-style command was intended, add the ':' prefix (\":w\", not \"w\").","Otherwise fix the spelling so it matches a static command name exactly (snake_case identifiers from STATIC_COMMAND_LIST).","Reload config and re-test; a single bad entry can abort the whole keymap load."],"exampleFix":"# before (config.toml)\n[keys.normal]\n\"C-x\" = \"w\"\n# after\n[keys.normal]\n\"C-x\" = \":w\"","handlingStrategy":"validation","validationCode":"// check both branches the parser uses: ':' -> typable, bare -> static\nfn is_valid_binding(s: &str) -> bool {\n    s.parse::<helix_term::commands::MappableCommand>().is_ok()\n}","typeGuard":"fn is_mappable_command(s: &str) -> bool {\n    s.parse::<helix_term::commands::MappableCommand>().is_ok()\n}","tryCatchPattern":"if let Err(err) = entry.parse::<MappableCommand>() {\n    report_config_warning(key, err); // keep loading the rest of the keymap\n}","preventionTips":["Prefix typed commands with ':'; bare words are matched against static commands only.","Copy static command names verbatim from the command list of your helix version."],"tags":["config","keymap","command-parsing"],"backgroundTag":null,"analyzedSha":"079a789e8cb08ead67f19e1971a1b7438b37354b","analyzedAt":"2026-08-16T09:09:59.668Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}