feat: add keybind to open current file in editor

Signed-off-by: Wenxuan Zhang <wenxuangm@gmail.com>
This commit is contained in:
Wenxuan Zhang 2023-06-14 21:40:47 +08:00
parent ec1bd21468
commit a0afcefeb6
No known key found for this signature in database
GPG key ID: CCAF35548C65530F
2 changed files with 18 additions and 18 deletions

View file

@ -116,20 +116,21 @@ Install `forgit` in just one click.
### ⌨ Keybinds
| Key | Action |
| :-------------------------------------------: | ------------------------- |
| <kbd>Enter</kbd> | Confirm |
| <kbd>Tab</kbd> | Toggle mark and move down |
| <kbd>Shift</kbd> - <kbd>Tab</kbd> | Toggle mark and move up |
| <kbd>?</kbd> | Toggle preview window |
| <kbd>Alt</kbd> - <kbd>W</kbd> | Toggle preview wrap |
| <kbd>Ctrl</kbd> - <kbd>S</kbd> | Toggle sort |
| <kbd>Ctrl</kbd> - <kbd>R</kbd> | Toggle selection |
| <kbd>Ctrl</kbd> - <kbd>Y</kbd> | Copy commit hash/stash ID*|
| <kbd>Ctrl</kbd> - <kbd>K</kbd> / <kbd>P</kbd> | Selection move up |
| <kbd>Ctrl</kbd> - <kbd>J</kbd> / <kbd>N</kbd> | Selection move down |
| <kbd>Alt</kbd> - <kbd>K</kbd> / <kbd>P</kbd> | Preview move up |
| <kbd>Alt</kbd> - <kbd>J</kbd> / <kbd>N</kbd> | Preview move down |
| Key | Action |
| :-------------------------------------------: | ------------------------------------------- |
| <kbd>Enter</kbd> | Confirm |
| <kbd>Tab</kbd> | Toggle mark and move down |
| <kbd>Shift</kbd> - <kbd>Tab</kbd> | Toggle mark and move up |
| <kbd>?</kbd> | Toggle preview window |
| <kbd>Alt</kbd> - <kbd>W</kbd> | Toggle preview wrap |
| <kbd>Ctrl</kbd> - <kbd>S</kbd> | Toggle sort |
| <kbd>Ctrl</kbd> - <kbd>R</kbd> | Toggle selection |
| <kbd>Ctrl</kbd> - <kbd>Y</kbd> | Copy commit hash/stash ID* |
| <kbd>Ctrl</kbd> - <kbd>K</kbd> / <kbd>P</kbd> | Selection move up |
| <kbd>Ctrl</kbd> - <kbd>J</kbd> / <kbd>N</kbd> | Selection move down |
| <kbd>Alt</kbd> - <kbd>K</kbd> / <kbd>P</kbd> | Preview move up |
| <kbd>Alt</kbd> - <kbd>J</kbd> / <kbd>N</kbd> | Preview move down |
| <kbd>Alt</kbd> - <kbd>E</kbd> | Open file in default editor (when possible) |
\* Available when the selection contains a commit hash or a stash ID.
For linux users `FORGIT_COPY_CMD` should be set to make copy work. Example: `FORGIT_COPY_CMD='xclip -selection clipboard'`.

View file

@ -138,6 +138,7 @@ _forgit_diff() {
$FORGIT_FZF_DEFAULT_OPTS
+m -0 --bind=\"enter:execute($enter_cmd | $_forgit_enter_pager)\"
--preview=\"$preview_cmd\"
--bind=\"alt-e:execute-silent($EDITOR \$\($get_files\) >/dev/tty </dev/tty)\"
$FORGIT_DIFF_FZF_OPTS
--prompt=\"$commits > \"
"
@ -163,10 +164,7 @@ _forgit_add() {
untracked=$(git config --get-color color.status.untracked red)
# NOTE: paths listed by 'git status -su' mixed with quoted and unquoted style
# remove indicators | remove original path for rename case | remove surrounding quotes
extract="
sed 's/^.*] //' |
sed 's/.* -> //' |
sed -e 's/^\\\"//' -e 's/\\\"\$//'"
extract="sed 's/^.*] //' | sed 's/.* -> //' | sed -e 's/^\\\"//' -e 's/\\\"\$//'"
preview="
file=\$(echo {} | $extract)
if (git status -s -- \\\"\$file\\\" | grep '^??') &>/dev/null; then # diff with /dev/null for untracked files
@ -178,6 +176,7 @@ _forgit_add() {
$FORGIT_FZF_DEFAULT_OPTS
-0 -m --nth 2..,..
--preview=\"$preview\"
--bind=\"alt-e:execute-silent($EDITOR \$\(echo {} | $extract\) >/dev/tty </dev/tty)\"
$FORGIT_ADD_FZF_OPTS
"
files=$(git -c color.status=always -c status.relativePaths=true status -su |