diff --git a/src/fish.cpp b/src/fish.cpp index e4560e63d..74b32626a 100644 --- a/src/fish.cpp +++ b/src/fish.cpp @@ -512,6 +512,16 @@ int main(int argc, char **argv) { if (!opts.no_exec && !opts.no_config) { read_init(parser, paths); } + + if (opts.is_interactive_session && opts.no_config && !opts.no_exec) { + // If we have no config, we default to the default key bindings. + parser.vars().set_one(L"fish_key_bindings", ENV_UNEXPORT, L"fish_default_key_bindings"); + if (function_exists(L"fish_default_key_bindings", parser)) { + std::vector cmd {"fish_default_key_bindings"}; + run_command_list(parser, &cmd, {}); + } + } + // Re-read the terminal modes after config, it might have changed them. term_copy_modes();