diff options
author | Shundeev Egor <shundeevegor@gmail.com> | 2021-01-05 19:46:05 +0300 |
---|---|---|
committer | Marc Cornellà <hello@mcornella.com> | 2021-12-28 18:53:48 +0100 |
commit | 79cf2a0d43ddda338487c85c420f67fe9c56687f (patch) | |
tree | de2f83507e134d927eaed098e18095d2b8d88517 /plugins/fastfile | |
parent | 0613232202b92349cee79804fc46e0495152ef12 (diff) | |
download | zsh-79cf2a0d43ddda338487c85c420f67fe9c56687f.tar.gz zsh-79cf2a0d43ddda338487c85c420f67fe9c56687f.tar.bz2 zsh-79cf2a0d43ddda338487c85c420f67fe9c56687f.zip |
fix(fastfile): fix multiple bugs in plugin (#9574)
- `fastfile_sync` didn't correctly create the aliases
- `fastfile_rm` didn't correctly remove the alias
Fixes #9151
Closes #9574
Diffstat (limited to 'plugins/fastfile')
-rw-r--r-- | plugins/fastfile/README.md | 13 | ||||
-rw-r--r-- | plugins/fastfile/fastfile.plugin.zsh | 15 |
2 files changed, 15 insertions, 13 deletions
diff --git a/plugins/fastfile/README.md b/plugins/fastfile/README.md index 37f5b2f53..32f619ffd 100644 --- a/plugins/fastfile/README.md +++ b/plugins/fastfile/README.md @@ -4,6 +4,7 @@ This plugin adds a way to reference certain files or folders used frequently usi a global alias or shortcut. To use it, add `fastfile` to the plugins array in your zshrc file: + ```zsh plugins=(... fastfile) ``` @@ -13,36 +14,38 @@ plugins=(... fastfile) Example: you access folder `/code/project/backend/database` very frequently. First, generate a shortcut with the name `pjdb`: + ```zsh $ fastfile pjdb /code/project/backend/database ``` Next time you want to access it, use `§pjdb`. For example: + ```zsh $ cd §pjdb $ subl §pjdb ``` + where § is the fastfile prefix (see [below](#options) for how to change). **Note:** shortcuts with spaces in the name are assigned a global alias where the spaces have been substituted with underscores (`_`). For example: a shortcut named `"hello world"` corresponds with `§hello_world`. - ## Functions -- `fastfile <shortcut_name> <path/to/file/or/folder>`: generate a shortcut. +- `fastfile <shortcut_name> [path/to/file/or/folder]`: generate a shortcut. + If the second argument is not provided, the current directory is used. - `fastfile_print <shortcut_name>`: prints a shortcut, with the format `<prefix><shortcut_name> -> <shortcut_path>`. - `fastfile_ls`: lists all shortcuts. -- `fastfile_rm <shortcut_name> `: remove a shortcut. +- `fastfile_rm <shortcut_name>`: remove a shortcut. - `fastfile_sync`: generates the global aliases for the shortcuts. - ### Internal functions - `fastfile_resolv <shortcut_name>`: resolves the location of the shortcut @@ -51,7 +54,6 @@ a shortcut named `"hello world"` corresponds with `§hello_world`. - `fastfile_get <shortcut_name>`: get the real path of the shortcut. - ## Aliases | Alias | Function | @@ -62,7 +64,6 @@ a shortcut named `"hello world"` corresponds with `§hello_world`. | ffls | `fastfile_ls` | | ffsync | `fastfile_sync` | - ## Options These are options you can set to change certain parts of the plugin. To change diff --git a/plugins/fastfile/fastfile.plugin.zsh b/plugins/fastfile/fastfile.plugin.zsh index 6288bb275..896fed5f7 100644 --- a/plugins/fastfile/fastfile.plugin.zsh +++ b/plugins/fastfile/fastfile.plugin.zsh @@ -44,7 +44,7 @@ function fastfile() { # The path to the shortcut file # function fastfile_resolv() { - echo "${fastfile_dir}${1}" + echo "${fastfile_dir}/${1}" } # @@ -78,9 +78,9 @@ function fastfile_print() { # (=> fastfile_print) for each shortcut # function fastfile_ls() { - for f in "${fastfile_dir}"/*(NF); do - file=`basename "$f"` # To enable simpler handling of spaces in file names - varkey=`echo "$file" | tr " " "_"` + for f in "${fastfile_dir}"/*(N); do + file=$(basename "$f") # To enable simpler handling of spaces in file names + varkey=$(echo "$file" | tr " " "_") # Special format for columns echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")" @@ -98,15 +98,16 @@ function fastfile_ls() { function fastfile_rm() { fastfile_print "$1" rm "$(fastfile_resolv "$1")" + unalias "${fastfile_var_prefix}${1}" } # # Generate the aliases for the shortcuts # function fastfile_sync() { - for f in "${fastfile_dir}"/*(NF); do - file=`basename "$f"` # To enable simpler handling of spaces in file names - varkey=`echo "$file" | tr " " "_"` + for f in "${fastfile_dir}"/*(N); do + file=$(basename "$f") # To enable simpler handling of spaces in file names + varkey=$(echo "$file" | tr " " "_") alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'" done |