This repository has been archived on 2022-03-28. You can view files and clone it, but cannot push or open issues or pull requests.
prezto/modules/prompt
2012-09-25 00:54:49 -04:00
..
functions [Fix #290] Add fish shell style PWD to sorin theme 2012-09-25 00:54:49 -04:00
init.zsh [Fix #197] Rebrand as Prezto 2012-09-03 16:51:27 -04:00
README.md [Fix #261] Add documentation for writing prompt themes 2012-09-10 15:58:55 -04:00

Prompt

Loads prompt themes.

Settings

To select a prompt theme, add the following to zpreztorc, and replace name with the name of the theme you wish to load. Setting it to random will load a random theme.

zstyle ':prezto:module:prompt' theme 'name'

Theming

A prompt theme is an autoloadable function file with a special name, prompt_name_setup, placed anywhere in $fpath, but for the purpose of this project, themes should be placed in the modules/prompt/functions directory.

Theme Functions

There are three theme functions, a setup function, a help function, and a preview function. The setup function must always be defined. The help function and the preview functions are optional.

prompt_name_setup

This function is called by the prompt function to install the theme. This function may define other functions as necessary to maintain the prompt, including a function that displays help or a function used to preview it.

Do not call this function directly.

The most basic example of this function can be seen bellow.

function prompt_name_setup {
  PROMPT='%m%# '
  RPROMPT=''
}

prompt_name_help

If the prompt_name_setup function is customizable via parameters, a help function should be defined. The user will access it via prompt -h name.

The most basic example of this function can be seen bellow.

function prompt_name_help {
  cat <<EOH
This prompt is color-scheme-able. You can invoke it thus:

  prompt theme [<color1>] [<color2>]

where the color is for the left-hand prompt.
EOH
}

prompt_name_preview

If the prompt_name_setup function is customizable via parameters, a preview function should be defined. The user will access it via prompt -p name.

The most basic example of this function can be seen bellow.

function prompt_name_preview {
  if (( $# > 0 )); then
    prompt_preview_theme theme "$@"
  else
    prompt_preview_theme theme red green blue
    print
    prompt_preview_theme theme yellow magenta black
  fi
}

Hook Functions

There are many Zsh hook functions, but mostly the precmd hook will be used.

prompt_name_precmd

This hook is called before the prompt is displayed and is useful for getting information to display in a prompt.

When calling functions to get information to display in a prompt, do not assume that all the dependencies have been loaded. Always check for the availability of a function before you calling it.

Do not register hook functions. They will be registered by the prompt function.

The most basic example of this function can be seen bellow.

function prompt_name_precmd {
  if (( $+functions[git-info] )); then
    git-info
  fi
}

Authors

The authors of this module should be contacted via the issue tracker.