From dca56da0ef8589d6e7d00c5aaa073d9adb2dd650 Mon Sep 17 00:00:00 2001
From: Junegunn Choi <junegunn.c@gmail.com>
Date: Mon, 24 Feb 2020 01:43:19 +0900
Subject: [PATCH] Add 'insert' key for --bind

Close #1744
---
 man/man1/fzf.1   | 4 +++-
 src/options.go   | 2 ++
 src/tui/light.go | 5 ++++-
 src/tui/tcell.go | 2 ++
 src/tui/tui.go   | 1 +
 5 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/man/man1/fzf.1 b/man/man1/fzf.1
index b7060af9..15350cba 100644
--- a/man/man1/fzf.1
+++ b/man/man1/fzf.1
@@ -21,7 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 ..
-.TH fzf 1 "Dec 2019" "fzf 0.20.0" "fzf - a command-line fuzzy finder"
+.TH fzf 1 "Feb 2020" "fzf 0.21.0" "fzf - a command-line fuzzy finder"
 
 .SH NAME
 fzf - a command-line fuzzy finder
@@ -600,6 +600,8 @@ e.g.
 .br
 \fIend\fR
 .br
+\fIinsert\fR
+.br
 \fIpgup\fR        (\fIpage-up\fR)
 .br
 \fIpgdn\fR        (\fIpage-down\fR)
diff --git a/src/options.go b/src/options.go
index 3bbeb1c5..be9ffbcc 100644
--- a/src/options.go
+++ b/src/options.go
@@ -472,6 +472,8 @@ func parseKeyChords(str string, message string) map[int]string {
 			chord = tui.Home
 		case "end":
 			chord = tui.End
+		case "insert":
+			chord = tui.Insert
 		case "pgup", "page-up":
 			chord = tui.PgUp
 		case "pgdn", "page-down":
diff --git a/src/tui/light.go b/src/tui/light.go
index 02f12d0f..05f87e6f 100644
--- a/src/tui/light.go
+++ b/src/tui/light.go
@@ -453,7 +453,10 @@ func (r *LightRenderer) escSequence(sz *int) Event {
 			*sz = 4
 			switch r.buffer[2] {
 			case 50:
-				if len(r.buffer) == 5 && r.buffer[4] == 126 {
+				if r.buffer[3] == 126 {
+					return Event{Insert, 0, nil}
+				}
+				if len(r.buffer) > 4 && r.buffer[4] == 126 {
 					*sz = 5
 					switch r.buffer[3] {
 					case 48:
diff --git a/src/tui/tcell.go b/src/tui/tcell.go
index 339f7dff..79b4944e 100644
--- a/src/tui/tcell.go
+++ b/src/tui/tcell.go
@@ -318,6 +318,8 @@ func (r *FullscreenRenderer) GetChar() Event {
 			}
 			return Event{Right, 0, nil}
 
+		case tcell.KeyInsert:
+			return Event{Insert, 0, nil}
 		case tcell.KeyHome:
 			return Event{Home, 0, nil}
 		case tcell.KeyDelete:
diff --git a/src/tui/tui.go b/src/tui/tui.go
index d4b8562c..179adfd5 100644
--- a/src/tui/tui.go
+++ b/src/tui/tui.go
@@ -66,6 +66,7 @@ const (
 	Right
 	Home
 	End
+	Insert
 
 	SUp
 	SDown
-- 
GitLab