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 | 
