mirror of https://github.com/chzyer/readline.git
Support backward/forward by word with ctrl+<-/->
This commit is contained in:
parent
2972be24d4
commit
2ce07eb6d6
|
@ -1,40 +1,40 @@
|
|||
## Readline Shortcut
|
||||
|
||||
`Meta`+`B` means press `Esc` and `n` separately.
|
||||
Users can change that in terminal simulator(i.e. iTerm2) to `Alt`+`B`
|
||||
`Meta`+`B` means press `Esc` and `n` separately.
|
||||
Users can change that in terminal simulator(i.e. iTerm2) to `Alt`+`B`
|
||||
Notice: `Meta`+`B` is equals with `Alt`+`B` in windows.
|
||||
|
||||
* Shortcut in normal mode
|
||||
|
||||
| Shortcut | Comment |
|
||||
| ------------------ | --------------------------------- |
|
||||
| `Ctrl`+`A` | Beginning of line |
|
||||
| `Ctrl`+`B` / `←` | Backward one character |
|
||||
| `Meta`+`B` | Backward one word |
|
||||
| `Ctrl`+`C` | Send io.EOF |
|
||||
| `Ctrl`+`D` | Delete one character |
|
||||
| `Meta`+`D` | Delete one word |
|
||||
| `Ctrl`+`E` | End of line |
|
||||
| `Ctrl`+`F` / `→` | Forward one character |
|
||||
| `Meta`+`F` | Forward one word |
|
||||
| `Ctrl`+`G` | Cancel |
|
||||
| `Ctrl`+`H` | Delete previous character |
|
||||
| `Ctrl`+`I` / `Tab` | Command line completion |
|
||||
| `Ctrl`+`J` | Line feed |
|
||||
| `Ctrl`+`K` | Cut text to the end of line |
|
||||
| `Ctrl`+`L` | Clear screen |
|
||||
| `Ctrl`+`M` | Same as Enter key |
|
||||
| `Ctrl`+`N` / `↓` | Next line (in history) |
|
||||
| `Ctrl`+`P` / `↑` | Prev line (in history) |
|
||||
| `Ctrl`+`R` | Search backwards in history |
|
||||
| `Ctrl`+`S` | Search forwards in history |
|
||||
| `Ctrl`+`T` | Transpose characters |
|
||||
| `Meta`+`T` | Transpose words (TODO) |
|
||||
| `Ctrl`+`U` | Cut text to the beginning of line |
|
||||
| `Ctrl`+`W` | Cut previous word |
|
||||
| `Backspace` | Delete previous character |
|
||||
| `Meta`+`Backspace` | Cut previous word |
|
||||
| `Enter` | Line feed |
|
||||
| Shortcut | Comment |
|
||||
| ------------------------- | --------------------------------- |
|
||||
| `Ctrl`+`A` | Beginning of line |
|
||||
| `Ctrl`+`B` / `←` | Backward one character |
|
||||
| `Meta`+`B` / `Ctrl`+`←` | Backward one word |
|
||||
| `Ctrl`+`C` | Send io.EOF |
|
||||
| `Ctrl`+`D` | Delete one character |
|
||||
| `Meta`+`D` | Delete one word |
|
||||
| `Ctrl`+`E` | End of line |
|
||||
| `Ctrl`+`F` / `→` | Forward one character |
|
||||
| `Meta`+`F` / `Ctrl`+`→` | Forward one word |
|
||||
| `Ctrl`+`G` | Cancel |
|
||||
| `Ctrl`+`H` | Delete previous character |
|
||||
| `Ctrl`+`I` / `Tab` | Command line completion |
|
||||
| `Ctrl`+`J` | Line feed |
|
||||
| `Ctrl`+`K` | Cut text to the end of line |
|
||||
| `Ctrl`+`L` | Clear screen |
|
||||
| `Ctrl`+`M` | Same as Enter key |
|
||||
| `Ctrl`+`N` / `↓` | Next line (in history) |
|
||||
| `Ctrl`+`P` / `↑` | Prev line (in history) |
|
||||
| `Ctrl`+`R` | Search backwards in history |
|
||||
| `Ctrl`+`S` | Search forwards in history |
|
||||
| `Ctrl`+`T` | Transpose characters |
|
||||
| `Meta`+`T` | Transpose words (TODO) |
|
||||
| `Ctrl`+`U` | Cut text to the beginning of line |
|
||||
| `Ctrl`+`W` | Cut previous word |
|
||||
| `Backspace` | Delete previous character |
|
||||
| `Meta`+`Backspace` | Cut previous word |
|
||||
| `Enter` | Line feed |
|
||||
|
||||
|
||||
* Shortcut in Search Mode (`Ctrl`+`S` or `Ctrl`+`r` to enter this mode)
|
||||
|
@ -59,4 +59,4 @@ Notice: `Meta`+`B` is equals with `Alt`+`B` in windows.
|
|||
| `Ctrl`+`E` | Move to the last candicate in current line |
|
||||
| `Tab` / `Enter` | Use the word on cursor to complete |
|
||||
| `Ctrl`+`C` / `Ctrl`+`G` | Exit Complete Select Mode |
|
||||
| Other | Exit Complete Select Mode |
|
||||
| Other | Exit Complete Select Mode |
|
||||
|
|
12
utils.go
12
utils.go
|
@ -101,9 +101,17 @@ func escapeExKey(key *escapeKeyPair) rune {
|
|||
var r rune
|
||||
switch key.typ {
|
||||
case 'D':
|
||||
r = CharBackward
|
||||
if key.attr == "1;5" {
|
||||
r = MetaBackward
|
||||
} else {
|
||||
r = CharBackward
|
||||
}
|
||||
case 'C':
|
||||
r = CharForward
|
||||
if key.attr == "1;5" {
|
||||
r = MetaForward
|
||||
} else {
|
||||
r = CharForward
|
||||
}
|
||||
case 'A':
|
||||
r = CharPrev
|
||||
case 'B':
|
||||
|
|
Loading…
Reference in New Issue