浏览代码

fastfile: add README

Marc Cornellà 4 年之前
父节点
当前提交
38929084f9
共有 2 个文件被更改,包括 98 次插入25 次删除
  1. 84 0
      plugins/fastfile/README.md
  2. 14 25
      plugins/fastfile/fastfile.plugin.zsh

+ 84 - 0
plugins/fastfile/README.md

@@ -0,0 +1,84 @@
+# 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)

+ 14 - 25
plugins/fastfile/fastfile.plugin.zsh

@@ -1,15 +1,5 @@
-################################################################################
-#          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.
 # If they are not set yet, they will be
@@ -33,7 +23,7 @@ default fastfile_var_prefix "§"
 function fastfile() {
     test "$2" || 2="."
     file=$(readlink -f "$2")
-    
+
     test "$1" || 1="$(basename "$file")"
     name=$(echo "$1" | tr " " "_")
 
@@ -51,7 +41,7 @@ function fastfile() {
 # Arguments:
 #    1. name - The name of the shortcut
 # STDOUT:
-#   The path
+#   The path to the shortcut file
 #
 function fastfile_resolv() {
     echo "${fastfile_dir}${1}"
@@ -88,12 +78,12 @@ function fastfile_print() {
 #    (=> fastfle_print) for each shortcut
 #
 function fastfile_ls() {
-    for f in "${fastfile_dir}"/*; do 
-	file=`basename "$f"` # To enable simpler handeling of spaces in file names
-	varkey=`echo "$file" | tr " " "_"`
+    for f in "${fastfile_dir}"/*; do
+        file=`basename "$f"` # To enable simpler handeling of spaces in file names
+        varkey=`echo "$file" | tr " " "_"`
 
-	# Special format for colums
-	echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")"
+        # Special format for colums
+        echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")"
     done | column -t -s "|"
 }
 
@@ -102,7 +92,6 @@ function fastfile_ls() {
 #
 # Arguments:
 #    1. name - The name of the shortcut (default: name of the file)
-#    2. file - The file or directory to make the shortcut for
 # STDOUT:
 #    => fastfle_print
 #
@@ -115,11 +104,11 @@ function fastfile_rm() {
 # Generate the aliases for the shortcuts
 #
 function fastfile_sync() {
-    for f in "${fastfile_dir}"/*; do 
-	file=`basename "$f"` # To enable simpler handeling of spaces in file names
-	varkey=`echo "$file" | tr " " "_"`
+    for f in "${fastfile_dir}"/*; do
+        file=`basename "$f"` # To enable simpler handeling of spaces in file names
+        varkey=`echo "$file" | tr " " "_"`
 
-	alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'"
+        alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'"
     done
 }
 
@@ -133,6 +122,6 @@ alias ffls=fastfile_ls
 alias ffsync=fastfile_sync
 
 ##################################
-# Init 
+# Init
 
-fastfile_sync
+fastfile_sync