summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2020-02-11 19:35:17 +0100
committerMarc Cornellà <marc.cornella@live.com>2020-02-11 19:41:43 +0100
commitbc67a55fe8ff6fce8fdc2c002dbb7159c6008aa0 (patch)
treedb38023fc235d213fea88165314a50e4796f3c42 /plugins
parent9dffb3191d5d87509830bcf5367551c2637827bb (diff)
downloadzsh-bc67a55fe8ff6fce8fdc2c002dbb7159c6008aa0.tar.gz
zsh-bc67a55fe8ff6fce8fdc2c002dbb7159c6008aa0.tar.bz2
zsh-bc67a55fe8ff6fce8fdc2c002dbb7159c6008aa0.zip
jump: fix issues in plugin and document CTRL+G key binding
- Fixes `readlink -e` dependency which isn't supported in macOS (fixes #3235). - Uses native zsh wildcard expansion instead of calls to `ls`. - Prepends commands with `command` and `builtin` to bypass aliases and functions. - Documents CTRL+G key binding to substitute mark name in the command line with the mark path (https://github.com/ohmyzsh/ohmyzsh/pull/2045#issuecomment-22826540).
Diffstat (limited to 'plugins')
-rw-r--r--plugins/jump/README.md12
-rw-r--r--plugins/jump/jump.plugin.zsh21
2 files changed, 20 insertions, 13 deletions
diff --git a/plugins/jump/README.md b/plugins/jump/README.md
index ed6415289..1b0ce68c0 100644
--- a/plugins/jump/README.md
+++ b/plugins/jump/README.md
@@ -17,3 +17,15 @@ plugins=(... jump)
| `mark [mark-name]` | Create a mark with the given name or with the name of the current directory if none is provided |
| `unmark <mark-name>` | Remove the given mark |
| `marks` | List the existing marks and the directories they point to |
+
+## Key bindings
+
+Pressing `CTRL`+`G` substitutes the written mark name for the full path of the mark.
+For example, with a mark named `mymark` pointing to `/path/to/my/mark`:
+```zsh
+$ cp /tmp/file mymark<C-g>
+```
+will become:
+```zsh
+$ cp /tmp/file /path/to/my/mark
+```
diff --git a/plugins/jump/jump.plugin.zsh b/plugins/jump/jump.plugin.zsh
index d161a6da0..4f9134fcd 100644
--- a/plugins/jump/jump.plugin.zsh
+++ b/plugins/jump/jump.plugin.zsh
@@ -9,22 +9,23 @@
export MARKPATH=$HOME/.marks
jump() {
- cd -P "$MARKPATH/$1" 2>/dev/null || {echo "No such mark: $1"; return 1}
+ builtin cd -P "$MARKPATH/$1" 2>/dev/null || {echo "No such mark: $1"; return 1}
}
mark() {
- if [[ ( $# == 0 ) || ( "$1" == "." ) ]]; then
- MARK=$(basename "$PWD")
+ if [[ $# -eq 0 || "$1" = "." ]]; then
+ MARK=${PWD:t}
else
MARK="$1"
fi
- if read -q \?"Mark $PWD as ${MARK}? (y/n) "; then
- mkdir -p "$MARKPATH"; ln -sfn "$PWD" "$MARKPATH/$MARK"
+ if read -q "?Mark $PWD as ${MARK}? (y/n) "; then
+ command mkdir -p "$MARKPATH"
+ command ln -sfn "$PWD" "$MARKPATH/$MARK"
fi
}
unmark() {
- rm -i "$MARKPATH/$1"
+ LANG= command rm -i "$MARKPATH/$1"
}
marks() {
@@ -44,13 +45,7 @@ marks() {
}
_completemarks() {
- if [[ $(ls "${MARKPATH}" | wc -l) -gt 1 ]]; then
- reply=($(ls $MARKPATH/**/*(-) | grep : | sed -E 's/(.*)\/([_a-zA-Z0-9\.\-]*):$/\2/g'))
- else
- if readlink -e "${MARKPATH}"/* &>/dev/null; then
- reply=($(ls "${MARKPATH}"))
- fi
- fi
+ reply=("${MARKPATH}"/*(N:t))
}
compctl -K _completemarks jump
compctl -K _completemarks unmark