summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2015-07-23 00:56:03 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2015-07-23 00:56:03 +0900
commit13e040baee77d75736f9fbb53f269d5ddc97efb9 (patch)
tree9f22e230cf9d79c8aaf9b9d30ad904f194acdac1
parentcc0d5539ba35b480ae3fb590c562a08637b37064 (diff)
downloadfzf-13e040baee77d75736f9fbb53f269d5ddc97efb9.tar.gz
Bind CTRL-D to the new delete-char/eof action
- CTRL-D - delete-char/eof - DEL - delete-char
-rw-r--r--CHANGELOG.md1
-rw-r--r--man/man1/fzf.13
-rw-r--r--src/options.go2
-rw-r--r--src/terminal.go7
4 files changed, 10 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e3136ee8..3c6ab2cf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ CHANGELOG
- `--header-lines`
- Added `eof` action which closes the finder only when the input is empty
- e.g. `export FZF_DEFAULT_OPTS="--bind esc:eof"`
+- Added `delete-char/eof` action to differentiate `CTRL-D` and `DEL`
### Minor improvements/fixes
diff --git a/man/man1/fzf.1 b/man/man1/fzf.1
index 33db7d50..399bfd47 100644
--- a/man/man1/fzf.1
+++ b/man/man1/fzf.1
@@ -189,7 +189,8 @@ e.g. \fBfzf --bind=ctrl-j:accept,ctrl-k:kill-line\fR
\fBbackward-word\fR \fIalt-b shift-left\fR
\fBbeginning-of-line\fR \fIctrl-a home\fR
\fBclear-screen\fR \fIctrl-l\fR
- \fBdelete-char\fR \fIctrl-d del\fR
+ \fBdelete-char\fR \fIdel\fR
+ \fBdelete-char/eof\fR \fIctrl-d\fR
\fBdeselect-all\fR
\fBdown\fR \fIctrl-j ctrl-n down\fR
\fBend-of-line\fR \fIctrl-e end\fR
diff --git a/src/options.go b/src/options.go
index ad5f6929..bb6da9ec 100644
--- a/src/options.go
+++ b/src/options.go
@@ -497,6 +497,8 @@ func parseKeymap(keymap map[int]actionType, execmap map[int]string, toggleSort b
keymap[key] = actClearScreen
case "delete-char":
keymap[key] = actDeleteChar
+ case "delete-char/eof":
+ keymap[key] = actDeleteCharEof
case "end-of-line":
keymap[key] = actEndOfLine
case "eof":
diff --git a/src/terminal.go b/src/terminal.go
index 6d95d26c..cbc19ba6 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -102,6 +102,7 @@ const (
actBackwardWord
actClearScreen
actDeleteChar
+ actDeleteCharEof
actEndOfLine
actEof
actForwardChar
@@ -137,7 +138,7 @@ func defaultKeymap() map[int]actionType {
keymap[C.CtrlG] = actAbort
keymap[C.CtrlQ] = actAbort
keymap[C.ESC] = actAbort
- keymap[C.CtrlD] = actDeleteChar
+ keymap[C.CtrlD] = actDeleteCharEof
keymap[C.CtrlE] = actEndOfLine
keymap[C.CtrlF] = actForwardChar
keymap[C.CtrlH] = actBackwardDeleteChar
@@ -168,7 +169,7 @@ func defaultKeymap() map[int]actionType {
keymap[C.Home] = actBeginningOfLine
keymap[C.End] = actEndOfLine
- keymap[C.Del] = actDeleteChar // FIXME Del vs. CTRL-D
+ keymap[C.Del] = actDeleteChar
keymap[C.PgUp] = actPageUp
keymap[C.PgDn] = actPageDown
@@ -809,6 +810,8 @@ func (t *Terminal) Loop() {
case actAbort:
req(reqQuit)
case actDeleteChar:
+ t.delChar()
+ case actDeleteCharEof:
if !t.delChar() && t.cx == 0 {
req(reqQuit)
}