Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
79cf2a0d
Unverified
Commit
79cf2a0d
authored
Jan 05, 2021
by
Shundeev Egor
Committed by
Marc Cornellà
Dec 28, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
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
parent
06132322
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
13 deletions
+15
-13
README.md
plugins/fastfile/README.md
+7
-6
fastfile.plugin.zsh
plugins/fastfile/fastfile.plugin.zsh
+8
-7
No files found.
plugins/fastfile/README.md
View file @
79cf2a0d
...
...
@@ -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
...
...
plugins/fastfile/fastfile.plugin.zsh
View file @
79cf2a0d
...
...
@@ -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
}
"
/
*
(
N
F
)
;
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
}
"
/
*
(
N
F
)
;
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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment