1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-08-13 22:12:50 +02:00

Updated terminal readme

This commit is contained in:
Laurent Cozic
2018-02-16 23:08:04 +00:00
parent e4d477fb4c
commit baa9ca7ea3
3 changed files with 228 additions and 98 deletions

View File

@@ -35,7 +35,7 @@ To start it, type `demo-joplin`.
# Usage # Usage
To start the application type `joplin`. This will open the user interface, which has three main panes: Notebooks, Notes and the text of the current note. There are also additional panels that can be toggled on and off via [shortcuts](#available-shortcuts). To start the application type `joplin`. This will open the user interface, which has three main panes: Notebooks, Notes and the text of the current note. There are also additional panels that can be toggled on and off via [shortcuts](#shortcuts).
<img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/ScreenshotTerminalCaptions.png" height="450px"> <img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/ScreenshotTerminalCaptions.png" height="450px">
@@ -45,11 +45,11 @@ Joplin user interface is partly based on the text editor Vim and offers two diff
### Normal mode ### Normal mode
Allows moving from one pane to another using the `Tab` and `Shift-Tab` keys, and to select/view notes using the arrow keys. Text area can be scrolled using the arrow keys too. Press `Enter` to edit a note. Various other [shortcuts](#available-shortcuts) are available. Allows moving from one pane to another using the `Tab` and `Shift-Tab` keys, and to select/view notes using the arrow keys. Text area can be scrolled using the arrow keys too. Press `Enter` to edit a note. Various other [shortcuts](#shortcuts) are available.
### Command-line mode ### Command-line mode
Press `:` to enter command line mode. From there, the Joplin commands such as `mknote` or `search` are available. See the [full list of commands](#available-commands). Press `:` to enter command line mode. From there, the Joplin commands such as `mknote` or `search` are available. See the [full list of commands](#commands).
It is possible to refer to a note or notebook by title or ID. However the simplest way is to refer to the currently selected item using one of these shortcuts: It is possible to refer to a note or notebook by title or ID. However the simplest way is to refer to the currently selected item using one of these shortcuts:
@@ -175,7 +175,7 @@ Give a new title to the note:
$ joplin set fe889 title "New title" $ joplin set fe889 title "New title"
# Available shortcuts # Shortcuts
There are two types of shortcuts: those that manipulate the user interface directly, such as `TAB` to move from one pane to another, and those that are simply shortcuts to actual commands. In a way similar to Vim, these shortcuts are generally a verb followed by an object. For example, typing `mn` ([m]ake [n]ote), is used to create a new note: it will switch the interface to command line mode and pre-fill it with `mknote ""` from where the title of the note can be entered. See below for the full list of default shortcuts: There are two types of shortcuts: those that manipulate the user interface directly, such as `TAB` to move from one pane to another, and those that are simply shortcuts to actual commands. In a way similar to Vim, these shortcuts are generally a verb followed by an object. For example, typing `mn` ([m]ake [n]ote), is used to create a new note: it will switch the interface to command line mode and pre-fill it with `mknote ""` from where the title of the note can be entered. See below for the full list of default shortcuts:
@@ -200,32 +200,7 @@ There are two types of shortcuts: those that manipulate the user interface direc
Shortcut can be configured by adding a file `keymap.json` to the profile directory. The content of this file is a JSON array with each entry defining a command and the keys associated with it. Shortcut can be configured by adding a file `keymap.json` to the profile directory. The content of this file is a JSON array with each entry defining a command and the keys associated with it.
Each entry can have the following properties: As an example, this is the default keymap, but read below for a detailed explanation of each property.
Name | Description
-----|------------
`keys` | The array of keys that will trigger the action. Special keys such as page up, down arrow, etc. needs to be specified UPPERCASE. See the [list of available special keys](https://github.com/cronvel/terminal-kit/blob/3114206a9556f518cc63abbcb3d188fe1995100d/lib/termconfig/xterm.js#L531). For example, `['DELETE', 'BACKSPACE']` means the command will run if the user pressed either the delete or backspace key. Key combinations can also be provided - in that case specify them lowercase. For example "tc" means that the command will be executed when the user pressed "t" then "c". Special keys can also be used in this fashion - simply write them one after the other. For instance, `CTRL_WCTRL_W` means the action would be executed if the user pressed "ctrl-w ctrl-w".
`type` | The command type. It can have the value "exec", "function" or "prompt". **exec**: Simply execute the provided command. For example `edit $n` would edit the selected note. **function**: Run a special commands (see below for the list of function. **prompt**: A bit similar to "exec", except that the command is not going to be executed immediately - this allows the user to provide additional data. For example `mknote ""` would fill the command line with this command and allow the user to set the title. A prompt command can also take a `cursorPosition` parameter (see below)
`command` | The command that needs to be executed
`cusorPosition` | An integer. For prompt commands, tells where the cursor (caret) should start at. This is convenient for example to position the cursor between quotes. Use a negative value to set a position starting from the end.
This is the list of available functions:
Name | Description
-----|------------
enter_command_line_mode | Enter command line mode
focus_next | Focus next pane (or widget)
focus_previous | Focus previous pane (or widget)
move_up | Move up (in a list for example)
move_down | Move down (in a list for example)
page_up | Page up
page_down | Page down
activate | Activates the selected item. If the item is a note for example it will be open in the editor
delete | Deletes the selected item
toggle_console | Toggle the console
toggle_metadata | Toggle note metadata
As an example, this is the default keymap:
```json ```json
[ [
@@ -250,7 +225,32 @@ As an example, this is the default keymap:
] ]
``` ```
# Available commands Each entry can have the following properties:
Name | Description
-----|------------
`keys` | The array of keys that will trigger the action. Special keys such as page up, down arrow, etc. needs to be specified UPPERCASE. See the [list of available special keys](https://github.com/cronvel/terminal-kit/blob/3114206a9556f518cc63abbcb3d188fe1995100d/lib/termconfig/xterm.js#L531). For example, `['DELETE', 'BACKSPACE']` means the command will run if the user pressed either the delete or backspace key. Key combinations can also be provided - in that case specify them lowercase. For example "tc" means that the command will be executed when the user pressed "t" then "c". Special keys can also be used in this fashion - simply write them one after the other. For instance, `CTRL_WCTRL_W` means the action would be executed if the user pressed "ctrl-w ctrl-w".
`type` | The command type. It can have the value "exec", "function" or "prompt". **exec**: Simply execute the provided [command](#commands). For example `edit $n` would edit the selected note. **function**: Run a special commands (see below for the list of functions). **prompt**: A bit similar to "exec", except that the command is not going to be executed immediately - this allows the user to provide additional data. For example `mknote ""` would fill the command line with this command and allow the user to set the title. A prompt command can also take a `cursorPosition` parameter (see below)
`command` | The command that needs to be executed
`cusorPosition` | An integer. For prompt commands, tells where the cursor (caret) should start at. This is convenient for example to position the cursor between quotes. Use a negative value to set a position starting from the end. A value of "0" means positioning the caret at the first character. A value of "-1" means positioning it at the end.
This is the list of special functions:
Name | Description
-----|------------
enter_command_line_mode | Enter command line mode
focus_next | Focus next pane (or widget)
focus_previous | Focus previous pane (or widget)
move_up | Move up (in a list for example)
move_down | Move down (in a list for example)
page_up | Page up
page_down | Page down
activate | Activates the selected item. If the item is a note for example it will be open in the editor
delete | Deletes the selected item
toggle_console | Toggle the console
toggle_metadata | Toggle note metadata
# Commands
The following commands are available in [command-line mode](#command-line-mode): The following commands are available in [command-line mode](#command-line-mode):
@@ -258,6 +258,12 @@ The following commands are available in [command-line mode](#command-line-mode):
Attaches the given file to the note. Attaches the given file to the note.
cat <note>
Displays the given note.
-v, --verbose Displays the complete information about note.
config [name] [value] config [name] [value]
Gets or sets a config value. If [value] is not provided, it will show the Gets or sets a config value. If [value] is not provided, it will show the
@@ -268,11 +274,6 @@ The following commands are available in [command-line mode](#command-line-mode):
Possible keys/values: Possible keys/values:
sync.2.path File system synchronisation target directory.
The path to synchronise with when file system
synchronisation is enabled. See `sync.target`.
Type: string.
editor Text editor. editor Text editor.
The editor that will be used to open a note. If The editor that will be used to open a note. If
none is provided it will try to auto-detect the none is provided it will try to auto-detect the
@@ -281,8 +282,12 @@ The following commands are available in [command-line mode](#command-line-mode):
locale Language. locale Language.
Type: Enum. Type: Enum.
Possible values: en_GB (English), es_CR (Español), Possible values: en_GB (English), de_DE (Deutsch),
fr_FR (Français). es_CR (Español (Costa Rica)), es_ES (Español), eu
(Basque), fr_FR (Français), hr_HR (Croatian), it_IT
(Italiano), ja_JP (日本語), nl_BE (Nederlands), pt_BR
(Português (Brasil)), ru_RU (Русский), zh_CN (中文
(简体)).
Default: "en_GB" Default: "en_GB"
dateFormat Date format. dateFormat Date format.
@@ -313,13 +318,37 @@ The following commands are available in [command-line mode](#command-line-mode):
Default: 300 Default: 300
sync.target Synchronisation target. sync.target Synchronisation target.
The target to synchonise to. If synchronising with The target to synchonise to. Each sync target may
the file system, set `sync.2.path` to specify the have additional parameters which are named as
target directory. `sync.NUM.NAME` (all documented below).
Type: Enum. Type: Enum.
Possible values: 2 (File system), 3 (OneDrive), 4 Possible values: 2 (File system), 3 (OneDrive), 4
(OneDrive Dev (For testing only)). (OneDrive Dev (For testing only)), 5 (Nextcloud), 6
(WebDAV).
Default: 3 Default: 3
sync.2.path Directory to synchronise with (absolute path).
The path to synchronise with when file system
synchronisation is enabled. See `sync.target`.
Type: string.
sync.5.path Nexcloud WebDAV URL.
Type: string.
sync.5.username Nexcloud username.
Type: string.
sync.5.password Nexcloud password.
Type: string.
sync.6.path WebDAV URL.
Type: string.
sync.6.username WebDAV username.
Type: string.
sync.6.password WebDAV password.
Type: string.
cp <note> [notebook] cp <note> [notebook]
@@ -330,13 +359,36 @@ The following commands are available in [command-line mode](#command-line-mode):
Marks a to-do as done. Marks a to-do as done.
e2ee <command> [path]
Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`,
`status` and `target-status`.
-p, --password <password> Use this password as master password (For
security reasons, it is not recommended to use
this option).
-v, --verbose More verbose output for the `target-status`
command
edit <note> edit <note>
Edit note. Edit note.
exit encrypt-config <command>
Exits the application. Manages encryption configuration.
-p, --password <password> Use this password as master password (For
security reasons, it is not recommended to use
this option).
encryption <command>
Manages encryption configuration.
-p, --password <password> Use this password as master password (For
security reasons, it is not recommended to use
this option).
export <directory> export <directory>
@@ -392,9 +444,18 @@ The following commands are available in [command-line mode](#command-line-mode):
-f, --force Deletes the notes without asking for confirmation. -f, --force Deletes the notes without asking for confirmation.
search <pattern> [notebook] set <note> <name> [value]
Searches for the given <pattern> in all the notes. Sets the property <name> of the given <note> to the given [value].
Possible properties are:
parent_id (text), title (text), body (text), created_time (int),
updated_time (int), is_conflict (int), latitude (numeric), longitude
(numeric), altitude (numeric), author (text), source_url (text), is_todo
(int), todo_due (int), todo_completed (int), source (text),
source_application (text), application_data (text), order (int),
user_created_time (int), user_updated_time (int), encryption_cipher_text
(text), encryption_applied (int)
status status
@@ -406,7 +467,6 @@ The following commands are available in [command-line mode](#command-line-mode):
--target <target> Sync to provided target (defaults to sync.target config --target <target> Sync to provided target (defaults to sync.target config
value) value)
--random-failures For debugging purposes. Do not use.
tag <tag-command> [tag] [note] tag <tag-command> [tag] [note]
@@ -425,6 +485,11 @@ The following commands are available in [command-line mode](#command-line-mode):
Marks a to-do as non-completed. Marks a to-do as non-completed.
use <notebook>
Switches to [notebook] - all further operations will happen within this
notebook.
version version
Displays version information Displays version information

View File

@@ -392,14 +392,14 @@ $$
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/hr.png" alt=""></td> <td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/hr.png" alt=""></td>
<td>Croatian</td> <td>Croatian</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/hr_HR.po">hr_HR</a></td> <td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/hr_HR.po">hr_HR</a></td>
<td>Hrvoje Mandić <a href="&#x6d;&#x61;&#x69;&#108;&#x74;&#111;&#58;&#116;&#114;&#98;&#x75;&#x68;&#111;&#109;&#x40;&#110;&#101;&#x74;&#x2e;&#104;&#114;">&#116;&#114;&#98;&#x75;&#x68;&#111;&#109;&#x40;&#110;&#101;&#x74;&#x2e;&#104;&#114;</a></td> <td>Hrvoje Mandić <a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#58;&#116;&#114;&#98;&#x75;&#104;&#x6f;&#x6d;&#x40;&#x6e;&#101;&#x74;&#x2e;&#104;&#114;">&#116;&#114;&#98;&#x75;&#104;&#x6f;&#x6d;&#x40;&#x6e;&#101;&#x74;&#x2e;&#104;&#114;</a></td>
<td>71%</td> <td>71%</td>
</tr> </tr>
<tr> <tr>
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/de.png" alt=""></td> <td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/de.png" alt=""></td>
<td>Deutsch</td> <td>Deutsch</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po">de_DE</a></td> <td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po">de_DE</a></td>
<td>Tobias Strobel <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#x3a;&#103;&#105;&#116;&#64;&#x73;&#x74;&#x72;&#111;&#x62;&#101;&#x6c;&#116;&#111;&#x62;&#105;&#97;&#115;&#46;&#x64;&#101;">&#103;&#105;&#116;&#64;&#x73;&#x74;&#x72;&#111;&#x62;&#101;&#x6c;&#116;&#111;&#x62;&#105;&#97;&#115;&#46;&#x64;&#101;</a></td> <td>Tobias Strobel <a href="&#x6d;&#97;&#105;&#108;&#116;&#111;&#58;&#103;&#x69;&#116;&#x40;&#x73;&#116;&#114;&#111;&#x62;&#x65;&#108;&#x74;&#111;&#x62;&#x69;&#97;&#x73;&#46;&#100;&#x65;">&#103;&#x69;&#116;&#x40;&#x73;&#116;&#114;&#111;&#x62;&#x65;&#108;&#x74;&#111;&#x62;&#x69;&#97;&#x73;&#46;&#100;&#x65;</a></td>
<td>90%</td> <td>90%</td>
</tr> </tr>
<tr> <tr>
@@ -413,7 +413,7 @@ $$
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/es.png" alt=""></td> <td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/es.png" alt=""></td>
<td>Español</td> <td>Español</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po">es_ES</a></td> <td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po">es_ES</a></td>
<td>Fernando Martín <a href="&#109;&#97;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#102;&#x40;&#109;&#x72;&#116;&#110;&#x2e;&#101;&#x73;">&#102;&#x40;&#109;&#x72;&#116;&#110;&#x2e;&#101;&#x73;</a></td> <td>Fernando Martín <a href="&#109;&#97;&#x69;&#108;&#x74;&#x6f;&#x3a;&#x66;&#x40;&#109;&#x72;&#x74;&#110;&#46;&#x65;&#115;">&#x66;&#x40;&#109;&#x72;&#x74;&#110;&#46;&#x65;&#115;</a></td>
<td>98%</td> <td>98%</td>
</tr> </tr>
<tr> <tr>
@@ -455,14 +455,14 @@ $$
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/ru.png" alt=""></td> <td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/ru.png" alt=""></td>
<td>Русский</td> <td>Русский</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/ru_RU.po">ru_RU</a></td> <td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/ru_RU.po">ru_RU</a></td>
<td>Artyom Karlov <a href="&#x6d;&#x61;&#x69;&#108;&#x74;&#x6f;&#58;&#x61;&#114;&#x74;&#121;&#111;&#x6d;&#x2e;&#x6b;&#97;&#x72;&#x6c;&#111;&#118;&#64;&#103;&#x6d;&#97;&#105;&#x6c;&#46;&#x63;&#x6f;&#109;">&#x61;&#114;&#x74;&#121;&#111;&#x6d;&#x2e;&#x6b;&#97;&#x72;&#x6c;&#111;&#118;&#64;&#103;&#x6d;&#97;&#105;&#x6c;&#46;&#x63;&#x6f;&#109;</a></td> <td>Artyom Karlov <a href="&#109;&#x61;&#x69;&#108;&#x74;&#111;&#x3a;&#97;&#114;&#116;&#x79;&#111;&#x6d;&#46;&#x6b;&#x61;&#114;&#x6c;&#111;&#118;&#x40;&#103;&#109;&#x61;&#105;&#x6c;&#46;&#99;&#x6f;&#109;">&#97;&#114;&#116;&#x79;&#111;&#x6d;&#46;&#x6b;&#x61;&#114;&#x6c;&#111;&#118;&#x40;&#103;&#109;&#x61;&#105;&#x6c;&#46;&#99;&#x6f;&#109;</a></td>
<td>92%</td> <td>92%</td>
</tr> </tr>
<tr> <tr>
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/cn.png" alt=""></td> <td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/cn.png" alt=""></td>
<td>中文 (简体)</td> <td>中文 (简体)</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/zh_CN.po">zh_CN</a></td> <td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/zh_CN.po">zh_CN</a></td>
<td>RCJacH <a href="&#109;&#x61;&#105;&#x6c;&#116;&#x6f;&#58;&#x52;&#67;&#74;&#x61;&#x63;&#72;&#x40;&#x6f;&#117;&#x74;&#108;&#111;&#x6f;&#x6b;&#46;&#x63;&#x6f;&#x6d;">&#x52;&#67;&#74;&#x61;&#x63;&#72;&#x40;&#x6f;&#117;&#x74;&#108;&#111;&#x6f;&#x6b;&#46;&#x63;&#x6f;&#x6d;</a></td> <td>RCJacH <a href="&#x6d;&#97;&#105;&#x6c;&#x74;&#x6f;&#58;&#x52;&#x43;&#x4a;&#x61;&#x63;&#72;&#x40;&#111;&#x75;&#x74;&#x6c;&#111;&#x6f;&#107;&#x2e;&#x63;&#111;&#109;">&#x52;&#x43;&#x4a;&#x61;&#x63;&#72;&#x40;&#111;&#x75;&#x74;&#x6c;&#111;&#x6f;&#107;&#x2e;&#x63;&#111;&#109;</a></td>
<td>75%</td> <td>75%</td>
</tr> </tr>
<tr> <tr>

View File

@@ -217,14 +217,14 @@ sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin
<pre><code>npm install -g demo-joplin <pre><code>npm install -g demo-joplin
</code></pre><p>To start it, type <code>demo-joplin</code>.</p> </code></pre><p>To start it, type <code>demo-joplin</code>.</p>
<h1 id="usage">Usage</h1> <h1 id="usage">Usage</h1>
<p>To start the application type <code>joplin</code>. This will open the user interface, which has three main panes: Notebooks, Notes and the text of the current note. There are also additional panels that can be toggled on and off via <a href="#available-shortcuts">shortcuts</a>.</p> <p>To start the application type <code>joplin</code>. This will open the user interface, which has three main panes: Notebooks, Notes and the text of the current note. There are also additional panels that can be toggled on and off via <a href="#shortcuts">shortcuts</a>.</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/ScreenshotTerminalCaptions.png" height="450px"></p> <p><img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/ScreenshotTerminalCaptions.png" height="450px"></p>
<h2 id="input-modes">Input modes</h2> <h2 id="input-modes">Input modes</h2>
<p>Joplin user interface is partly based on the text editor Vim and offers two different modes to interact with the notes and notebooks:</p> <p>Joplin user interface is partly based on the text editor Vim and offers two different modes to interact with the notes and notebooks:</p>
<h3 id="normal-mode">Normal mode</h3> <h3 id="normal-mode">Normal mode</h3>
<p>Allows moving from one pane to another using the <code>Tab</code> and <code>Shift-Tab</code> keys, and to select/view notes using the arrow keys. Text area can be scrolled using the arrow keys too. Press <code>Enter</code> to edit a note. Various other <a href="#available-shortcuts">shortcuts</a> are available.</p> <p>Allows moving from one pane to another using the <code>Tab</code> and <code>Shift-Tab</code> keys, and to select/view notes using the arrow keys. Text area can be scrolled using the arrow keys too. Press <code>Enter</code> to edit a note. Various other <a href="#shortcuts">shortcuts</a> are available.</p>
<h3 id="command-line-mode">Command-line mode</h3> <h3 id="command-line-mode">Command-line mode</h3>
<p>Press <code>:</code> to enter command line mode. From there, the Joplin commands such as <code>mknote</code> or <code>search</code> are available. See the <a href="#available-commands">full list of commands</a>.</p> <p>Press <code>:</code> to enter command line mode. From there, the Joplin commands such as <code>mknote</code> or <code>search</code> are available. See the <a href="#commands">full list of commands</a>.</p>
<p>It is possible to refer to a note or notebook by title or ID. However the simplest way is to refer to the currently selected item using one of these shortcuts:</p> <p>It is possible to refer to a note or notebook by title or ID. However the simplest way is to refer to the currently selected item using one of these shortcuts:</p>
<table> <table>
<thead> <thead>
@@ -331,7 +331,7 @@ $ joplin mknote &quot;My note&quot;
fe889 07/12/2017 17:57 My note fe889 07/12/2017 17:57 My note
</code></pre><p>Give a new title to the note:</p> </code></pre><p>Give a new title to the note:</p>
<pre><code>$ joplin set fe889 title &quot;New title&quot; <pre><code>$ joplin set fe889 title &quot;New title&quot;
</code></pre><h1 id="available-shortcuts">Available shortcuts</h1> </code></pre><h1 id="shortcuts">Shortcuts</h1>
<p>There are two types of shortcuts: those that manipulate the user interface directly, such as <code>TAB</code> to move from one pane to another, and those that are simply shortcuts to actual commands. In a way similar to Vim, these shortcuts are generally a verb followed by an object. For example, typing <code>mn</code> ([m]ake [n]ote), is used to create a new note: it will switch the interface to command line mode and pre-fill it with <code>mknote &quot;&quot;</code> from where the title of the note can be entered. See below for the full list of default shortcuts:</p> <p>There are two types of shortcuts: those that manipulate the user interface directly, such as <code>TAB</code> to move from one pane to another, and those that are simply shortcuts to actual commands. In a way similar to Vim, these shortcuts are generally a verb followed by an object. For example, typing <code>mn</code> ([m]ake [n]ote), is used to create a new note: it will switch the interface to command line mode and pre-fill it with <code>mknote &quot;&quot;</code> from where the title of the note can be entered. See below for the full list of default shortcuts:</p>
<pre><code>: enter_command_line_mode <pre><code>: enter_command_line_mode
TAB focus_next TAB focus_next
@@ -352,6 +352,28 @@ mb mkbook &quot;&quot;
yn cp $n &quot;&quot; yn cp $n &quot;&quot;
dn mv $n &quot;&quot; dn mv $n &quot;&quot;
</code></pre><p>Shortcut can be configured by adding a file <code>keymap.json</code> to the profile directory. The content of this file is a JSON array with each entry defining a command and the keys associated with it.</p> </code></pre><p>Shortcut can be configured by adding a file <code>keymap.json</code> to the profile directory. The content of this file is a JSON array with each entry defining a command and the keys associated with it.</p>
<p>As an example, this is the default keymap, but read below for a detailed explanation of each property.</p>
<pre><code class="lang-json">[
{ &quot;keys&quot;: [&quot;:&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;enter_command_line_mode&quot; },
{ &quot;keys&quot;: [&quot;TAB&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;focus_next&quot; },
{ &quot;keys&quot;: [&quot;SHIFT_TAB&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;focus_previous&quot; },
{ &quot;keys&quot;: [&quot;UP&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;move_up&quot; },
{ &quot;keys&quot;: [&quot;DOWN&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;move_down&quot; },
{ &quot;keys&quot;: [&quot;PAGE_UP&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;page_up&quot; },
{ &quot;keys&quot;: [&quot;PAGE_DOWN&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;page_down&quot; },
{ &quot;keys&quot;: [&quot;ENTER&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;activate&quot; },
{ &quot;keys&quot;: [&quot;DELETE&quot;, &quot;BACKSPACE&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;delete&quot; },
{ &quot;keys&quot;: [&quot; &quot;], &quot;command&quot;: &quot;todo toggle $n&quot; },
{ &quot;keys&quot;: [&quot;tc&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;toggle_console&quot; },
{ &quot;keys&quot;: [&quot;tm&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;toggle_metadata&quot; },
{ &quot;keys&quot;: [&quot;/&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;search \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 },
{ &quot;keys&quot;: [&quot;mn&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;mknote \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 },
{ &quot;keys&quot;: [&quot;mt&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;mktodo \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 },
{ &quot;keys&quot;: [&quot;mb&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;mkbook \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 },
{ &quot;keys&quot;: [&quot;yn&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;cp $n \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 },
{ &quot;keys&quot;: [&quot;dn&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;mv $n \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 }
]
</code></pre>
<p>Each entry can have the following properties:</p> <p>Each entry can have the following properties:</p>
<table> <table>
<thead> <thead>
@@ -367,7 +389,7 @@ dn mv $n &quot;&quot;
</tr> </tr>
<tr> <tr>
<td><code>type</code></td> <td><code>type</code></td>
<td>The command type. It can have the value &quot;exec&quot;, &quot;function&quot; or &quot;prompt&quot;. <strong>exec</strong>: Simply execute the provided command. For example <code>edit $n</code> would edit the selected note. <strong>function</strong>: Run a special commands (see below for the list of function. <strong>prompt</strong>: A bit similar to &quot;exec&quot;, except that the command is not going to be executed immediately - this allows the user to provide additional data. For example <code>mknote &quot;&quot;</code> would fill the command line with this command and allow the user to set the title. A prompt command can also take a <code>cursorPosition</code> parameter (see below)</td> <td>The command type. It can have the value &quot;exec&quot;, &quot;function&quot; or &quot;prompt&quot;. <strong>exec</strong>: Simply execute the provided <a href="#commands">command</a>. For example <code>edit $n</code> would edit the selected note. <strong>function</strong>: Run a special commands (see below for the list of functions). <strong>prompt</strong>: A bit similar to &quot;exec&quot;, except that the command is not going to be executed immediately - this allows the user to provide additional data. For example <code>mknote &quot;&quot;</code> would fill the command line with this command and allow the user to set the title. A prompt command can also take a <code>cursorPosition</code> parameter (see below)</td>
</tr> </tr>
<tr> <tr>
<td><code>command</code></td> <td><code>command</code></td>
@@ -375,11 +397,11 @@ dn mv $n &quot;&quot;
</tr> </tr>
<tr> <tr>
<td><code>cusorPosition</code></td> <td><code>cusorPosition</code></td>
<td>An integer. For prompt commands, tells where the cursor (caret) should start at. This is convenient for example to position the cursor between quotes. Use a negative value to set a position starting from the end.</td> <td>An integer. For prompt commands, tells where the cursor (caret) should start at. This is convenient for example to position the cursor between quotes. Use a negative value to set a position starting from the end. A value of &quot;0&quot; means positioning the caret at the first character. A value of &quot;-1&quot; means positioning it at the end.</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<p>This is the list of available functions:</p> <p>This is the list of special functions:</p>
<table> <table>
<thead> <thead>
<tr> <tr>
@@ -434,34 +456,18 @@ dn mv $n &quot;&quot;
</tr> </tr>
</tbody> </tbody>
</table> </table>
<p>As an example, this is the default keymap:</p> <h1 id="commands">Commands</h1>
<pre><code class="lang-json">[
{ &quot;keys&quot;: [&quot;:&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;enter_command_line_mode&quot; },
{ &quot;keys&quot;: [&quot;TAB&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;focus_next&quot; },
{ &quot;keys&quot;: [&quot;SHIFT_TAB&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;focus_previous&quot; },
{ &quot;keys&quot;: [&quot;UP&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;move_up&quot; },
{ &quot;keys&quot;: [&quot;DOWN&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;move_down&quot; },
{ &quot;keys&quot;: [&quot;PAGE_UP&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;page_up&quot; },
{ &quot;keys&quot;: [&quot;PAGE_DOWN&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;page_down&quot; },
{ &quot;keys&quot;: [&quot;ENTER&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;activate&quot; },
{ &quot;keys&quot;: [&quot;DELETE&quot;, &quot;BACKSPACE&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;delete&quot; },
{ &quot;keys&quot;: [&quot; &quot;], &quot;command&quot;: &quot;todo toggle $n&quot; },
{ &quot;keys&quot;: [&quot;tc&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;toggle_console&quot; },
{ &quot;keys&quot;: [&quot;tm&quot;], &quot;type&quot;: &quot;function&quot;, &quot;command&quot;: &quot;toggle_metadata&quot; },
{ &quot;keys&quot;: [&quot;/&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;search \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 },
{ &quot;keys&quot;: [&quot;mn&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;mknote \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 },
{ &quot;keys&quot;: [&quot;mt&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;mktodo \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 },
{ &quot;keys&quot;: [&quot;mb&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;mkbook \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 },
{ &quot;keys&quot;: [&quot;yn&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;cp $n \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 },
{ &quot;keys&quot;: [&quot;dn&quot;], &quot;type&quot;: &quot;prompt&quot;, &quot;command&quot;: &quot;mv $n \&quot;\&quot;&quot;, &quot;cursorPosition&quot;: -2 }
]
</code></pre>
<h1 id="available-commands">Available commands</h1>
<p>The following commands are available in <a href="#command-line-mode">command-line mode</a>:</p> <p>The following commands are available in <a href="#command-line-mode">command-line mode</a>:</p>
<pre><code>attach &lt;note&gt; &lt;file&gt; <pre><code>attach &lt;note&gt; &lt;file&gt;
Attaches the given file to the note. Attaches the given file to the note.
cat &lt;note&gt;
Displays the given note.
-v, --verbose Displays the complete information about note.
config [name] [value] config [name] [value]
Gets or sets a config value. If [value] is not provided, it will show the Gets or sets a config value. If [value] is not provided, it will show the
@@ -472,11 +478,6 @@ config [name] [value]
Possible keys/values: Possible keys/values:
sync.2.path File system synchronisation target directory.
The path to synchronise with when file system
synchronisation is enabled. See `sync.target`.
Type: string.
editor Text editor. editor Text editor.
The editor that will be used to open a note. If The editor that will be used to open a note. If
none is provided it will try to auto-detect the none is provided it will try to auto-detect the
@@ -485,8 +486,12 @@ Possible keys/values:
locale Language. locale Language.
Type: Enum. Type: Enum.
Possible values: en_GB (English), es_CR (Español), Possible values: en_GB (English), de_DE (Deutsch),
fr_FR (Français). es_CR (Español (Costa Rica)), es_ES (Español), eu
(Basque), fr_FR (Français), hr_HR (Croatian), it_IT
(Italiano), ja_JP (日本語), nl_BE (Nederlands), pt_BR
(Português (Brasil)), ru_RU (Русский), zh_CN (中文
(简体)).
Default: &quot;en_GB&quot; Default: &quot;en_GB&quot;
dateFormat Date format. dateFormat Date format.
@@ -517,14 +522,38 @@ Possible keys/values:
Default: 300 Default: 300
sync.target Synchronisation target. sync.target Synchronisation target.
The target to synchonise to. If synchronising with The target to synchonise to. Each sync target may
the file system, set `sync.2.path` to specify the have additional parameters which are named as
target directory. `sync.NUM.NAME` (all documented below).
Type: Enum. Type: Enum.
Possible values: 2 (File system), 3 (OneDrive), 4 Possible values: 2 (File system), 3 (OneDrive), 4
(OneDrive Dev (For testing only)). (OneDrive Dev (For testing only)), 5 (Nextcloud), 6
(WebDAV).
Default: 3 Default: 3
sync.2.path Directory to synchronise with (absolute path).
The path to synchronise with when file system
synchronisation is enabled. See `sync.target`.
Type: string.
sync.5.path Nexcloud WebDAV URL.
Type: string.
sync.5.username Nexcloud username.
Type: string.
sync.5.password Nexcloud password.
Type: string.
sync.6.path WebDAV URL.
Type: string.
sync.6.username WebDAV username.
Type: string.
sync.6.password WebDAV password.
Type: string.
cp &lt;note&gt; [notebook] cp &lt;note&gt; [notebook]
Duplicates the notes matching &lt;note&gt; to [notebook]. If no notebook is Duplicates the notes matching &lt;note&gt; to [notebook]. If no notebook is
@@ -534,13 +563,36 @@ done &lt;note&gt;
Marks a to-do as done. Marks a to-do as done.
e2ee &lt;command&gt; [path]
Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`,
`status` and `target-status`.
-p, --password &lt;password&gt; Use this password as master password (For
security reasons, it is not recommended to use
this option).
-v, --verbose More verbose output for the `target-status`
command
edit &lt;note&gt; edit &lt;note&gt;
Edit note. Edit note.
exit encrypt-config &lt;command&gt;
Exits the application. Manages encryption configuration.
-p, --password &lt;password&gt; Use this password as master password (For
security reasons, it is not recommended to use
this option).
encryption &lt;command&gt;
Manages encryption configuration.
-p, --password &lt;password&gt; Use this password as master password (For
security reasons, it is not recommended to use
this option).
export &lt;directory&gt; export &lt;directory&gt;
@@ -596,9 +648,18 @@ rmnote &lt;note-pattern&gt;
-f, --force Deletes the notes without asking for confirmation. -f, --force Deletes the notes without asking for confirmation.
search &lt;pattern&gt; [notebook] set &lt;note&gt; &lt;name&gt; [value]
Searches for the given &lt;pattern&gt; in all the notes. Sets the property &lt;name&gt; of the given &lt;note&gt; to the given [value].
Possible properties are:
parent_id (text), title (text), body (text), created_time (int),
updated_time (int), is_conflict (int), latitude (numeric), longitude
(numeric), altitude (numeric), author (text), source_url (text), is_todo
(int), todo_due (int), todo_completed (int), source (text),
source_application (text), application_data (text), order (int),
user_created_time (int), user_updated_time (int), encryption_cipher_text
(text), encryption_applied (int)
status status
@@ -610,7 +671,6 @@ sync
--target &lt;target&gt; Sync to provided target (defaults to sync.target config --target &lt;target&gt; Sync to provided target (defaults to sync.target config
value) value)
--random-failures For debugging purposes. Do not use.
tag &lt;tag-command&gt; [tag] [note] tag &lt;tag-command&gt; [tag] [note]
@@ -629,6 +689,11 @@ undone &lt;note&gt;
Marks a to-do as non-completed. Marks a to-do as non-completed.
use &lt;notebook&gt;
Switches to [notebook] - all further operations will happen within this
notebook.
version version
Displays version information Displays version information