.\" Automatically generated by Pandoc 2.13
.\"
.TH "SETTLE" "1" "" "Settle 0.34.0" "Settle Manual"
.hy
.SH NAME
.PP
settle - note manager for the Zettelkasten method
.SH SYNOPSIS
.PP
\f[I]settle\f[R] <command> [<args>]
.PD 0
.P
.PD
\f[I]settle\f[R] [-h | --help | -V | --version]
.SH DESCRIPTION
.PP
Settle is a Zettelkasten note manager.
All notes are written in Markdown and are stored locally.
.PP
As of v0.26.0, Settle no longer supports editing a file directly.
Therefore, you\[cq]re probably going to want to use (or write) a plugin
for your favourite editor, such as
settle.vim (https://github.com/xylous/settle.vim) for Vim and Neovim.
.PP
Wiki-style links (such as \f[C][[Neurons]]\f[R], which would redirect
you to a Zettel titled \[lq]Neurons\[rq]) are used to denote links
between Zettel.
Tags are denoted with hashtags, e.g.\ \f[C]#psychology\f[R].
Subtags/hierarchical tags, such as \f[C]#biology/anatomy/humans\f[R] are
supported, if you want to stay more organised.
.SH OPTIONS
.TP
-h, --help
Print usage information
.TP
-V, --version
Print version information
.SH COMMANDS
.TP
\f[I]help\f[R]
Print usage information broadly or, if a subcommand is given, usage
information for said subcommand
.TP
\f[I]compl\f[R]
Generate autocompletion file for a certain shell (currently supported:
zsh, bash, fish) (see: section on autocompletion)
.TP
\f[I]generate\f[R]
Create and populate the database with all Zettel\[cq]s metadata
.TP
\f[I]ls\f[R]
List existing files in Zettelkasten, based on database info
.TP
\f[I]new\f[R]
Create a new Zettel and add its metadata to the database, but don\[cq]t
overwrite; if the file exists and the metadata entry also exists, abort
.RS
.PP
If you toggle the -i or --inbox option, the created file will be in the
inbox directory
.RE
.TP
\f[I]update\f[R]
Update the metadata for a given path.
If the path isn\[cq]t a file or doesn\[cq]t exist, print an error
message.
.TP
\f[I]query\f[R]
Return existing Zettel matching the pattern provided as argument
.TP
\f[I]ghost\f[R]
Print a list of Zettel that have links pointing to them, but haven\[cq]t
been created
.TP
\f[I]tags\f[R]
List all unique tags used in Zettelkasten
.TP
\f[I]find\f[R]
Search for Zettel that have the specified tag
.TP
\f[I]links\f[R]
Print the Zettel that match the query provided and the forward links
they contain
.TP
\f[I]backlinks\f[R]
Print the Zettel (plural) that match the query provided and the Zettel
(also plural) that have links pointing to them
.TP
\f[I]search\f[R]
Return a list of Zettel that contain the specified text
.TP
\f[I]zk\f[R]
Print the absolute path to the directory Settle uses
.SH CONFIGURATION
.TP
zettelkasten
Path to Zettelkasten
.RS
.PP
If you don\[cq]t specify an absolute path, e.g.\ \f[C]notes\f[R],
it\[cq]s assumed you want your Zettelkasten to be at
\f[C]\[ti]/notes\f[R].
You can also use paths containing environment variables or paths
starting with a tilde (\f[C]\[ti]\f[R])
.RE
.TP
db_file
Database file Settle uses
.TP
template
Path to Zettel template
.RS
.PP
If empty, or if the path is invalid, then templates won\[cq]t be used.
You can use paths containing environment variables, or a leading tilde
(\f[C]\[ti]\f[R]).
.RE
.SH TEMPLATES
.PP
Template files are used when creating new Zettel.
The text they contain gets put inside said new note, replacing
variables.
.SS Placeholders
.TP
\f[B]\f[CB]${TITLE}\f[B]\f[R]
placeholder for the actual title
.SS Example template
.IP
.nf
\f[C]
# ${TITLE}
### References
\f[R]
.fi
.SH FILES
.PP
The configuration file is at either
\f[C]$XDG_CONFIG_HOME/settle/settle.yaml\f[R], if
\f[C]$XDG_CONFIG_HOME\f[R] is set, either
\f[C]\[ti]/.config/settle/settle.yaml\f[R], by default.
.SH WILDCARDS
.PP
Settle supports two wildcards that\[cq]ll come in very handy:
.TP
\f[B]\f[CB]*\f[B]\f[R]
matches zero or more characters
.TP
\f[B]\f[CB].\f[B]\f[R]
matches a single character
.PP
If you want a literal `*', or a literal `.', you\[cq]ll need to escape
the character, i.e.\ `\[rs]*' or `\[rs].'.
If you want a literal backslash, you\[cq]re also going to have to escape
it, i.e.\ `\[rs]\[rs]'.
All other text is matched literally.
.SH AUTOCOMPLETION
.PP
Shell completions can be generated by the user at runtime, by using the
\f[C]compl\f[R] command.
In most cases, you\[cq]ll need to create a directory for user-defined
completions, then add \f[C]settle\f[R]\[cq]s output to it.
.PP
If you want XDG compliance, you probably know what you\[cq]re doing, so
just replace a few things here and there.
.SS bash
.PP
Add the following text to the \f[C]\[ti]/.bash_completion\f[R] file:
.IP
.nf
\f[C]
for comp_file in \[ti]/.bash_completion.d/*; do
[[ -f \[dq]${comp_file}\[dq] ]] && . \[dq]${comp_file}\[dq]
done
\f[R]
.fi
.PP
And then run the following commands:
.IP
.nf
\f[C]
mkdir \[ti]/.bash_completion.d
settle compl bash >\[ti]/.bash_completion.d/settle
\f[R]
.fi
.SS zsh
.PP
In your terminal, run:
.IP
.nf
\f[C]
mkdir \[ti]/.zsh_completion.d
settle compl zsh >\[ti]/zsh_completion.d/_settle
\f[R]
.fi
.PP
Then add this line in your zshrc:
.IP
.nf
\f[C]
fpath=(${HOME}/.zsh_completion.d $fpath)
\f[R]
.fi
.SS fish
.PP
Run the following commands:
.IP
.nf
\f[C]
mkdir -p \[ti]/.config/fish/completions
settle compl fish >\[ti]/.config/fish/completions/settle.fish
\f[R]
.fi
.SH AUTHORS
.PP
xylous <xylous.e\[at]gmail.com>