# Pro Tips

### Useful Variables

A lot of Hop’s default behavior can be customized through global variables. Check [full list of variables](https://docs.primeur.com/data-shaper-1.20/knowing-the-data-shaper-designer/variables) to check them all. A couple of useful and often overlooked environment variables can be set (outside of Hop):

* HOP\_AUDIT\_FOLDER\
  Set this variable to a valid path on your machine to store Hop’s audit information. This information includes last opened files per project, zoom size and lots more.
* HOP\_CONFIG\_FOLDER\
  Hop stores your configuration in the `config` folder by default. Set this environment variable to point to a folder outside of your Hop installation to keep your configuration, projects and environment list etc, no matter which Hop version or installation you use.\
  \&#xNAN;*Tip* - copy the contents of an existing `hop/conf` folder to the path set in `HOP_CONFIG_FOLDER` to move the configuration from one of your Hop installations to your new central location.
* HOP\_PLUGIN\_BASE\_FOLDERS\
  Set this variable to point Hop to a comma separated list of folders where you want Hop to look for additional plugins.\
  \&#xNAN;*Important* - When using this variable it will also unset your default plugins folder, make sure to add the default plugin folder to the comma separated list. This can be a relative path to the installation eg. `export HOP_PLUGIN_BASE_FOLDERS=./plugins,/additional/plugin/folder`. The `./plugins` will point to the plugins in the base installation folder
* HOP\_SHARED\_JDBC\_FOLDERS\
  This is a comma separated list of folder containing JDBC drivers, default value is lib/jdbc. If you still need the default jdbc drivers when changing this you need to include the default folder path.
* HOP\_WINDOWS\_SHELL\_ENCODING\
  This variable is for Windows users. It is possible that the shell encoding (the things you see in the CMD window) does not match your system encoding. This can cause confusion when using special characters in logging and Shell Action/transform. You can determine which codepage/encoding your system is using by executing following command in Powershell `[System.Text.Encoding]::Default`. You can then use the value shown at `WindowsCodePage` and set the `HOP_WINDOWS_SHELL_ENCODING` parameter to this value.\
  To set Windows Variables go to System → System Properties → Environment Variables and define this on user or system scope

### Keyboard Shortcuts and Mouse actions

* CTRL-K\
  In any table view in a Hop dialog, select one or more lines and use `CTRL-K` to remove all lines but your selection
* CTRL-SHIFT-Click\
  Hover your mouse pointer over any pipeline action in a workflow, pipeline or workflow executor transform etc and use `CTRL-SHIFT-Click` to open that item in a new tab. The same behavior can be triggered by hovering over an item and hitting the `Z` key.
* Copy as pipeline action\
  In any pipeline or workflow, click anywhere on the canvas and choose 'Copy as pipeline action' or 'Copy as workflow action'. The selected pipeline or workflow can now be pasted (CTRL-V) as a fully configured workflow or pipeline action in any workflow.
* Transform hover + SPACE\
  In a pipeline, hover over any transform and hit `SPACE` to show the list of output fields for the selected transform.
* Action or transform hover + `Z`\
  Hover your mouse pointer over any pipeline action in a workflow, pipeline or workflow executor transform etc and hit the `Z` key to open that item in a new tab. The same behavior can be triggered by hovering over an item and hitting the use `CTRL-SHIFT-Click` key combination.

### Projects and Environments

* Projects can inherit metadata items (e.g. database connections) from parent projects. Use parent projects to reuse metadata items across multiple projects.
* a best practice rather than a pro tip: use project variables only for variables that are valid across all environments. Variable that have different values in different environments should be created on the environment level.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.primeur.com/data-shaper-1.20/knowing-the-data-shaper-designer/index-4.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
