Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
38929084
Commit
38929084
authored
Dec 22, 2019
by
Marc Cornellà
Browse files
fastfile: add README
parent
e21fbe7d
Changes
2
Hide whitespace changes
Inline
Side-by-side
plugins/fastfile/README.md
0 → 100644
View file @
38929084
# Fastfile plugin
This plugin adds a way to reference certain files or folders used frequently using
a global alias or shortcut.
To use it, add
`fastfile`
to the plugins array in your zshrc file:
```
zsh
plugins
=(
... fastfile
)
```
## Usage
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_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_sync`
: generates the global aliases for the shortcuts.
### Internal functions
-
`fastfile_resolv <shortcut_name>`
: resolves the location of the shortcut
file, i.e., the file in the fastfile directory where the shortcut path
is stored.
-
`fastfile_get <shortcut_name>`
: get the real path of the shortcut.
## Aliases
| Alias | Function |
|--------|------------------|
| ff |
`fastfile`
|
| ffp |
`fastfile_print`
|
| ffrm |
`fastfile_rm`
|
| ffls |
`fastfile_ls`
|
| ffsync |
`fastfile_sync`
|
## Options
These are options you can set to change certain parts of the plugin. To change
them, add
`<variable>=<value>`
to your zshrc file, before Oh My Zsh is sourced.
For example:
`fastfile_var_prefix='@'`
.
-
`fastfile_var_prefix`
: prefix for the global aliases created. Controls the prefix of the
created global aliases.
**Default:**
`§`
(section sign), easy to type in a german keyboard via the combination
[
`⇧ Shift`+`3`
](
https://en.wikipedia.org/wiki/German_keyboard_layout#/media/File:KB_Germany.svg
)
,
or using
`⌥ Option`
+
`6`
in macOS.
-
`fastfile_dir`
: directory where the fastfile shortcuts are stored. Needs to end
with a trailing slash.
**Default:**
`$HOME/.fastfile/`
.
## Author
-
[
Karolin Varner
](
https://github.com/koraa
)
plugins/fastfile/fastfile.plugin.zsh
View file @
38929084
################################################################################
# FILE: fastfile.plugin.zsh
# DESCRIPTION: oh-my-zsh plugin file.
# AUTHOR: Michael Varner (musikmichael@web.de)
# VERSION: 1.0.0
#
# This plugin adds the ability to on the fly generate and access file shortcuts.
#
################################################################################
###########################
###########################
# Settings
# Settings
# These can be overwritten any time.
# These can be overwritten any time.
# If they are not set yet, they will be
# If they are not set yet, they will be
...
@@ -33,7 +23,7 @@ default fastfile_var_prefix "§"
...
@@ -33,7 +23,7 @@ default fastfile_var_prefix "§"
function
fastfile
()
{
function
fastfile
()
{
test
"
$2
"
||
2
=
"."
test
"
$2
"
||
2
=
"."
file
=
$(
readlink
-f
"
$2
"
)
file
=
$(
readlink
-f
"
$2
"
)
test
"
$1
"
||
1
=
"
$(
basename
"
$file
"
)
"
test
"
$1
"
||
1
=
"
$(
basename
"
$file
"
)
"
name
=
$(
echo
"
$1
"
|
tr
" "
"_"
)
name
=
$(
echo
"
$1
"
|
tr
" "
"_"
)
...
@@ -51,7 +41,7 @@ function fastfile() {
...
@@ -51,7 +41,7 @@ function fastfile() {
# Arguments:
# Arguments:
# 1. name - The name of the shortcut
# 1. name - The name of the shortcut
# STDOUT:
# STDOUT:
# The path
# The path
to the shortcut file
#
#
function
fastfile_resolv
()
{
function
fastfile_resolv
()
{
echo
"
${
fastfile_dir
}${
1
}
"
echo
"
${
fastfile_dir
}${
1
}
"
...
@@ -88,12 +78,12 @@ function fastfile_print() {
...
@@ -88,12 +78,12 @@ function fastfile_print() {
# (=> fastfle_print) for each shortcut
# (=> fastfle_print) for each shortcut
#
#
function
fastfile_ls
()
{
function
fastfile_ls
()
{
for
f
in
"
${
fastfile_dir
}
"
/
*
;
do
for
f
in
"
${
fastfile_dir
}
"
/
*
;
do
file
=
`
basename
"
$f
"
`
# To enable simpler handeling of spaces in file names
file
=
`
basename
"
$f
"
`
# To enable simpler handeling of spaces in file names
varkey
=
`
echo
"
$file
"
|
tr
" "
"_"
`
varkey
=
`
echo
"
$file
"
|
tr
" "
"_"
`
# Special format for colums
# Special format for colums
echo
"
${
fastfile_var_prefix
}${
varkey
}
|->|
$(
fastfile_get
"
$file
"
)
"
echo
"
${
fastfile_var_prefix
}${
varkey
}
|->|
$(
fastfile_get
"
$file
"
)
"
done
| column
-t
-s
"|"
done
| column
-t
-s
"|"
}
}
...
@@ -102,7 +92,6 @@ function fastfile_ls() {
...
@@ -102,7 +92,6 @@ function fastfile_ls() {
#
#
# Arguments:
# Arguments:
# 1. name - The name of the shortcut (default: name of the file)
# 1. name - The name of the shortcut (default: name of the file)
# 2. file - The file or directory to make the shortcut for
# STDOUT:
# STDOUT:
# => fastfle_print
# => fastfle_print
#
#
...
@@ -115,11 +104,11 @@ function fastfile_rm() {
...
@@ -115,11 +104,11 @@ function fastfile_rm() {
# Generate the aliases for the shortcuts
# Generate the aliases for the shortcuts
#
#
function
fastfile_sync
()
{
function
fastfile_sync
()
{
for
f
in
"
${
fastfile_dir
}
"
/
*
;
do
for
f
in
"
${
fastfile_dir
}
"
/
*
;
do
file
=
`
basename
"
$f
"
`
# To enable simpler handeling of spaces in file names
file
=
`
basename
"
$f
"
`
# To enable simpler handeling of spaces in file names
varkey
=
`
echo
"
$file
"
|
tr
" "
"_"
`
varkey
=
`
echo
"
$file
"
|
tr
" "
"_"
`
alias
-g
"
${
fastfile_var_prefix
}${
varkey
}
"
=
"'
$(
fastfile_get
"
$file
"
)
'"
alias
-g
"
${
fastfile_var_prefix
}${
varkey
}
"
=
"'
$(
fastfile_get
"
$file
"
)
'"
done
done
}
}
...
@@ -133,6 +122,6 @@ alias ffls=fastfile_ls
...
@@ -133,6 +122,6 @@ alias ffls=fastfile_ls
alias
ffsync
=
fastfile_sync
alias
ffsync
=
fastfile_sync
##################################
##################################
# Init
# Init
fastfile_sync
fastfile_sync
\ No newline at end of file
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