aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--share/functions/fish_default_key_bindings.fish1
-rw-r--r--share/functions/fish_vi_key_bindings.fish1
-rw-r--r--src/input.cpp1
-rw-r--r--src/reader.cpp2
4 files changed, 5 insertions, 0 deletions
diff --git a/share/functions/fish_default_key_bindings.fish b/share/functions/fish_default_key_bindings.fish
index 6647e8a6..cac095d3 100644
--- a/share/functions/fish_default_key_bindings.fish
+++ b/share/functions/fish_default_key_bindings.fish
@@ -9,6 +9,7 @@ function fish_default_key_bindings -d "Default (Emacs-like) key bindings for fis
bind $argv "" self-insert
bind $argv \n execute
+ bind $argv \r execute
bind $argv \ck kill-line
bind $argv \cy yank
diff --git a/share/functions/fish_vi_key_bindings.fish b/share/functions/fish_vi_key_bindings.fish
index 53551f0f..98f2ca12 100644
--- a/share/functions/fish_vi_key_bindings.fish
+++ b/share/functions/fish_vi_key_bindings.fish
@@ -38,6 +38,7 @@ function fish_vi_key_bindings --description 'vi-like key bindings for fish'
bind -k right forward-char
bind -k left backward-char
bind -m insert \n execute
+ bind -m insert \r execute
bind -m insert i force-repaint
bind -m insert I beginning-of-line force-repaint
bind -m insert a forward-char force-repaint
diff --git a/src/input.cpp b/src/input.cpp
index e8728662..bc64889e 100644
--- a/src/input.cpp
+++ b/src/input.cpp
@@ -499,6 +499,7 @@ int input_init()
{
input_mapping_add(L"", L"self-insert");
input_mapping_add(L"\n", L"execute");
+ input_mapping_add(L"\r", L"execute");
input_mapping_add(L"\t", L"complete");
input_mapping_add(L"\x3", L"commandline \"\"");
input_mapping_add(L"\x4", L"exit");
diff --git a/src/reader.cpp b/src/reader.cpp
index 63b70283..df196492 100644
--- a/src/reader.cpp
+++ b/src/reader.cpp
@@ -1028,6 +1028,8 @@ void reader_init()
/* Set the mode used for the terminal, initialized to the current mode */
memcpy(&shell_modes, &terminal_mode_on_startup, sizeof shell_modes);
+ shell_modes.c_iflag &= ~ICRNL; /* turn off mapping CR (\cM) to NL (\cJ) */
+ shell_modes.c_iflag &= ~INLCR; /* turn off mapping NL (\cJ) to CR (\cM) */
shell_modes.c_lflag &= ~ICANON; /* turn off canonical mode */
shell_modes.c_lflag &= ~ECHO; /* turn off echo mode */
shell_modes.c_iflag &= ~IXON; /* disable flow control */