libedit: bind M-Enter to newline-insert as well

This commit is contained in:
Přemysl Eric Janouch 2020-10-13 15:55:37 +02:00
parent 0771c142fe
commit b458fc1f99
Signed by: p
GPG Key ID: A0420B94F92B9493
1 changed files with 12 additions and 5 deletions

View File

@ -643,6 +643,15 @@ input_el_on_run_editor (EditLine *editline, int key)
return CC_NORM; return CC_NORM;
} }
static unsigned char
input_el_on_newline_insert (EditLine *editline, int key)
{
(void) key;
el_insertstr (editline, "\n");
return CC_REFRESH;
}
static void static void
input_el_install_prompt (struct input_el *self) input_el_install_prompt (struct input_el *self)
{ {
@ -671,19 +680,17 @@ input_el_start (struct input *input, const char *program_name)
// Just what are you doing? // Just what are you doing?
el_set (self->editline, EL_BIND, "^u", "vi-kill-line-prev", NULL); el_set (self->editline, EL_BIND, "^u", "vi-kill-line-prev", NULL);
// It's probably better to handle this ourselves // It's probably better to handle these ourselves
el_set (self->editline, EL_ADDFN, el_set (self->editline, EL_ADDFN,
"send-line", "Send line", input_el_on_return); "send-line", "Send line", input_el_on_return);
el_set (self->editline, EL_BIND, "\n", "send-line", NULL); el_set (self->editline, EL_BIND, "\n", "send-line", NULL);
// It's probably better to handle this ourselves
el_set (self->editline, EL_ADDFN, el_set (self->editline, EL_ADDFN,
"run-editor", "Run editor to edit line", input_el_on_run_editor); "run-editor", "Run editor to edit line", input_el_on_run_editor);
el_set (self->editline, EL_BIND, "M-e", "run-editor", NULL); el_set (self->editline, EL_BIND, "M-e", "run-editor", NULL);
el_set (self->editline, EL_ADDFN, el_set (self->editline, EL_ADDFN,
"complete", "Complete word", input_el_on_complete); "newline-insert", "Insert a newline", input_el_on_newline_insert);
el_set (self->editline, EL_BIND, "\t", "complete", NULL); el_set (self->editline, EL_BIND, "M-\n", "newline-insert", NULL);
// Source the user's defaults file // Source the user's defaults file
el_source (self->editline, NULL); el_source (self->editline, NULL);