summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md56
-rw-r--r--doc/clojure.txt185
-rw-r--r--doc/coffee-script.txt8
-rw-r--r--doc/cryptol.txt108
-rw-r--r--doc/dart.txt90
-rw-r--r--doc/dhall.txt43
-rw-r--r--doc/elixir.txt116
-rw-r--r--doc/ft-csv.txt1759
-rw-r--r--doc/ft-gitcommit-plugin.txt25
-rw-r--r--doc/ft-ruby-indent.txt152
-rw-r--r--doc/ft-ruby-omni.txt56
-rw-r--r--doc/ft-ruby-plugin.txt85
-rw-r--r--doc/ft-ruby-syntax.txt123
-rw-r--r--doc/haskell-vim.txt163
-rw-r--r--doc/idris-vim.txt158
-rw-r--r--doc/julia-vim-L2U-table.txt3282
-rw-r--r--doc/julia-vim-L2U.txt405
-rw-r--r--doc/julia-vim.txt399
-rw-r--r--doc/ledger.txt443
-rw-r--r--doc/ocaml.txt16
-rw-r--r--doc/opam.txt22
-rw-r--r--doc/pgsql.txt143
-rw-r--r--doc/ps1.txt68
-rw-r--r--doc/python-syntax.txt124
-rw-r--r--doc/reason.txt24
-rw-r--r--doc/rust.txt490
-rw-r--r--doc/scala.txt137
-rw-r--r--doc/terraform.txt18
-rw-r--r--doc/textile.txt70
-rw-r--r--doc/vim-fsharp.txt210
-rw-r--r--doc/vim-go.txt2706
-rw-r--r--doc/vim-jsonnet.txt104
-rw-r--r--doc/vim-markdown.txt667
-rw-r--r--doc/vim-raml.txt64
-rwxr-xr-xscripts/build4
35 files changed, 12493 insertions, 30 deletions
diff --git a/README.md b/README.md
index c35272a2..d5e066bc 100644
--- a/README.md
+++ b/README.md
@@ -57,20 +57,20 @@ If you need full functionality of any plugin, please use it directly with your p
- [caddyfile](https://github.com/isobit/vim-caddyfile) (syntax, indent, ftplugin)
- [carp](https://github.com/hellerve/carp-vim) (syntax)
- [cjsx](https://github.com/mtscout6/vim-cjsx) (syntax, ftplugin)
-- [clojure](https://github.com/guns/vim-clojure-static) (syntax, indent, autoload, ftplugin)
+- [clojure](https://github.com/guns/vim-clojure-static) (syntax, indent, doc, autoload, ftplugin)
- [cmake](https://github.com/pboettch/vim-cmake-syntax) (syntax, indent)
-- [coffee-script](https://github.com/kchmck/vim-coffee-script) (syntax, indent, compiler, autoload, ftplugin)
+- [coffee-script](https://github.com/kchmck/vim-coffee-script) (syntax, indent, doc, compiler, autoload, ftplugin)
- [cql](https://github.com/elubow/cql-vim) (syntax)
-- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim) (syntax, compiler, ftplugin)
+- [cryptol](https://github.com/victoredwardocallaghan/cryptol.vim) (syntax, doc, compiler, ftplugin)
- [crystal](https://github.com/rhysd/vim-crystal) (syntax, indent, autoload, ftplugin)
-- [csv](https://github.com/chrisbra/csv.vim) (syntax, autoload, ftplugin)
+- [csv](https://github.com/chrisbra/csv.vim) (syntax, doc, autoload, ftplugin)
- [cucumber](https://github.com/tpope/vim-cucumber) (syntax, indent, compiler, ftplugin)
- [cue](https://github.com/mgrabovsky/vim-cuesheet) (syntax)
-- [dart](https://github.com/dart-lang/dart-vim-plugin) (syntax, indent, autoload, ftplugin)
-- [dhall](https://github.com/vmchale/dhall-vim) (syntax, ftplugin)
+- [dart](https://github.com/dart-lang/dart-vim-plugin) (syntax, indent, doc, autoload, ftplugin)
+- [dhall](https://github.com/vmchale/dhall-vim) (syntax, doc, ftplugin)
- [dlang](https://github.com/JesseKPhillips/d.vim) (syntax, indent)
- [dockerfile](https://github.com/ekalinin/Dockerfile.vim) (syntax, indent, ftplugin)
-- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, compiler, autoload, ftplugin)
+- [elixir](https://github.com/elixir-lang/vim-elixir) (syntax, indent, doc, compiler, autoload, ftplugin)
- [elm](https://github.com/andys8/vim-elm-syntax) (syntax, indent)
- [emberscript](https://github.com/yalesov/vim-ember-script) (syntax, indent, ftplugin)
- [emblem](https://github.com/yalesov/vim-emblem) (syntax, indent, ftplugin)
@@ -79,19 +79,19 @@ If you need full functionality of any plugin, please use it directly with your p
- [ferm](https://github.com/vim-scripts/ferm.vim) (syntax)
- [fish](https://github.com/georgewitteman/vim-fish) (syntax, indent, compiler, autoload, ftplugin)
- [flatbuffers](https://github.com/dcharbon/vim-flatbuffers) (syntax)
-- [fsharp](https://github.com/ionide/Ionide-vim) (syntax, indent, autoload)
+- [fsharp](https://github.com/ionide/Ionide-vim) (syntax, indent, doc, autoload)
- [gdscript](https://github.com/calviken/vim-gdscript3) (syntax, indent)
-- [git](https://github.com/tpope/vim-git) (syntax, indent, ftplugin)
+- [git](https://github.com/tpope/vim-git) (syntax, indent, doc, ftplugin)
- [glsl](https://github.com/tikhomirov/vim-glsl) (syntax, indent)
- [gmpl](https://github.com/maelvalais/gmpl.vim) (syntax)
- [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting) (syntax)
-- [go](https://github.com/fatih/vim-go) (syntax, indent, compiler)
+- [go](https://github.com/fatih/vim-go) (syntax, indent, doc, compiler)
- [gradle](https://github.com/tfnico/vim-gradle) (compiler)
- [graphql](https://github.com/jparise/vim-graphql) (syntax, indent, autoload, ftplugin, after)
- [haml](https://github.com/sheerun/vim-haml) (syntax, indent, compiler, ftplugin)
- [handlebars](https://github.com/sheerun/vim-mustache-handlebars) (syntax, indent, ftplugin)
- [haproxy](https://github.com/CH-DanReif/haproxy.vim) (syntax)
-- [haskell](https://github.com/neovimhaskell/haskell-vim) (syntax, indent, ftplugin)
+- [haskell](https://github.com/neovimhaskell/haskell-vim) (syntax, indent, doc, ftplugin)
- [haxe](https://github.com/yaymukund/vim-haxe) (syntax)
- [hcl](https://github.com/b4b4r07/vim-hcl) (syntax, indent, ftplugin)
- [helm](https://github.com/towolf/vim-helm) (syntax)
@@ -99,7 +99,7 @@ If you need full functionality of any plugin, please use it directly with your p
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin)
- [i3](https://github.com/mboughaba/i3config.vim) (syntax, ftplugin)
- [icalendar](https://github.com/chutzpah/icalendar.vim) (syntax)
-- [idris](https://github.com/idris-hackers/idris-vim) (syntax, indent, ftplugin)
+- [idris](https://github.com/idris-hackers/idris-vim) (syntax, indent, doc, ftplugin)
- [ion](https://github.com/vmchale/ion-vim) (syntax, ftplugin)
- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, ftplugin, extras)
- [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax) (syntax, indent)
@@ -107,20 +107,20 @@ If you need full functionality of any plugin, please use it directly with your p
- [jq](https://github.com/vito-c/jq.vim) (syntax, ftplugin)
- [json5](https://github.com/GutenYe/json5.vim) (syntax)
- [json](https://github.com/elzr/vim-json) (syntax, indent, ftplugin)
-- [jsonnet](https://github.com/google/vim-jsonnet) (syntax, autoload, ftplugin)
+- [jsonnet](https://github.com/google/vim-jsonnet) (syntax, doc, autoload, ftplugin)
- [jst](https://github.com/briancollins/vim-jst) (syntax, indent)
- [jsx](https://github.com/MaxMEllon/vim-jsx-pretty) (autoload, after)
-- [julia](https://github.com/JuliaEditorSupport/julia-vim) (syntax, indent, autoload, ftplugin)
+- [julia](https://github.com/JuliaEditorSupport/julia-vim) (syntax, indent, doc, autoload, ftplugin)
- [kotlin](https://github.com/udalov/kotlin-vim) (syntax, indent, ftplugin)
-- [ledger](https://github.com/ledger/vim-ledger) (syntax, indent, compiler, autoload)
+- [ledger](https://github.com/ledger/vim-ledger) (syntax, indent, doc, compiler, autoload)
- [less](https://github.com/groenewege/vim-less) (syntax, indent, ftplugin)
- [lilypond](https://github.com/anowlcalledjosh/vim-lilypond) (syntax, indent, compiler, ftplugin)
- [livescript](https://github.com/gkz/vim-ls) (syntax, indent, compiler, ftplugin)
- [llvm](https://github.com/rhysd/vim-llvm) (syntax, indent, ftplugin)
-- [log](https://github.com/MTDL9/vim-log-highlighting) (syntax)
+- [log](https://github.com/MTDL9/vim-log-highlighting) (syntax, doc)
- [lua](https://github.com/tbastos/vim-lua) (syntax, indent)
- [mako](https://github.com/sophacles/vim-bundle-mako) (syntax, indent, ftplugin)
-- [markdown](https://github.com/plasticboy/vim-markdown) (syntax, indent, ftplugin)
+- [markdown](https://github.com/plasticboy/vim-markdown) (syntax, indent, doc, ftplugin)
- [mathematica](https://github.com/voldikss/vim-mma) (syntax, ftplugin)
- [mdx](https://github.com/jxnblk/vim-mdx-js) (syntax)
- [meson](https://github.com/mesonbuild/meson) (syntax, indent, ftplugin)
@@ -129,38 +129,38 @@ If you need full functionality of any plugin, please use it directly with your p
- [nim](https://github.com/zah/nim.vim) (syntax, indent, compiler, autoload)
- [nix](https://github.com/LnL7/vim-nix) (syntax, indent, compiler, ftplugin)
- [objc](https://github.com/b4winckler/vim-objc) (ftplugin, syntax, indent)
-- [ocaml](https://github.com/rgrinberg/vim-ocaml) (syntax, indent, compiler, ftplugin)
+- [ocaml](https://github.com/rgrinberg/vim-ocaml) (syntax, indent, doc, compiler, ftplugin)
- [octave](https://github.com/McSinyx/vim-octave) (syntax, indent)
- [opencl](https://github.com/petRUShka/vim-opencl) (syntax, indent, ftplugin)
- [perl](https://github.com/vim-perl/vim-perl) (syntax, indent, ftplugin)
-- [pgsql](https://github.com/lifepillar/pgsql.vim) (syntax, indent)
+- [pgsql](https://github.com/lifepillar/pgsql.vim) (syntax, indent, doc)
- [php](https://github.com/StanAngeloff/php.vim) (syntax)
- [plantuml](https://github.com/aklt/plantuml-syntax) (syntax, indent, ftplugin)
- [pony](https://github.com/jakwings/vim-pony) (syntax, indent, autoload, ftplugin)
-- [powershell](https://github.com/PProvost/vim-ps1) (syntax, indent, compiler, ftplugin)
+- [powershell](https://github.com/PProvost/vim-ps1) (syntax, indent, doc, compiler, ftplugin)
- [protobuf](https://github.com/uarun/vim-protobuf) (syntax, indent)
- [pug](https://github.com/digitaltoad/vim-pug) (syntax, indent, ftplugin)
- [puppet](https://github.com/rodjek/vim-puppet) (syntax, indent, autoload, ftplugin, ctags)
- [purescript](https://github.com/purescript-contrib/purescript-vim) (syntax, indent, ftplugin)
- [python-compiler](https://github.com/aliev/vim-compiler-python) (compiler, autoload)
- [python-indent](https://github.com/Vimjas/vim-python-pep8-indent) (indent)
-- [python](https://github.com/vim-python/python-syntax) (syntax)
+- [python](https://github.com/vim-python/python-syntax) (syntax, doc)
- [qmake](https://github.com/artoj/qmake-syntax-vim) (syntax)
- [qml](https://github.com/peterhoeg/vim-qml) (syntax, indent, ftplugin)
- [r-lang](https://github.com/vim-scripts/R.vim) (syntax)
- [racket](https://github.com/wlangstroth/vim-racket) (syntax, indent, ftplugin)
- [ragel](https://github.com/jneen/ragel.vim) (syntax)
- [raku](https://github.com/Raku/vim-raku) (syntax, indent, ftplugin)
-- [raml](https://github.com/IN3D/vim-raml) (syntax, ftplugin)
+- [raml](https://github.com/IN3D/vim-raml) (syntax, doc, ftplugin)
- [razor](https://github.com/adamclerk/vim-razor) (syntax, indent, ftplugin)
-- [reason](https://github.com/reasonml-editor/vim-reason-plus) (syntax, indent)
+- [reason](https://github.com/reasonml-editor/vim-reason-plus) (syntax, indent, doc)
- [requirements](https://github.com/raimon49/requirements.txt.vim) (syntax, autoload)
- [rspec](https://github.com/keith/rspec.vim) (syntax)
- [rst](https://github.com/marshallward/vim-restructuredtext) (syntax, indent, autoload, ftplugin)
-- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin)
-- [rust](https://github.com/rust-lang/rust.vim) (syntax, indent, compiler, autoload, ftplugin, ctags)
+- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, doc, compiler, autoload, ftplugin)
+- [rust](https://github.com/rust-lang/rust.vim) (syntax, indent, doc, compiler, autoload, ftplugin, ctags)
- [sbt](https://github.com/derekwyatt/vim-sbt) (syntax)
-- [scala](https://github.com/derekwyatt/vim-scala) (syntax, indent, compiler, ftplugin, ctags)
+- [scala](https://github.com/derekwyatt/vim-scala) (syntax, indent, doc, compiler, ftplugin, ctags)
- [scss](https://github.com/cakebaker/scss-syntax.vim) (syntax, indent, ftplugin)
- [sh](https://github.com/arzg/vim-sh) (syntax)
- [slim](https://github.com/slim-template/vim-slim) (syntax, indent, ftplugin)
@@ -175,8 +175,8 @@ If you need full functionality of any plugin, please use it directly with your p
- [swift](https://github.com/keith/swift.vim) (syntax, indent, compiler, ftplugin, ctags)
- [sxhkd](https://github.com/baskerville/vim-sxhkdrc) (syntax)
- [systemd](https://github.com/wgwoods/vim-systemd-syntax) (syntax, ftplugin)
-- [terraform](https://github.com/hashivim/vim-terraform) (syntax, indent, autoload, ftplugin)
-- [textile](https://github.com/timcharper/textile.vim) (syntax, ftplugin)
+- [terraform](https://github.com/hashivim/vim-terraform) (syntax, indent, doc, autoload, ftplugin)
+- [textile](https://github.com/timcharper/textile.vim) (syntax, doc, ftplugin)
- [thrift](https://github.com/solarnz/thrift.vim) (syntax)
- [tmux](https://github.com/ericpruitt/tmux.vim) (syntax, ftplugin)
- [toml](https://github.com/cespare/vim-toml) (syntax, ftplugin)
diff --git a/doc/clojure.txt b/doc/clojure.txt
new file mode 100644
index 00000000..07fce86b
--- /dev/null
+++ b/doc/clojure.txt
@@ -0,0 +1,185 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'clojure') == -1
+
+*clojure.txt* Clojure runtime files
+
+INTRODUCTION *clojure-introduction*
+
+Meikel Brandmeyer's excellent Clojure runtime files. Includes syntax, indent,
+ftdetect, and ftplugin scripts.
+
+CLOJURE *ft-clojure-indent* *clojure-indent*
+
+Clojure indentation differs somewhat from traditional Lisps, due in part to
+the use of square and curly brackets, and otherwise by community convention.
+These conventions are not universally followed, so the Clojure indent script
+offers a few configurable options, listed below.
+
+If the current vim does not include searchpairpos(), the indent script falls
+back to normal 'lisp' indenting, and the following options are ignored.
+
+ *g:clojure_maxlines*
+
+Set maximum scan distance of searchpairpos(). Larger values trade performance
+for correctness when dealing with very long forms. A value of 0 will scan
+without limits.
+>
+ " Default
+ let g:clojure_maxlines = 100
+<
+ *g:clojure_fuzzy_indent*
+ *g:clojure_fuzzy_indent_patterns*
+ *g:clojure_fuzzy_indent_blacklist*
+
+The 'lispwords' option is a list of comma-separated words that mark special
+forms whose subforms must be indented with two spaces.
+
+For example:
+>
+ (defn bad []
+ "Incorrect indentation")
+
+ (defn good []
+ "Correct indentation")
+<
+If you would like to specify 'lispwords' with a |pattern| instead, you can use
+the fuzzy indent feature:
+>
+ " Default
+ let g:clojure_fuzzy_indent = 1
+ let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
+ let g:clojure_fuzzy_indent_blacklist =
+ \ ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
+
+ " Legacy comma-delimited string version; the list format above is
+ " recommended. Note that patterns are implicitly anchored with ^ and $
+ let g:clojure_fuzzy_indent_patterns = 'with.*,def.*,let.*'
+<
+|g:clojure_fuzzy_indent_patterns| and |g:clojure_fuzzy_indent_blacklist| are
+|Lists| of patterns that will be matched against the unquoted, unqualified
+symbol at the head of a list. This means that a pattern like "^foo" will match
+all these candidates: "foobar", "my.ns/foobar", and "#'foobar".
+
+Each candidate word is tested for special treatment in this order:
+
+ 1. Return true if word is literally in 'lispwords'
+ 2. Return false if word matches a pattern in
+ |g:clojure_fuzzy_indent_blacklist|
+ 3. Return true if word matches a pattern in
+ |g:clojure_fuzzy_indent_patterns|
+ 4. Return false and indent normally otherwise
+
+ *g:clojure_special_indent_words*
+
+Some forms in Clojure are indented so that every subform is indented only two
+spaces, regardless of 'lispwords'. If you have a custom construct that should
+be indented in this idiosyncratic fashion, you can add your symbols to the
+default list below.
+>
+ " Default
+ let g:clojure_special_indent_words =
+ \ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
+<
+ *g:clojure_align_multiline_strings*
+
+Align subsequent lines in multiline strings to the column after the opening
+quote, instead of the same column.
+
+For example:
+>
+ (def default
+ "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
+ enim ad minim veniam, quis nostrud exercitation ullamco laboris
+ nisi ut aliquip ex ea commodo consequat.")
+
+ (def aligned
+ "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
+ enim ad minim veniam, quis nostrud exercitation ullamco laboris
+ nisi ut aliquip ex ea commodo consequat.")
+<
+This option is off by default.
+>
+ " Default
+ let g:clojure_align_multiline_strings = 0
+<
+ *g:clojure_align_subforms*
+
+By default, parenthesized compound forms that look like function calls and
+whose head subform is on its own line have subsequent subforms indented by
+two spaces relative to the opening paren:
+>
+ (foo
+ bar
+ baz)
+<
+Setting this option changes this behavior so that all subforms are aligned to
+the same column, emulating the default behavior of clojure-mode.el:
+>
+ (foo
+ bar
+ baz)
+<
+This option is off by default.
+>
+ " Default
+ let g:clojure_align_subforms = 0
+<
+
+CLOJURE *ft-clojure-syntax*
+
+The default syntax groups can be augmented through the
+*g:clojure_syntax_keywords* and *b:clojure_syntax_keywords* variables. The
+value should be a |Dictionary| of syntax group names to a |List| of custom
+identifiers:
+>
+ let g:clojure_syntax_keywords = {
+ \ 'clojureMacro': ["defproject", "defcustom"],
+ \ 'clojureFunc': ["string/join", "string/replace"]
+ \ }
+<
+Refer to the Clojure syntax script for valid syntax group names.
+
+If the |buffer-variable| *b:clojure_syntax_without_core_keywords* is set, only
+language constants and special forms are matched.
+
+Setting *g:clojure_fold* enables folding Clojure code via the syntax engine.
+Any list, vector, or map that extends over more than one line can be folded
+using the standard Vim |fold-commands|.
+
+Please note that this option does not work with scripts that redefine the
+bracket syntax regions, such as rainbow-parentheses plugins.
+
+This option is off by default.
+>
+ " Default
+ let g:clojure_fold = 0
+<
+
+ABOUT *clojure-about*
+
+This document and associated runtime files are maintained at:
+https://github.com/guns/vim-clojure-static
+
+Distributed under the Vim license. See |license|.
+
+syntax/clojure.vim
+
+ Copyright 2007-2008 (c) Toralf Wittner <toralf.wittner@gmail.com>
+ Copyright 2008-2012 (c) Meikel Brandmeyer <mb@kotka.de>
+
+ftdetect/clojure.vim,
+ftplugin/clojure.vim,
+indent/clojure.vim
+
+ Copyright 2008-2012 (c) Meikel Brandmeyer <mb@kotka.de>
+
+Modified and relicensed under the Vim License for distribution with Vim:
+
+ Copyright 2013-2014 (c) Sung Pae <self@sungpae.com>
+
+Last Change: %%RELEASE_DATE%%
+
+ vim:tw=78:noet:sw=8:sts=8:ts=8:ft=help:norl:
+
+endif
diff --git a/doc/coffee-script.txt b/doc/coffee-script.txt
new file mode 100644
index 00000000..692d6241
--- /dev/null
+++ b/doc/coffee-script.txt
@@ -0,0 +1,8 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'coffee-script') == -1
+
+Please see the project readme for up-to-date docs:
+https://github.com/kchmck/vim-coffee-script
+
+ vim:tw=78:ts=8:ft=help:norl:
+
+endif
diff --git a/doc/cryptol.txt b/doc/cryptol.txt
new file mode 100644
index 00000000..0d90528c
--- /dev/null
+++ b/doc/cryptol.txt
@@ -0,0 +1,108 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cryptol') == -1
+
+*cryptol.txt* functionality for the Cryptol programming language
+
+Copyright © 2013 Edward O'Callaghan. All Rights Reserved.
+
+ .oooooo. . oooo
+ d8P' `Y8b .o8 `888
+888 oooo d8b oooo ooo oo.ooooo. .o888oo .ooooo. 888
+888 `888""8P `88. .8' 888' `88b 888 d88' `88b 888
+888 888 `88..8' 888 888 888 888 888 888
+`88b ooo 888 `888' 888 888 888 . 888 888 888
+ `Y8bood8P' d888b .8' 888bod8P' "888" `Y8bod8P' o888o
+ .o..P' 888
+ `Y8P' o888o
+
+ Functionality for the Cryptol programming language.
+ Includes syntax highlighting, code folding, and more!
+
+==============================================================================
+CONTENTS *CryptolContents*
+
+ 1. Usage ................ |CryptolUsage|
+ 2. Mappings ............. |CryptolMappings|
+ 3. License .............. |CryptolLicense|
+ 4. Bugs ................. |CryptolBugs|
+ 5. Contributing ......... |CryptolContributing|
+ 6. Changelog ............ |CryptolChangelog|
+ 7. Credits .............. |CryptolCredits|
+
+==============================================================================
+Section 1: Usage *CryptolUsage*
+
+This plugin will automatically provide syntax highlighting for Cryptol files
+(files ending in .cry).
+
+Cryptol is a purely functional domain specific language, developed over the
+past decade by Galois for the NSA, for the design, implementation and
+verification of cryptographic algorithms.
+
+==============================================================================
+Section 2: Mappings *CryptolMappings*
+
+Code folding is done in the typical way, for example:
+ * za - When on a closed fold - open it.
+ * zM - Close all foldings to level 0.
+ * zR - Reduce folding
+
+For more information see, for example, :help za
+
+==============================================================================
+Section 3: License *CryptolLicense*
+
+Copyright © 2013 Edward O'Callaghan. All Rights Reserved.
+
+HOWEVER:
+Be it known, The syntax file was written by
+Copyright © 2005 Fergus Henderson. All Rights Reserved.
+
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+==============================================================================
+Section 4: Bugs *CryptolBugs*
+
+ * https://github.com/victoredwardocallaghan/cryptol.vim/issues
+
+==============================================================================
+Section 5: TODOs *CryptolTODOs
+
+ * Add compiler support
+ - .
+
+==============================================================================
+Section 6: Contributing *CryptolContributing*
+
+ * Edward O'Callaghan
+
+==============================================================================
+Section 7: Changelog *CryptolChangelog*
+
+ * Initial 25 Apr 2013.
+
+==============================================================================
+Section 8: Credits *CryptolCredits*
+
+ * Edward O'Callaghan
+ * Fergus Henderson - wrote the orginal syntax file.
+
+vim:ts=4:ft=help:tw=78:et
+
+endif
diff --git a/doc/dart.txt b/doc/dart.txt
new file mode 100644
index 00000000..2a3bc78e
--- /dev/null
+++ b/doc/dart.txt
@@ -0,0 +1,90 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dart') == -1
+
+*dart-vim-plugin* Dart support for Vim
+
+INTRODUCTION *dart.vim*
+
+dart-vim-plugin provides filetype detection, syntax highlighting, and
+indentation for Dart code in Vim.
+
+https://github.com/dart-lang/dart-vim-plugin
+
+TOOLS *dart-tools*
+
+An `includeexpr` is set that can read `.packages` files and resolve `package:`
+uris to a file. See |gf| for an example use.
+
+COMMANDS *dart-commands*
+
+These commands are available in buffers with the dart filetype.
+
+ *:Dart2Js*
+Runs dart2js to compile the current file. Takes the same arguments as the
+dart2js binary and always passes the path to the current file as the last
+argument.
+If there are any errors they will be shown in the quickfix window.
+
+ *:DartFmt*
+Runs dartfmt and passes the current buffer content through stdin. If the
+format is successful replaces the current buffer content with the formatted
+result. If the format is unsuccessful errors are shown in the quickfix window.
+This command does not use the file content on disk so it is safe to run with
+unwritten changes.
+Passes arguments through to dartfmt.
+
+ *:DartAnalyzer*
+Runs dartanalyzer to analyze the current file. Takes the same arguments as the
+dartanalyzer binary and always passes the path to the current file as the last
+argument.
+If there are any errors they will be shown in the quickfix window.
+
+CONFIGURATION *dart-configure*
+
+ *g:dart_html_in_string*
+Set to `v:true` to highlights HTML syntax inside Strings within Dart files.
+Default `v:false`
+
+ *g:dart_corelib_highlight*
+Set to `v:false` to disable highlighting of code Dart classes like `Map` or
+`List`.
+Default `v:true`
+ *g:dart_style_guide*
+Set to any value (set to `2` by convention) to set tab and width behavior to
+match the Dart style guide - spaces only with an indent of 2. Also sets
+`formatoptions += t` to auto wrap text.
+
+Configure DartFmt options with `let g:dartfmt_options`, for example, enable
+auto syntax fixes with `let g:dartfmt_options = ['--fix']`
+(discover formatter options with `dartfmt -h`)
+
+
+SYNTAX HIGHLIGHTING *dart-syntax*
+
+This plugin uses narrow highlight groups to allow selectively disabling the
+syntax highlights. Link any of the following groups to the `Normal` highlight
+group to disable them:
+
+`dartSdkException`: Capitalized exception or error classes defined in the SDK.
+
+`dartCoreType`: `void`, `var`, `dynamic`
+
+`dartSdkClass`: Capitalized classes defined in the SDK, along with `bool`,
+`int`, `double`, and `num`.
+
+`dartUserType`: Any capitalized identifier.
+
+`dartType`: Combines `dartCoreType`, `dartSdkClass`, and `dartUserType`.
+
+`dartSdkTypedef`: SDK defined `typdef`s.
+
+`dartFunction`: Any lower cased identifier preceding an open parenthesis.
+
+For example, to remove the highlighting for type and function names:
+>
+ highlight link dartType Normal
+ highlight link dartFunction Normal
+<
+
+ vim:tw=78:sw=4:ts=8:ft=help:norl:
+
+endif
diff --git a/doc/dhall.txt b/doc/dhall.txt
new file mode 100644
index 00000000..8c5f37a5
--- /dev/null
+++ b/doc/dhall.txt
@@ -0,0 +1,43 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dhall') == -1
+
+*dhall* Dhall syntax highlighting for Vim
+ ____
+=====================================================================
+CONTENTS *DhallContents*
+
+ 1. Config ......................................... ❘DhallConfig❘
+ 2. License ....................................... ❘DhallLicense❘
+
+======================================================================
+Section 1: Config *DhallConfig*
+
+----------------------------------------------------------------------
+ *'g:dhall_use_ctags'*
+Values: 0, 1
+Default: ''
+
+Generate tags file for vim on write, using universal ctags. >
+ let g:dhall_use_ctags=1
+<
+
+ *'g:dhall_format'*
+Values: 0, 1
+Default: ''
+
+Format Dhall files on write >
+ let g:dhall_format=1
+<
+ *'g:dhall_strip_whitespace'*
+Values: 0, 1
+Default: ''
+
+To enable whitespace stripping >
+ let g:dhall_strip_whitespace=1
+<
+
+======================================================================
+Section 2: License *DhallLicense*
+
+This plugin is licensed under the BDS3 license.
+
+endif
diff --git a/doc/elixir.txt b/doc/elixir.txt
new file mode 100644
index 00000000..eb482a30
--- /dev/null
+++ b/doc/elixir.txt
@@ -0,0 +1,116 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elixir') == -1
+
+*elixir.txt* Vim configuration files for Elixir http://elixir-lang.org/
+
+Author: Plataformatec
+License: Apache License Version 2.0
+
+==============================================================================
+CONTENTS *elixir-contents*
+
+INTRODUCTION |elixir-introduction|
+INTERFACE |elixir-interface|
+ FUNCTIONS |elixir-functions|
+ KEY MAPPINGS |elixir-key-mappings|
+OPTIONS |elixir-options|
+SETTINGS |elixir-settings|
+
+==============================================================================
+INTRODUCTION *elixir-introduction*
+
+*elixir* provides Vim configuration files for Elixir http://elixir-lang.org/
+
+* Syntax highlighting for Elixir and EEx files
+* Filetype detection for `.ex`, `.exs`, `.eex` and `.leex` files
+* Automatic indentation
+* Integration between Ecto projects and |vim-dadbod| for running SQL queries
+ on defined Ecto repositories
+
+
+Latest Version:
+https://github.com/elixir-editors/vim-elixir
+
+
+==============================================================================
+INTERFACE *elixir-interface*
+
+------------------------------------------------------------------------------
+FUNCTIONS *elixir-functions*
+
+db#adapter#ecto#canonicalize({url}) *db#adapter#ecto#canonicalize()*
+ TODO
+
+db#adapter#ecto#complete_opaque({url}) *db#adapter#ecto#complete_opaque()*
+ TODO
+
+elixir#indent#indent({lnum}) *elixir#indent#indent()*
+ TODO
+
+elixir#indent#searchpair_back_skip() *elixir#indent#searchpair_back_skip()*
+ TODO
+
+ *elixir#indent#handle_top_of_file()*
+elixir#indent#handle_top_of_file({context})
+ TODO
+
+ *elixir#indent#handle_follow_prev_nb()*
+elixir#indent#handle_follow_prev_nb({context})
+ TODO
+
+ *elixir#indent#handle_following_trailing_binary_operator()*
+elixir#indent#handle_following_trailing_binary_operator({context})
+ TODO
+
+ *elixir#indent#handle_starts_with_pipe()*
+elixir#indent#handle_starts_with_pipe({context})
+ TODO
+
+ *elixir#indent#handle_starts_with_end()*
+elixir#indent#handle_starts_with_end({context})
+ TODO
+
+ *elixir#indent#handle_starts_with_binary_operator()*
+elixir#indent#handle_starts_with_binary_operator({context})
+ TODO
+
+ *elixir#indent#handle_inside_block()*
+elixir#indent#handle_inside_block({context})
+ TODO
+
+ *elixir#indent#handle_inside_generic_block()*
+elixir#indent#handle_inside_generic_block({context})
+ TODO
+
+elixir#util#get_filename({word}) *elixir#util#get_filename({word})*
+ TODO
+
+
+------------------------------------------------------------------------------
+KEY MAPPINGS *elixir-key-mappings*
+
+TODO
+
+
+
+==============================================================================
+SETTINGS *elixir-settings*
+
+ *g:eelixir_default_subtype*
+ TODO
+
+ *g:elixir_indent_debug*
+ TODO
+
+ *g:elixir_indent_max_lookbehind*
+ TODO
+
+ *g:elixir_use_markdown_for_docs*
+ TODO
+
+ *g:path*
+ TODO
+
+==============================================================================
+vim:tw=78:fo=tcq2mM:ts=8:ft=help:norl
+
+endif
diff --git a/doc/ft-csv.txt b/doc/ft-csv.txt
new file mode 100644
index 00000000..7e2a00ad
--- /dev/null
+++ b/doc/ft-csv.txt
@@ -0,0 +1,1759 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'csv') == -1
+
+*ft-csv.txt* For Vim version 7.4 Last Change: Thu, 15 Jan 2015
+
+Author: Christian Brabandt <cb@256bit.org>
+Version: 0.31
+Homepage: http://www.vim.org/scripts/script.php?script_id=2830
+
+The VIM LICENSE applies to the CSV filetype plugin (see |copyright|).
+NO WARRANTY, EXPRESS OR IMPLIED. USE AT-YOUR-OWN-RISK.
+ *csv-toc*
+1. Introduction.................................|csv-intro|
+2. Installation.................................|csv-installation|
+3. CSV Commands.................................|csv-commands|
+ 3.1 WhatColumn..............................|WhatColumn_CSV|
+ 3.2 NrColumns...............................|NrColumns_CSV|
+ 3.3 SearchInColumn..........................|SearchInColumn_CSV|
+ 3.4 HiColumn................................|HiColumn_CSV|
+ 3.5 ArrangeColumn...........................|ArrangeColumn_CSV|
+ 3.6 UnArrangeColumn.........................|UnArrangeColumn_CSV|
+ 3.7 DeleteColumn............................|DeleteColumn_CSV|
+ 3.8 InitCSV.................................|InitCSV|
+ 3.9 Header..................................|Header_CSV|
+ 3.10 Sort...................................|Sort_CSV|
+ 3.11 CopyColumn.............................|Copy_CSV|
+ 3.12 MoveColumn.............................|MoveCol_CSV|
+ 3.13 Sum of a column........................|SumCol_CSV|
+ 3.14 Create new records ....................|NewRecord_CSV|
+ 3.15 Change the delimiter...................|NewDelimiter_CSV|
+ 3.16 Check for duplicate records............|Duplicate_CSV|
+ 3.17 Normal mode commands...................|csv-mapping|
+ 3.18 Convert CSV file.......................|csv-convert|
+ 3.19 Dynamic filters........................|csv-filter|
+ 3.20 Analyze a column.......................|csv-analyze|
+ 3.21 Vertical Folding.......................|csv-vertfold|
+ 3.22 Transposing columns....................|csv-transpose|
+ 3.23 Transforming into a table..............|csv-tabularize|
+ 3.24 Add new empty columns..................|AddColumn_CSV|
+ 3.25 Substitute in columns..................|Substitute_CSV|
+ 3.26 Count values inside a column...........|Count_CSV|
+ 3.27 Maximum/Minimum values ................|MaxCol_CSV|
+ 3.28 Average values.........................|AvgCol_CSV|
+ 3.29 Variance of a Column...................|VarCol_CSV|
+ 3.30 Standard Deviation of a Column.........|StdDevCol_CSV|
+ 3.31 Duplicate columns......................|DupColumn_CSV|
+ 3.32 Column width...........................|ColumnWidth_CSV|
+4. CSV Filetype configuration...................|csv-configuration|
+ 4.1 Delimiter...............................|csv-delimiter|
+ 4.2 Column..................................|csv-column|
+ 4.3 HiGroup.................................|csv-higroup|
+ 4.4 Strict Columns..........................|csv-strict|
+ 4.5 Concealing..............................|csv-conceal|
+ 4.6 Newlines................................|csv-newline|
+ 4.7 Highlight column automatically..........|csv-hicol|
+ 4.8 Fixed width columns.....................|csv-fixedwidth|
+ 4.8.1 Manual setup
+ 4.8.2 Setup using a Wizard
+ 4.9 CSV Header lines........................|csv-header|
+ 4.10 Number format..........................|csv-nrformat|
+ 4.11 Move folded lines......................|csv-move-folds|
+ 4.12 Using Comments.........................|csv-comments|
+ 4.13 Size and performance considerations....|csv-size|
+5. Functions....................................|CSV-Functions|
+ 5.1 CSVPat()................................|CSVPat()|
+ 5.2 CSVField()..............................|CSVField()|
+ 5.3 CSVCol()................................|CSVCol()|
+ 5.4 CSVSum()................................|CSVSum()|
+ 5.5 CSVCount()..............................|CSVCount()|
+ 5.6 CSVMax()................................|CSVMax()|
+ 5.7 CSVMin()................................|CSVMin()|
+ 5.8 CSVAvg()................................|CSVAvg()|
+ 5.9 CSVWidth()..............................|CSVWidth()|
+6. CSV Tips and Tricks..........................|csv-tips|
+ 6.1 Statusline..............................|csv-stl|
+ 6.2 Slow CSV plugin.........................|csv-slow|
+ 6.3 Defining custom aggregate functions.....|csv-aggregate-functions|
+ 6.4 Autocommand on opening/closing files....|csv-arrange-autocmd|
+ 6.5 CSV Syntax error........................|csv-syntax-error|
+ 6.6 Calculating new column values...........|csv-calculate-column|
+ 6.7 Using the result of an evaluation.......|b:csv_result|
+7. CSV Changelog................................|csv-changelog|
+
+==============================================================================
+1. Introduction *csv-intro*
+
+This plugin is used for handling column separated data with Vim. Usually those
+files are called csv files and use the ',' as delimiter, though sometimes they
+use e.g. the '|' or ';' as delimiter and there also exists fixedwidth columns.
+The aim of this plugin is to ease handling these kinds of files.
+
+This is a filetype plugin for CSV files. It was heavily influenced by
+the Vim Wiki Tip667 (http://vim.wikia.com/wiki/VimTip667), though it
+works differently. For instructions on installing this file, type
+:help add-local-help |add-local-help| inside Vim. For a screenshot, of
+how the plugin can be used, see http://www.256bit.org/~chrisbra/csv.gif
+
+It will make use of the |+vartabs| feature for tab delimited files to arrange
+them automatically.
+
+==============================================================================
+2. Installation *csv-installation*
+
+In order to have vim automatically detect csv files, you need to have
+|ftplugins| enabled (e.g. by having this line in your |.vimrc| file: >
+
+ :filetype plugin on
+
+<
+The plugin already sets up some logic to detect CSV files. By default,
+the plugin recognizes *.csv and *.dat files as CSV filetype. In order that the
+CSV filetype plugin is loaded correctly, vim needs to be enabled to load
+|filetype-plugins|. This can be ensured by putting a line like this in your
+|.vimrc|: >
+ :filetype plugin on
+<
+(see also |filetype-plugin-on|).
+
+In case this did not work, you need to setup vim like this:
+
+To have Vim automatically detect csv files, you need to do the following.
+
+ 1) Create your user runtime directory if you do not have one yet. This
+ directory needs to be in your 'runtime' path. In Unix this would
+ typically the ~/.vim directory, while in Windows this is usually your
+ ~/vimfiles directory. Use :echo expand("~") to find out, what Vim thinks
+ your user directory is.
+ To create this directory, you can do: >
+
+ :!mkdir ~/.vim
+<
+ for Unix and >
+
+ :!mkdir ~/vimfiles
+<
+ for Windows.
+
+ 2) In that directory you create a file that will detect csv files. >
+
+ if exists("did_load_csvfiletype")
+ finish
+ endif
+ let did_load_csvfiletype=1
+
+ augroup filetypedetect
+ au! BufRead,BufNewFile *.csv,*.dat setfiletype csv
+ augroup END
+<
+ You save this file as "filetype.vim" in your user runtime diretory: >
+
+ :w ~/.vim/filetype.vim
+<
+ 3) To be able to use your new filetype.vim detection, you need to restart
+ Vim. Vim will then load the csv filetype plugin for all files whose
+ names end with .csv.
+
+==============================================================================
+3. Commands *csv-commands*
+
+The CSV ftplugin provides several Commands. All commands are also provided
+with the prefix :CSV (e.g. |:CSVNrColumns|)
+
+ *:CSVWhatColumn*
+3.1 WhatColumn *WhatColumn_CSV*
+--------------
+
+If you would like to know, on which column the cursor is, use >
+ :WhatColumn
+<
+or >
+ :CSVWhatColumn
+<
+Use the bang attribute, if you have a heading in the first line and you want
+to know the name of the column in which the cursor is: >
+ :WhatColumn!
+<
+ *:CSVNrColumns*
+3.2 NrColumns *NrColumns_CSV*
+--------------
+
+`:NrColumns` and `:CSVNrColumns` outputs the maximum number of columns
+available. It does this by testing the first 10 lines for the number of
+columns. This usually should be enough. If you use the '!' attribute, it
+outputs the number of columns in the current line.
+
+ *:CSVSearchInColumn*
+3.3 SearchInColumn *SearchInColumn_CSV*
+------------------
+
+Use `:SearchInColumn` or `:CSVSearchInColumn` to search for a pattern within a
+specific column. The usage is: >
+
+ :SearchInColumn [<nr>] /{pat}/
+<
+
+So if you would like to search in Column 1 for the word foobar, you enter >
+
+ :SearchInColumn 1 /foobar/
+
+Instead of / as delimiter, you can use any other delimiter you like. If you
+don't enter a column, the current column will be used.
+
+ *:CSVHiColumn*
+3.4 HiColumn *HiColumn_CSV*
+------------
+
+`:HiColumn` or `:CSVHiColumn` <nr> can be used to highlight Column <nr>.
+Currently the plugin uses the WildMenu Highlight Group. If you would like to
+change this, you need to define the variable |g:csv_hiGroup|.
+
+If you do not specify a <nr>, HiColumn will highlight the column on which the
+cursor is. Use >
+
+ :HiColumn!
+
+to remove any highlighting.
+
+If you want to automatically highlight a column, see |csv-hicol|
+
+ *:ArrangeColumn* *:CSVArrangeColumn*
+3.5 ArrangeColumn *ArrangeColumn_CSV*
+-----------------
+
+If you would like all columns to be visually arranged, you can use the
+`:ArrangeColumn` or `:CSVArrangeColumn` command: >
+
+ :[range]ArrangeColumn[!] [<Row>]
+
+Beware, that this will change your file and depending on the size of
+your file may slow down Vim significantly. This is highly experimental.
+:ArrangeCommand will try to vertically align all columns by their maximum
+column size. While the command is run, a progressbar in the statusline 'stl'
+will be shown.
+
+Use the bang attribute to force recalculating the column width. This is
+slower, but especially if you have modified the file, this will correctly
+calculate the width of each column so that they can be correctly aligned. If
+no column width has been calculated before, the width will be calculated, even
+if the '!' has not been given.
+
+If <Row> is given, will use the Row, to calculate the width, else will
+calculate the maximum of at least the first 10,000 rows to calculate the
+width. The limit of 10,000 is set to speed up the processing and can be
+overriden by setting the "b:csv_arrange_use_all_rows" variable (see below).
+
+If [range] is not given, it defaults to the current line.
+
+ *csv_arrange_align*
+By default, the columns will be right-aligned. If you want a different
+alignment you need to specify this through the b:csv_arrange_align variable.
+This is a string of flags ('r': right align, 'l': left align, 'c': center
+alignment, '.': decimal alignment) where each flag defines the alignment for
+a particular column (starting from left). Missing columns will be right aligned.
+You can use '*' to repeat the previous value until the end.
+So this: >
+
+ :let b:csv_arrange_align = 'lc.'
+<
+Will left-align the first column, center align the second column, decimal
+align the third column and all following columns right align. (Note: decimal
+aligning might slow down Vim and additionally, if the value is no decimal
+number it will be right aligned).
+And this: >
+
+ :let b:csv_arrange_align = 'l*'
+
+Will left align all columns.
+
+If you change the alignment parameter, you need to use the "!" attribute, the
+next time you run the |:ArrangeCol| command, otherwise for performance
+reasons, it won't be considered.
+
+Note, arranging the columns can be very slow on large files or many columns (see
+|csv-slow| on how to increase performance for this command). For large files,
+calculating the column width can take long and take a considerable amount of
+memory. Therefore, the csv plugin will at most check 10.000 lines for the
+width. Set the variable b:csv_arrange_use_all_rows to 1 to use all records: >
+
+ :let b:csv_arrange_use_all_rows = 1
+<
+(this could however in the worst case lead to a crash).
+
+To disable the statusline progressbar set the variable g:csv_no_progress: >
+
+ :let g:csv_no_progress = 1
+<
+This will disable the progressbar and slightly improve performance (since no
+additional redraws are needed).
+
+Note: this command does not work for fixed width columns |csv-fixedwidth|
+
+See also |csv-arrange-autocmd| on how to have vim automatically arrange a CSV
+file upon entering it.
+
+By default, all lines in the file are considered to calculate the column width.
+If you want to ignore some lines at the beginning of the file, set the global
+variable g:csv_skipfirst to the number of lines to be ignored, e.g. the first
+line of the file can be ignored with >
+
+ :let g:csv_skipfirst = 1
+<
+Then use the '!' to force recalculation of column width when applying
+:ArrangeColumn
+
+ *:CSVUnArrangeColumn*
+3.6 UnArrangeColumn *UnArrangeColumn_CSV*
+-----------------
+
+If you would like to undo a previous :ArrangeColumn command, you can use this
+`:UnArrangeColumn` or `:CSVUnArrangeColumn` command: >
+
+ :[range]UnArrangeColumn
+
+Beware, that is no exact undo of the :ArrangeColumn command, since it strips
+away all leading blanks for each column. So if previously a column contained
+only some blanks, this command will strip all blanks.
+
+If [range] is given, it defaults to the current line.
+
+ *:CSVDeleteColumn*
+3.7 DeleteColumn *DeleteColumn_CSV*
+----------------
+
+The command `:DeleteColumn` or `:CSVDeleteColumn` can be used to delete a specific column. >
+
+ :DeleteColumn 2
+
+will delete column 2. If you use `:DeleteColumn 2-3` columns 2 and 3 will be
+deleted.
+
+If you don't specify a column number, it will delete the column on which the
+cursor is. Alternatively, you can also specify a search string. The plugin
+will then delete all columns that match the pattern: >
+
+ :DeleteColumn /foobar
+<
+will delete all columns where the pattern "foobar" matches.
+
+ *:CSVInit*
+ *:InitCSV*
+3.8 CSVInit
+-----------
+Reinitialize the Plugin. Use this, if you have changed the configuration
+of the plugin (see |csv-configuration| ).
+If you use the bang (!) attribute, it will keep the b:delimiter configuration
+variable.
+
+ *:CSVHeader*
+3.9 Header lines *Header_CSV*
+----------------
+The `:Header` or `:CSVHeader` command splits the csv-buffer and adds a window,
+that holds a small fraction of the csv file. This is useful, if the first line
+contains some kind of a heading and you want always to display it. This works
+similar to fixing a certain line at the top. As optional argument, you can
+give the number of columns from the top, that shall be displayed. By default,
+1 is used (You can define your own default by setting the b:csv_headerline
+variable, see |csv-header|). Use the '!' to close this window. So this >
+
+ :Header 3
+
+opens at the top a split window, that holds the first 3 lines, is fixed
+and horizontally 'scrollbind'ed to the csv window and highlighted using the
+CSVHeaderLine highlighting.
+To close the header window, use >
+
+ :Header!
+
+Note, this won't work with linebreaks in the column.
+
+Note also, that if you already have a horizontal header window (|VHeader_CSV|),
+this command will close the horizontal Header window. This is because of a
+limitation of Vim itself, which doesn't allow to sync the scrolling between
+two windows horizontally and at the same time have another window only sync
+its scrolling vertically.
+
+Note: this command does not work for fixed width columns |csv-fixedwidth|
+
+ *:CSVVHeader* *VHeader_CSV*
+If you want a vertical header line, use `:VHeader` or `:CSVVHeader`. This works
+similar to the |Header_CSV| command, except that it will open a vertical split
+window with the first column always visible. It will always open the first
+column in the new split window. Use the '!' to close the window. If you
+specify a count, that many columns will be visible (default: the first). Add
+the bang to the count, if you only want the specific column to be visible.
+>
+ :VHeader 2
+<
+This will open a vertical split window containing the first 2 columns, while
+>
+ :VHeader 2!
+<
+Opens a new vertical split window containing only the 2 second column.
+
+Note, this won't work with linebreaks in the column.
+Note also: this command does not work for fixed width columns |csv-fixedwidth|
+
+
+ *:CSVVHeaderToggle* *:CSVHeaderToggle*
+ *VHeaderToggle_CSV* *HeaderToggle_CSV*
+Use the `:HeaderToggle` and `:VHeaderToggle` command to toggle displaying the
+horizontal or vertical header line. Alternatively, use `:CSVHeaderToggle` or
+`:CSVVHeaderToggle`
+
+
+ *:CSVSort*
+3.10 Sort *Sort_CSV*
+---------
+The command `:Sort` or `:CSVSort` can be used to sort the csv file on a
+certain column. If no range is given, is sorts the whole file. Specify the
+column number to sort on as argument. Use the '!' attribute to reverse the
+sort order. For example, the following command sorts line 1 til 10 on the 3
+column >
+
+ :1,10Sort 3
+
+While this command >
+
+ :1,10Sort! 3
+
+reverses the order based on column 3.
+
+The column number can be optionally followed by any of the flags [i], [n],
+[x] and [o] for [i]gnoring case, sorting by [n]umeric, he[x]adecimal
+or [o]ctal value.
+
+When no column number is given, it will sort by the column, on which the
+cursor is currently.
+
+ *:CSVColumn*
+3.11 Copy Column *Copy_CSV*
+----------------
+If you need to copy a specific column, you can use the command `:CSVColumn` or
+`:Column` >
+
+ :[N]Column [a]
+
+Copy column N into register a. This will copy all the values, that are
+not folded-away (|csv-filter|) and skip comments.
+
+If you don't specify N, the column of the current cursor position is used.
+If no register is given, the default register
+|quotequote| is used.
+
+ *:CSVMoveCol*
+3.12 Move A Column *MoveCol_CSV*
+------------------
+You can move one column to the right of another column by using the
+`:CSVMoveColumn` or `:MoveColumn` command >
+
+ :[range]MoveColumn [source] [dest]
+
+This moves the column number source to the right of column nr destination. If
+both arguments are not given, move the column on which the cursor is to the
+right of the current last column. If [range] is not given, MoveColumn moves
+the entire column, otherwise, it moves the columns only for the lines within
+the range, e.g. given that your first line is a header line, which you don't
+want to change >
+
+ :2,$MoveColumn 1 $
+
+this would move column 1 behind the last column, while keeping the header line
+as is.
+
+
+ *:CSVSumCol*
+3.13 Sum of a Column *SumCol_CSV*
+--------------------
+You can let Vim output the sum of a column using the `:CSVSumCol` or `:SumCol`
+command >
+
+ :[range]SumCol [nr] [/format/]
+
+This outputs the result of the column <nr> within the range given. If no range
+is given, this will calculate the sum of the whole column. If <nr> is not
+given, this calculates the sum for the column the cursor is on. Note, that the
+delimiter will be stripped away from each value and also empty values won't be
+considered.
+
+By default, Vim uses the a numerical format that uses the '.' as decimal
+separator while there is no thousands separator. If youre file contains
+the numbers in a different format, you can use the /format/ option to specify
+a different thousands separator or a different decimal separator. The format
+needs to be specified like this:
+ /x:y/
+where 'x' defines the thousands separator and y defines the decimal
+separator and each one is optional. This means, that >
+
+ :SumCol 1 /:,/
+
+uses the default thousands separator and ',' as the decimal separator and >
+
+ :SumCol 2 / :./
+
+uses the Space as thousands separator and the '.' as decimal separator.
+
+Note, if you Vim is compiled without floating point number format (|+float|),
+Vim will only aggregate the integer part and therefore won't use the 'y'
+argument in the /format/ specifier.
+
+See also |csv-aggregate-functions|
+
+ *:CSVNewRecord*
+3.14 Create new Records *NewRecord_CSV*
+-----------------------
+If you want to create one or several records, you can use the `:NewRecord` or
+`:CSVNewRecord` command: >
+
+ :[range]NewRecord [count]
+
+This will create in each line given by range [count] number of new empty
+records. If [range] is not specified, creates a new line below the line the
+cursor is on and if count is not given, it defaults to 1.
+
+
+ *:CSVNewDelimiter*
+3.15 Change the delimiter *NewDelimiter_CSV*
+-------------------------
+If you want to change the field delimiter of your file you can use the
+`:CSVNewDelimiter` or `:NewDelimiter` command: >
+
+ :NewDelimiter char
+
+This changes the field delimiter of your file to the new delimiter "char".
+Note: Will remove trailing delimiters.
+
+ *:CSVDuplicate*
+3.16 Check for duplicate records *Duplicate_CSV*
+--------------------------------
+If you want to check the file for duplicate records, use the command
+`:Duplicate` or `:CSVDuplicate`: >
+
+ :Duplicate columnlist
+<
+
+Columnlist needs to be a numeric comma-separated list of all columns that you
+want to check. You can also use a range like '2-5' which means the plugin
+should check columns 2,3,4 and 5.
+
+If the plugin finds a duplicate records, it outputs its line number (but it
+only does that at most 10 times).
+
+3.17 Normal mode commands *csv-mapping*
+-------------------------
+The csv filetype plugin redefines the following keys (in normal Mode) as:
+
+<C-Right> or L or W Move [count] field forwards
+
+<C-Left> or E or H Move [count] field backwards (but see |csv-mapping-H|
+ for the movement of H).
+
+<Up> or K Move [count] lines upwards within the same column
+
+<Down> or J Move [count] lines downwards within the same column
+
+The upwards and downwards motions try to keep the cursor in the relative
+position within the cell when changing lines. That is not a guaranteed to work
+and will fail if the upper/lower cell is of a different width than the
+starting cell.
+
+<Enter> Dynamically fold all lines away, that don't match
+ the value in the current column. See |csv-filter|
+
+ In |Replace-mode| and |Virtual-Replace-mode| does not
+ create a new row, but instead moves the cursor to the
+ beginning of the same column, one more line below.
+
+<Space> Dynamically fold all lines away, that match
+ the value in the current column. See |csv-filter|
+
+<BS> Remove last item from the dynamic filter.
+ See |csv-filter|
+
+ *csv-mapping-H*
+Note how the mapping of 'H' differs from 'E'
+
+H step fields backwards but also stops at where the content of the columns
+begins.
+
+If you look into this example (with the cursor being '|')
+
+ aaa, bbbb,|ccc `
+
+Pressing 'H' moves to
+
+ aaa, |bbbb,ccc `
+
+Pressing 'H' again moves to
+
+ aaa,| bbbb,ccc `
+
+Pressing 'H' again moves to
+
+ |aaa, bbbb,ccc `
+
+While with 'E', the cursor moves to:
+
+ aaa,| bbbb,ccc `
+
+and pressing 'E' again, it would move directly to
+
+ |aaa, bbbb,ccc `
+
+ *csv-textobjects*
+Also, the csv plugin defines these text-object:
+
+if Inner Field (contains everything up to the delimiter)
+af Outer Field (contains everything up to and including
+ the delimiter)
+iL Inner Line (visually linewise select all lines, that
+ has the same value at the cursor's column)
+
+Note, that the <BS>, <CR>, K and J overlap Vim's default mapping for |<CR>|,
+|<BS>|, |J| and |K| respectively. Therefore, this functionality has been
+mapped to a sane default of <Localleader>J and <LocalLeader>K. If you haven't
+changed the |<Leader>| or |<LocalLeader>| variables, those the <Localleader>
+is equival to a single backslash '\', e.g. \K would run the lookup function on
+the word under the cursor and \J would join this line with the previous line.
+
+If you want to prevent the mapping of keys, simply set the global variable
+g:csv_nomap_<key> to 1, (remove the special characters `<>` and replace `-` by
+`_`), e.g. to prevent mapping of <CR> and <C-Left> in csv files, put >
+
+ let g:csv_nomap_cr = 1
+ let g:csv_nomap_c_left = 1
+<
+into your |.vimrc|. Note, the keyname must be lower case.
+
+Also the csv plugins follows the general consensus, that when the variable
+g:no_plugin_maps or g:no_csv_maps is set, no key will be mapped.
+
+
+ *:CSVConvertData* *ConvertData_CSV*
+3.18 Converting a CSV File *csv-convert*
+--------------------------
+You can convert your CSV file to a different format with the `:ConvertData`
+or `:CSVConvertData` command >
+
+ ConvertData
+
+Use the the ! attribute, to convert your data without the delimiter.
+
+This command will interactively ask you for the definition of 3 variables.
+After which it will convert your csv file into a new format, defined by those
+3 variables and open the newly created file in a new window. Those 3 variables
+define how the text converted.
+
+First, You need to define what has to be done, before converting your column
+data. That is done with the "pre convert" variable. The content of this
+variable will be put in front of the new document.
+
+Second, you define, what has to be put after the converted content of your
+column data. This happens with the "post convert" variable. Basically the
+contents of this variable will be put after processing the columns.
+
+Last, the columns need to be converted into your format. For this you can
+specify a printf() format like string, that defines how your data will be
+converted. You can use '%s' to specify placeholders, which will later be
+replaced by the content of the actual column.
+
+For example, suppose you want to convert your data into HTML, then you first
+call the >
+
+ :ConvertData
+
+At this point, Vim will ask you for input. First, you need to specify, what
+needs to be done before processing the data:
+
+ Pre convert text: <html><body><table> `
+
+This would specify to put the HTML Header before the actual data can be
+processed. If the variable g:csv_pre_convert is already defined, Vim will
+already show you its' content as default value. Simply pressing Enter will use
+this data. After that, Vim asks, what the end of the converted file needs to
+look like:
+
+ Post convert text: </table></body></html> `
+
+So here you are defining how to finish up the HTML file. If the variable
+g:csv_post_convert is already defined, Vim will already show you its' content
+as default value which you can confirm by pressing Enter. Last, you define,
+how your columns need to be converted. Again, Vim asks you for how to do that:
+
+ Converted text, use %s for column input: `
+ <tr><td>%s</td><td>%s</td><td>%s</td></tr>
+
+This time, you can use '%s' expandos. They tell Vim, that they need to be
+replaced by the actual content of your file. It does by going from the first
+column in your file and replacing it with the corresponding %s in that order.
+If there are less '%s' expandos than columns in your file, Vim will skip the
+columns, that are not used. Again If the variable g:csv_convert is already
+defined, Vim will already show you its' content as default value which you can
+confirm by pressing Enter.
+
+After you hit Enter, Vim will convert your data and put it into a new window.
+It may look like this:
+
+ <html><body><table> `
+ <tr><td>1,</td><td>2,</td><td>3,</td></tr> `
+ <tr><td>2,</td><td>2,</td><td>4,</td></tr> `
+ </table></body></html> `
+
+Note, this is only a proof of concept. A better version of converting your
+data to HTML is bundled with Vim (|:TOhtml|).
+
+But may be you want your data converted into SQL-insert statements. That could
+be done like this: >
+
+ ConvertData!
+<
+ Pre convert text: `
+
+(Leave this empty. It won't be used).
+
+ Post convert text: Commit; `
+
+After inserting the data, commit it into the database.
+
+ Converted text, use %s for column input: `
+ Insert into table foobar values ('%s', '%s', %s); `
+
+Note, that the last argument is not included within single quotation marks,
+since in this case the data is assumed to be integer and won't need to be
+quoted for the database.
+
+After hitting Enter, a new Window will be opened, which might look like this:
+
+ Insert into table foobar values('Foobar', '2', 2011); `
+ Insert into table foobar values('Bar', '1', 2011); `
+ Commit; `
+
+Since the command was used with the bang attribute (!), the converted data
+doesn't include the column delimiters.
+
+Now you can copy it into your database, or further manipulate it.
+
+3.19 Dynamic filters *csv-filter*
+--------------------
+If you are on a value and only want to see lines that have the same value in
+this column, you can dynamically filter the file and fold away all lines not
+matching the value in the current column. To do so, simply press <CR> (Enter).
+Now Vim will fold away all lines, that don't have the same value in this
+particular row. Note, that leading blanks and the delimiter is removed and the
+value is used literally when comparing with other values. If you press <Space>
+on the value, all fields having the same value will be folded away.
+Pressing <BS> will remove the last item from the dynamic filter. To remove all
+filters, keep pressing <BS> until no more filters are present.
+
+The way this is done is, that the value from the column is extracted and a
+regular expression for that field is generated from it. In the end this
+regular expression is used for folding the file.
+
+A subsequent <CR> or <Space> on another value, will add this value to the
+current applied filter (this is like using the logical AND between the
+currently active filter and the new value). To remove the last item from the
+filter, press <BS> (backspace). If all items from the filter are removed,
+folding will be disabled.
+
+If some command messes up the folding, you can use |zX| to have the folding
+being reinitialized.
+
+By default, the first line is assumed to be the header and won't be folded
+away. See also |csv-header|.
+
+If you have set the g:csv_move_folds variable and the file is modifiable, all
+folded lines will be moved to the end of the file, so you can view all
+non-folded lines as one consecutive area (see also |csv-move-folds|)
+
+ *:CSVFilter* *:Filter* *Filter_CSV*
+To see the active filters, you can use the `:Filter` or `:CSVFilter` command.
+This will show you a small summary, of what filters are active and looks like
+this:
+
+Nr Match Col Name Value ~
+===================================================== `
+01 - 07 Price 23.10 `
+02 + 08 Qty 10 `
+
+This means, there are two filters active. The current active filter is on
+column 7 (column name is Price) and all values that match 23.10 will be folded
+away AND all values that don't match a value of 10 in the QTY column will also
+be folded away.
+When removing one item from the filter by pressing <BS>, it will always remove
+the last item (highest number in NR column) from the active filter values.
+
+Note, that depending on your csv file and the number of filters you used,
+applying the filter might actually slow down vim, because a complex regular
+expression is generated that is applied by the fold expression. Look into the
+@/ (|quote_/|) register to see its value.
+
+Use |zX| to apply the current value of your search register as filter. Use >
+
+ :Filters!
+
+to reapply all values from the current active filter and fold non-matching
+items away.
+
+ *:CSVAnalyze* *Analyze_CSV*
+3.20 Analyze a Column *csv-analyze*
+---------------------
+If you'd like to know, how the values are distributed among a certain column,
+you can use the `:CSVAnalyze` or `:Analyze` command. So >
+
+ :Analyze 3
+
+outputs the the distribution of the top 5 values in column 3. This looks like
+this:
+
+Nr Count % Value ~
+============================= `
+01 20 50% 10 `
+02 10 25% 2 `
+03 10 25% 5 `
+
+This tells you, that the the value '10' in column 3 occurs 50% of the time
+(exactly 20 times) and the other 2 values '2' and '5' occur only 10 times, so
+25% of the time.
+
+In addition, a second argument may be used to specify the number of top values.
+So
+
+ :Analyze 3 10
+
+outputs the the distribution of the top 10 values in column 3, respectively.
+
+ *:CSVVertFold* *VertFold_CSV*
+3.21 Vertical Folding *csv-vertfold*
+---------------------
+Sometimes, you want to hide away certain columns to better view only certain
+columns without having to horizontally scroll. You can use the `:CSVVertFold`
+or `:VertFold` command to hide certain columns: >
+
+ :VertFold [<nr>]
+<
+This will hide all columns from the first until the number entered. It
+currently can't hide single columns, because of the way, syntax highlighting
+is used. This command uses the conceal-feature |:syn-conceal| to hide away
+those columns. If no nr is given, hides all columns from the beginning till
+the current column.
+
+Use >
+ :VertFold!
+
+to display all hidden columns again.
+
+ *:CSVTranspose* *Transpose_CSV*
+3.22 Transposing a column *csv-transpose*
+-------------------------
+Transposing means to exchange rows and columns. You can transpose the csv
+file, using the `:CSVTranspose` or `:Transpose` : >
+
+ :[range]Transpose
+<
+command. If [range] is not given, it will transpose the complete file,
+otherwise it will only transpose the lines in the range given. Note, comments
+will be deleted and transposing does not work with fixed-width columns.
+
+ *:CSVTabularize*
+3.23 Transforming into a table *:CSVTable* *csv-tabularize*
+------------------------------
+You can also transform your csv data into a visual table, using the
+`:CSVTabularize` or `:CSVTable`: >
+
+ :CSVTabularize
+<
+command. This will make a frame around your csv data and substitute all
+delimiters by '|', so that it will look like a table.
+
+e.g. consider this data: >
+>
+First,Second,Third ~
+10,5,2 `
+5,2,10 `
+2,10,5 `
+10,5,2 `
+
+This will be transformed into: >
+
+ |---------------------|
+ | First| Second| Third|
+ |------|-------|------|
+ | 10| 5| 2|
+ | 5| 2| 10|
+ | 2| 10| 5|
+ | 10| 5| 2|
+ |---------------------|
+
+If your Vim uses an unicode 'encoding', the plugin makes a nice table using
+special unicode drawing glyphs (but it might be possible, that those chars are
+not being displayed correctly, if either your terminal or the gui font doesn't
+have characters for those codepoints). If you use the bang form, each row will
+be separated by a line.
+You can also visual select a range of lines and use :Tabularize to have only
+that range converted into a nice ascii table. Else it try to use the current
+paragraph and try to transform it.
+
+If you use the '!' bang argument, between each row, a line will be drawn.
+
+In csv files, you can also use the :CSVTabularize command, in different
+filetypes you can use the :CSVTable command (and is available as plugin so it
+will be available for non-CSV filetypes).
+
+Set the variable g:csv_table_leftalign=1 if you want the columns to be
+leftaligned.
+
+Note: Each row must contain exactly as many fields as columns.
+
+This command is available as default plugin. To disable this feature, set the
+ variable g:csv_disable_table_command to 1: >
+
+ :let g:csv_disable_table_command = 1
+<
+ *:CSVAddColumn*
+3.24 Add new empty columns *AddColumn_CSV*
+--------------------------
+If you want to add new empty columns to your file you can use the
+`:CSVAddColumn` or `:AddColumn` command: >
+
+ :[range]AddColumn [column] [count]
+
+By default, this works for the whole file, but you can give a different range
+to which the AddColumn command applies. If no arguments are given, the new
+empty column will be added after the column on which the cursor is. You can
+however add as first argument the column number after which the new column
+needs to be added.
+
+Additionally, you can also add a count number to add several columns at once
+after the specified column number. Use 0 for the column number, if you want to
+add several columns after the current column.
+
+ *:CSVSubstitute*
+3.25 Substitute in columns *Substitute_CSV*
+--------------------------
+If you want to substitute only in specific columns, you can use the
+`:CSVSubstitute` or `:Substitute` command: >
+
+ :[range]Substitute [column/]pattern/string[/flags]
+
+This means in the range and within the given columns replace pattern by
+string. This works basically like the |:s| command, except that you MUST use
+forward slashes / to delimit the command. The optional part `[column/]` can
+take either the form of an address or if you leave it out, substitution will
+only happen in the current column. Additionally, you can use the `1,5/` form
+to substitute within the columns 1 till 5 or you can even use `1,$` which
+means to substitute in each column (so in fact this simplifies to a simple
+`:s` command whithin the given range. For the use of `[/flags]` see |:s_flags|
+Here are some examples: >
+
+ :%Substitute 1,4/foobar/baz/gce
+
+Substitutes in the whole file in columns 1 till 4 the pattern foobar by baz
+for every match ('g' flag) and asks for confirmation ('c' flag).
+
+ :%S 3,$/(\d\+)/\1 EUR/g
+
+Substitutes in each column starting from the third each number and appends the
+EURO suffix to it.
+
+3.26 Count Values inside a Column *Count_CSV*
+---------------------------------
+You can let Vim output the number of values inside a column using the `:CSVCountCol`
+command >
+
+ :[range]CountCol [nr] [distinct]
+
+This outputs the number of [distinct] values visible in the column [nr]
+If [distinct] is not given, count's all values. Note, header rows and folded
+rows won't be counted.
+
+The result is also available in the buffer-local variable `b:csv_result`.
+
+See also |csv-aggregate-functions|
+
+ *MinCol_CSV*
+3.27 Maximum/Minimum value of a Column *MaxCol_CSV*
+---------------------------------------
+You can let Vim output the 10 maximum/minimum values of a column using the
+`:CSVMaxCol` command >
+
+ :[range]MaxCol [nr][distinct] [/format/]
+ :[range]MinCol [nr][distinct] [/format/]
+
+This outputs the result of the column <nr> within the range given. If no range
+is given, this will calculate the max value of the whole column. If <nr> is not
+given, this calculates the sum for the column the cursor is on. Note, that the
+delimiter will be stripped away from each value and also empty values won't be
+considered.
+
+By default, Vim uses the a numerical format that uses the '.' as decimal
+separator while there is no thousands separator. If youre file contains
+the numbers in a different format, you can use the /format/ option to specify
+a different thousands separator or a different decimal separator. The format
+needs to be specified like this:
+ /x:y/
+where 'x' defines the thousands separator and y defines the decimal
+separator and each one is optional. This means, that >
+
+ :MaxCol 1 /:,/
+
+uses the default thousands separator and ',' as the decimal separator and >
+
+ :MaxCol 2 / :./
+
+uses the Space as thousands separator and the '.' as decimal separator.
+
+If [distinct] is given, only returns the number of distinct values.
+
+Note, if you Vim is compiled without floating point number format (|+float|),
+Vim will only aggregate the integer part and therefore won't use the 'y'
+argument in the /format/ specifier.
+
+The result is also available in the buffer-local variable `b:csv_result`.
+
+3.28 Average value of a Column *AvgCol_CSV*
+------------------------------
+You can let Vim output the value of a column using the `:CSVAvgCol` command >
+
+ :[range]AvgCol [nr] [/format/]
+
+This outputs the result of the column <nr> within the range given. If no range
+is given, this will calculate the average value of the whole column. If <nr> is not
+given, this calculates the sum for the column the cursor is on. Note, that the
+delimiter will be stripped away from each value and also empty values won't be
+considered.
+
+For the [/format/] part, see |MaxCol_CSV|.
+
+The result is also available in the buffer-local variable `b:csv_result`.
+
+See also |csv-aggregate-functions|
+
+3.29 Variance of a Column *VarCol_CSV*
+_________________________
+
+ :[range]PopVarCol [nr] [/format/]
+
+ :[range]SmplVarCol [nr] [/format/]
+
+This outputs the result of the column `<nr>` within the range given. If no range
+is given, this will calculate the statistical variance of the whole column. If <nr> is not
+given, this calculates the variance for the column the cursor is on. Note, that the delimiter
+will be stripped away from each value and also empty values won't be considered.
+
+The result is also available in the buffer-local variable `b:csv_result`.
+
+3.30 Standard Deviation of a Column *StdDevCol_CSV*
+___________________________________
+
+ :[range]PopStdCol [nr] [/format/]
+
+ :[range]SmplStdCol [nr] [/format/]
+
+This outputs the result of the column `<nr>` within the range given. If no range
+is given, this will calculate the standard deviation of the whole column. If <nr> is not
+given, this calculates the standard deviation for the column the cursor is on. Note, that
+the delimiter will be stripped away from each value and also empty values won't be considered.
+
+The result is also available in the buffer-local variable `b:csv_result`.
+
+ *:CSVDupColumn*
+3.31 Duplicate columns *DupColumn_CSV*
+----------------------
+If you want to add duplicate an existing column you can use the
+`:CSVDupColumn` or `:DupColumn` command: >
+
+ :[range]DupColumn [column] [count]
+
+By default, this works for the whole file, but you can give a different range
+to which the command applies. By default it will duplicate the column on which
+the cursor is, but you can add as first argument which column will be duplicated.
+
+Additionally, you can also provide a count to copy several columns at once.
+
+ *ColumnWidth_CSV*
+3.32 Column Width *:CSVColumnWidth*
+-----------------
+If you want to know the width of each column, you can use the `:CSVColumnWidth` command: >
+
+ :CSVColumnWidth
+
+This will output the width for each column at the bottom. See also
+|CSVWidth()| function
+
+3.33 Sum of Numbers in a Row *SumRow_CSV*
+----------------------------
+You can let Vim output the sum of a field in a row using the `:CSVASumRow` command >
+
+ :[range]SumRow [/format/]
+
+This outputs the sum of the row [range]. If no range is given, this will
+calculate the sum for the current row. Note, that the delimiter will be
+stripped away from each value and also empty values won't be considered.
+
+For the [/format/] part, see |MaxCol_CSV|.
+==============================================================================
+4. CSV Configuration *csv-configuration*
+
+The CSV plugin tries to automatically detect the field delimiter for your
+file, cause although often the file is called CSV (comma separated values), a
+semicolon is actually used. By default the plugin tries the following
+delimiters: ',', ';', '|', '\t', '^', ':'.
+The column separator is stored in the buffer-local variable b:delimiter. This
+delimiter is heavily used, because you need it to define a column. Almost all
+commands use this variable therefore.
+
+4.1 Delimiter *csv-delimiter*
+-------------
+To override the automatic detection of the delimiter and define the separator
+manually, use: >
+
+ :let g:csv_delim=','
+
+to let the comma be the delimiter. This sets the buffer local delimiter
+variable b:delimiter.
+
+If your file does not consist of delimited columns, but rather is a fixed
+width csv file, see |csv-fixedwidth| for configuring the plugin appropriately.
+
+If you changed the delimiter, you should reinitialize the plugin using
+|InitCSV|
+
+Note: the delimiter will be used to generate a regular expression that matches
+a column. Internally the plugin uses the very-nomagic setting for the
+delimiter, so escaping is not neccessary.
+
+If you want to override which delimiters are probed automatically, set the
+g:csv_delim_test variable like this: >
+ :let g:csv_delim_test = ',;|'
+
+This will only make the plugin test the possible delimiters ',', ';' and '|'.
+This will also make the automatic detection a bit faster, since it does not
+need to test that many delimiters.
+
+4.2 Column *csv-column*
+----------
+The definition, of what a column is, is defined as buffer-local variable
+b:col. By default this variable is initialized to: >
+
+ let b:col='\%(\%([^' . b:delimiter . ']*"[^"]*"[^' . b:delimiter . ']*'
+ \. b:delimiter . '\)\|\%([^' . b:delimiter . ']*\%(' . b:delimiter
+ \. '\|$\)\)\)'
+
+This should take care of quoted delimiters within a column. Those should
+obviously not count as a delimiter. This regular expression is quite
+complex and might not always work on some complex cases (e.g. linebreaks
+within a field, see RFC4180 for some ugly cases that will probably not work
+with this plugin).
+
+If you changed the b:delimiter variable, you need to redefine the b:col
+variable, cause otherwise it will not reflect the change. To change the
+variable from the comma to a semicolon, you could call in your CSV-Buffer
+this command: >
+
+ :let b:col=substitute(b:col, ',', ';', 'g')
+
+Check with :echo b:col, if the definition is correct afterwards.
+
+You can also force the plugin to use your own defined regular expression as
+column. That regular expression should include the delimiter for the columns.
+To define your own regular expression, set the g:csv_col variable: >
+
+ let g:csv_col='[^,]*,'
+
+This defines a column as a field delimited by the comma (where no comma can be
+contained inside a field), similar to how |csv-strict| works.
+
+You should reinitialize the plugin afterwards |InitCSV|
+
+4.3 Highlighting Group *csv-higroup*
+----------------------
+By default the csv ftplugin uses the WildMenu highlighting Group to define how
+the |HiColumn| command highlights columns. If you would like to define a
+different highlighting group, you need to set this via the g:csv_hiGroup
+variable. You can e.g. define it in your |.vimrc|: >
+
+ :let g:csv_hiGroup = "IncSearch"
+
+You need to restart Vim, if you have changed this variable or use |InitCSV|
+
+The |hl-Title| highlighting is used for the Header line that is created by the
+|Header_CSV| command. If you prefer a different highlighting, set the
+g:csv_hiHeader variable to the prefered highlighting: >
+
+ let g:csv_hiHeader = 'Pmenu'
+<
+This would set the header window to the |hl-Pmenu| highlighting, that is used
+for the popup menu. To disable the custom highlighting, simply |unlet| the
+variable: >
+
+ unlet g:csv_hiHeader
+
+You should reinitialize the plugin afterwards |InitCSV|
+
+4.4 Strict Columns *csv-strict*
+------------------
+The default regular expression to define a column is quite complex
+(|csv-column|). This slows down the processing and makes Vim use more memory
+and it could still not fit to your specific use case.
+
+If you know, that in your data file, the delimiter cannot be contained inside
+the fields quoted or escaped, you can speed up processing (this is quite
+noticeable when using the |ArrangeColumn_CSV| command) by setting the
+g:csv_strict_columns variable: >
+
+ let g:csv_strict_columns = 1
+
+This would define a column as this regex: >
+
+ let b:col = '\%([^' . b:delimiter . ']*' . b:delimiter . '\|$\)'
+
+Much simpler then the default column definition, isn't it?
+See also |csv-column| and |csv-delimiter|
+
+You can disable the effect if you |unlet| the variable: >
+
+ unlet g:csv_strict_columns
+
+You should reinitialize the plugin afterwards |InitCSV|
+
+For example when opening a CSV file you get the Error |E363|: pattern uses
+more memory than 'maxmempattern'. In this case, either increase the
+'maxmempattern' or set the g:csv_strict_columns variable.
+
+
+4.5 Concealing *csv-syntax* *csv-conceal*
+--------------
+The CSV plugin comes with a function to syntax highlight csv files. Basically
+allt it does is highlight the columns and the header line.
+
+By default, the delimiter will not be displayed, if Vim supports |conceal| of
+syntax items and instead draws a vertical line. If you don't want that, simply
+set the g:csv_noconceal variable in your .vimrc >
+
+ let g:csv_no_conceal = 1
+
+and to disable it, simply unlet the variable >
+
+ unlet g:csv_no_conceal
+
+You should reinitialize the plugin afterwards |InitCSV|
+Note: You can also set the 'conceallevel' option to control how the concealed
+chars will be displayed.
+
+If you want to customize the syntax colors, you can define your own groups.
+The CSV plugin will use already defined highlighting groups, if they are
+already defined, otherwise it will define its own defaults which should be
+visible with 8, 16, 88 and 256 color terminals. For that it uses the
+CSVColumnHeaderOdd and CSVColumnHeaderEven highlight groups for syntax
+coloring the first line. All other lines get either the CSVColumnOdd or
+CSVColumnEven highlighting.
+
+In case you want to define your own highlighting groups, you can define your
+own syntax highlighting like this in your |.vimrc| >
+
+ hi CSVColumnEven term=bold ctermbg=4 guibg=DarkBlue
+ hi CSVColumnOdd term=bold ctermbg=5 guibg=DarkMagenta
+ hi CSVColumnHeaderEven ...
+ hi CSVColumnHeaderOdd ...
+
+Alternatively, you can simply link those highlighting groups to some other
+ones, you really like: >
+
+ hi link CSVColumnOdd MoreMsg
+ hi link CSVColumnEven Question
+<
+If you do not want column highlighting, set the variable
+g:csv_no_column_highlight to 1 >
+
+ :let g:csv_no_column_highlight = 1
+<
+Note, these changes won't take effect, until you restart Vim.
+
+
+4.6 Newlines *csv-newline*
+------------
+RFC4180 allows newlines in double quoted strings. By default, the csv-plugin
+won't recognize newlines inside fields. It is however possible to make the
+plugin aware of newlines within quoted strings. To enable this, set >
+
+ let g:csv_nl = 1
+
+and to disable it again, simply unset the variable >
+
+ unlet g:csv_nl
+
+It is a good idea to reinitialize the plugin afterwards |InitCSV|
+
+Note, this might not work correctly in all cases. The syntax highlighting
+seems to change on cursor movements. This could possibly be a bug in the
+syntax highlighting engine of Vim. Also, |WhatColumn_CSV| can't handle
+newlines inside fields and will most certainly be wrong.
+
+4.7 Highlight column automatically *csv-hicol*
+----------------------------------
+You can let vim automatically highlight the column on which the cursor is.
+This works by defining an |CursorMoved| autocommand to always highlight the
+column, when the cursor is moved in normal mode. Note, this does not update
+the highlighting, if the Cursor is moved in Insert mode. To enable this,
+define the g:csv_highlight_column variable like this >
+
+ let g:csv_highlight_column = 'y'
+
+and to disable it again, simply unset the variable >
+
+ unlet g:csv_highlight_column
+
+It is a good idea to reinitialize the plugin afterwards |InitCSV|
+
+4.8 Fixed width columns *csv-fixedwidth*
+-----------------------
+Sometimes there are no real columns, but rather the file is fixed width with
+no distinct delimiters between each column. The CSV plugin allows you to
+handle such virtual columns like csv columns, if you define where each column
+starts.
+
+Note: Except for |ArrangeColumn_CSV| and the |Header_CSV| commands, all
+commands work in either mode. Those two commands won't do anything in the case
+of fixedwidth columns, since they don't really make sense here.
+
+4.8.1 Manual setup
+------------------
+You can do this, by setting the buffer-local variable
+b:csv_fixed_width like this >
+
+ let b:csv_fixed_width="1,5,9,13,17,21"
+
+This defines that each column starts at multiples of 4. Be sure, to issue
+this command in the buffer, that contains your file, otherwise, it won't
+have an effect, since this is a buffer-local option (|local-option|)
+
+After setting this variable, you should reinitialize the plugins using
+|InitCSV|
+
+ *CSVFixed*
+4.8.2 Setup using a Wizard
+--------------------------
+Alternatively, you can setup the fixed width columns using the :CSVFixed
+command. This provides a simple wizard to select each column. If you enter
+the command: >
+ :CSVFixed
+<
+The first column will be highlighted and Vim outputs:
+<Cursor>, <Space>, <ESC>, <BS>, <CR>...
+This means, you can now use those 5 keys to configure the fixed-width columns:
+
+ <Cursor> Use Cursor Left (<Left>) and Cursor Right (<Right>) to move the
+ highlighting bar.
+ <Space> If you press <Space>, this column will be fixed and remain
+ highlighted and there will be another bar, you can move using
+ the Cursor keys. This means this column will be considered to be
+ the border between 2 fixed with columns.
+ <ESC> Abort
+ <BS> Press the backspace key, to remove the last column you fixed with
+ the <Space> key.
+ <CR> Use Enter to finish the wizard. This will use all fixed columns
+ to define the fixed width columns of your csv file. The plugin
+ will be initialized and syntax highlighting should appear.
+
+Note: This only works, if your Vim has the 'colorcolumn' option available
+(This won't work with Vim < 7.3 and also not with a Vim without +syntax
+feature).
+
+
+4.9 CSV Header lines *csv-header*
+--------------------
+By default, dynamic filtering |csv-filter| will not fold away the first line.
+If you don't like that, you can define your header line using the variable
+b:csv_fold_headerline, e.g. >
+
+ let b:csv_headerline = 0
+
+to disable, that a header line won't be folded away. If your header line
+instead is on line 5, simply set this variable to 5. This also applies to the
+|Header_CSV| command.
+
+4.10 Number format *csv-nrformat*
+------------------
+When using the |SumCol_CSV| command, you can specify a certain number format
+using the /x:y/ argument. You can however also configure the plugin to detect
+a different number format than the default number format (which does not
+support a thousands separator and uses the '.' as decimal separator).
+
+To specify a different thousands separator by default, use >
+
+ let b:csv_thousands_sep = ' '
+
+to have the space use as thousands separator and >
+
+ let b:csv_decimal_sep = ','
+
+to use the comma as decimal separator.
+
+4.11 Move folded lines *csv-move-folds*
+----------------------
+If you use dynamic filters (see |csv-filter|), you can configure the plugin to
+move all folded lines to the end of the file. This only happens if you set the
+variable >
+
+ let g:csv_move_folds = 1
+<
+and the file is modifiable. This let's you see all non-folded records as a
+consecutive area without being disrupted by folded lines.
+
+4.12 Using comments *csv-comments*
+-------------------
+Strictly speaking, in csv files there can't be any comments. You might however
+still wish to comment or annotate certain sections in your file, so the CSV
+plugin supports Comments.
+
+Be default, the CSV plugin will use the 'commentstring' setting to identify
+comments. If this option includes the '%s' it will consider the part before
+the '%s' as leading comment marker and the part behind it as comment
+delimiter.
+
+You can however define your own comment marker, using the variable
+g:csv_comment. Like with the 'commentstring' setting, you can use '%s'
+expandos, that will denote where the actual comment text belongs. To define
+your own comment string, put this in your |.vimrc| >
+
+ :let g:csv_comment = '#'
+<
+Which will use the '#' sign as comment leader like in many scripting
+languages.
+
+After setting this variable, you should reinitialize the plugins using
+|InitCSV|
+
+ *csv-foldtext*
+By default, the csv plugin sets the 'foldtext' option. If you don't want this,
+set the variable `g:csv_disable_fdt` in your |.vimrc| >
+
+ :let g:csv_disable_fdt = 1
+
+4.13 Size and performance considerations *csv-size*
+----------------------------------------
+By default, the csv plugin will analyze the whole file to determine which
+delimiter to use. Beside specifying the the actual delimiter to use
+(|csv-delimiter|) you can restrict analyzing the plugin to consider only a
+certain part of the file. This should make loading huge csv files a log
+faster. To only consider the first 100 rows set the `g:csv_start` and
+`g:csv_end` variables in your |.vimrc| like this >
+
+ :let g:csv_start = 1
+ :let g:csv_end = 100
+
+Also note, you can use the Large File plugin
+(http://www.drchip.org/astronaut/vim/index.html#LARGEFILE) which however will
+disable syntax highlighting and the filetype commands for very large csv files
+(by default larger than 100 MB).
+
+See also |csv-slow|
+==============================================================================
+5. Functions *CSV-Functions*
+
+The csv plugins also defines some functions, that can be used for scripting
+when a csv file is open
+
+5.1 CSVPat() *CSVPat()*
+------------
+CSVPat({column}[, {pattern}])
+
+This function returns the pattern for the selected column. If only columns is
+given, returns the regular expression used to search for the pattern '.*' in
+that column (which means the content of that column). Alternatively, an
+optional pattern can be given, so the return string can be directly feeded to
+the |/| or |:s| command, e.g. type: >
+
+ :s/<C-R>=CSVPat(3, 'foobar')<cr>/baz
+
+where the <C-R> means pressing Control followed by R followed by =
+(see |c_CTRL-R_=|). A prompt will apear, with the '=' as the first character
+on which you can enter expressions.
+
+In this case enter CSVPat(3, 'foobar') which returns the pattern to search for
+the string 'foobar' in the third column. After you press enter, the returned
+pattern will be put after the :s command so you can directly enter / and the
+substitute string.
+
+5.2 CSVField(x,y[, orig]) *CSVField()*
+-------------------------
+This function returns the field at index (x,y) (starting from 1). If the
+parameter orig is given, returns the column "as is" (e.g. including delimiter
+and leading and trailing whitespace, otherwise that will be stripped.)
+
+5.3 CSVCol([name]) *CSVCol()*
+------------------
+If the name parameter is given, returns the name of the column, else returns
+the index of the current column, starting at 1.
+
+5.4 CSVSum(col, fmt, startline, endline) *CSVSum()*
+----------------------------------------
+Returns the sum for column col. Uses fmt to parse number format (see
+|:CSVSumCol|) startline and endline specify the lines to consider, if empty,
+will be first and last line.
+
+5.5 CSVCount(col, fmt, startline, endline[, distinct]) *CSVCount()*
+------------------------------------------------------
+Returns the count of values for column col. If the optional parameter
+[distinct] is given, only returns the distinct number of values.
+
+5.6 CSVMax(col, fmt, startline, endline) *CSVMax()*
+------------------------------------------------------
+Returns the 10 largest values for column col.
+
+5.7 CSVMin(col, fmt, startline, endline) *CSVMin()*
+------------------------------------------------------
+Returns the 10 smallest values for column col.
+
+5.8 CSVAvg(col, fmt, startline, endline) *CSVAvg()*
+------------------------------------------------------
+Returns the average value for column col.
+
+5.9 CSVWidth([silent]) *CSVWidth()*
+------------------------------------------------------
+Returns a list with the width for each column. If the first argument is given
+and non-zero, do not output warning message about the number of records used
+to calculate the width (else it might output something like:
+ CSV: File too large, only checking the first 10000 rows for the width
+), default: 1
+
+==============================================================================
+6. CSV Tips and Tricks *csv-tips*
+
+Here, there you'll find some small tips and tricks that might help when
+working with CSV files.
+
+6.1 Statusline *csv-stl*
+--------------
+Suppose you want to include the column, on which the cursor is, into your
+statusline. You can do this, by defining in your .vimrc the 'statusline' like
+this: >
+
+ function MySTL()
+ if has("statusline")
+ hi User1 term=standout ctermfg=0 ctermbg=11 guifg=Black guibg=Yellow
+ let stl = ...
+ if exists("*CSV_WCol")
+ let csv = '%1*%{&ft=~"csv" ? CSV_WCol() : ""}%*'
+ else
+ let csv = ''
+ endif
+ return stl.csv
+ endif
+ endfunc
+ set stl=%!MySTL()
+<
+
+This will draw in your statusline right aligned the current column and max
+column (like 1/10), if you are inside a CSV file. The column info will be
+drawn using the User1 highlighting (|hl-User1|), that has been defined in the
+second line of the function. In the third line of your function, put your
+desired 'statusline' settings as |expression|. Note the section starting with
+'if exists(..)' guards against not having loaded the filetype plugin.
+
+Note: vim-airline (https://github.com/bling/vim-airline) by default supports
+the csv plugin and enables a nice little csv statusline which helps for
+navigating within a csv file. For details, see the Vim-Airline documentation.
+
+ *CSV_WCol()*
+The CSV_WCol() function controls, what will be output. In the simplest case,
+when no argument is given, it simply returns on which column the cursor is.
+This would look like '1/10' which means the cursor is on the first of 10
+columns. If you rather like to know the name of the column, simply give as
+parameter to the function the string "Name". This will return the column name
+as it is printed on the first line of that column. This can be adjusted, to
+have the column name printed into the statusline (see |csv-stl| above) by
+replacing the line >
+
+ let csv = '%1*%{&ft=~"csv" ? CSV_WCol() : ""}%*'
+<
+by e.g.
+
+ let csv = '%1*%{&ft=~"csv" ? CSV_WCol("Name") . " " . CSV_WCol() : ""}%*'
+
+which will output "Name 2/10" if the cursor is in the second column
+which is named "Name".
+
+6.2 Slow CSV plugin *csv-slow*
+-------------------
+Processing a csv file using |ArrangeColumn_CSV| can be quite slow, because Vim
+needs to calculate the width for each column and then replace each column by
+itself widened by spaces to the optimal length. Unfortunately, csv files tend
+to be quite big. Remember, for a file with 10,000 lines and 50 columns Vim
+needs to process each cell, which accumulates to 500,000 substitutions. It
+might take some time, until Vim is finished.
+
+You can speed up things a little bit, if you omit the '!' attribute to the
+|ArrangeColumn| (but this will only work, if the width has been calculated
+before, e.g. by issuing a :1ArrangeColumn command to arrange only the first
+line. Additionally you can also configure how this command behaves by setting
+some configuration variables.
+
+Also note, using dynamic filters (|csv-filter|), can slow down Vim
+considerably, since they internally work with complex regular expressions, and
+if you have a large file, containing many columns, you might hit a performance
+penalty (especially, if you want to filter many columns). It's best to avoid
+those functions if you are using a large csv file (so using strict columns
+|csv-strict| might help a little and also setting 're' to 1 might also
+alleviate it a little).
+
+
+6.3 Defining custom aggregate functions *csv-aggregate-functions*
+---------------------------------------
+The CSV plugin already defines the |SumCol_CSV| command, to let you calculate
+the sum of all values of a certain column within a given range. This will
+consider all values within the range, that are not folded away (|csv-filter|),
+and also skip comments and the header lines. The delimiter will be deleted
+from each field.
+
+But it may be, that you don't need the sum, but would rather want to have the
+average of all values within a certain column. You can define your own
+function and let the plugin call it for a column like this:
+
+ 1) You define your own custom function in the after directory of your
+ vim runtime path |after-directory| (see also #2 below) >
+
+ fun! My_CSV_Average(col)
+ let sum=0
+ for item in a:col
+ let sum+=item
+ endfor
+ return sum/len(a:col)
+ endfun
+<
+ This function takes a list as argument, and calculates the average for
+ all items in the list. You could also make use of Vim's |eval()|
+ function and write your own Product function like this >
+
+ fun! My_CSV_Product(col)
+ return eval(join(a:col, '*'))
+ endfun
+<
+
+ 2) Now define your own custom command, that calls your custom function for
+ a certain column >
+
+ command! -buffer -nargs=? -range=% AvgCol
+ \ :echo csv#EvalColumn(<q-args>,
+ \ "My_CSV_Average", <line1>,<line2>)
+<
+ This command should best be put into a file called csv.vim and save
+ it into your ~/.vim/after/ftplugin/ directory. Create directories
+ that don't exist yet. For Windows, this would be the
+ $VIMRUNTIME/vimfiles/after/ftplugin directory.
+
+ 3) Make sure, your |.vimrc| includes a filetype plugin setting like this >
+
+ filetype plugin on
+<
+ This should make sure, that all the necessary scripts are loaded by
+ Vim.
+
+ After restarting Vim, you can now use your custom command definition
+ :AvgCol. Use a range, for the number of lines you want to evaluate and
+ optionally use an argument to specify which column you want to be
+ evaluated >
+
+ :2,$AvgCol 7
+<
+ This will evaluate the average of column seven (assuming, line 1 is the
+ header line, which should not be taken into account).
+
+ Note: this plugin already defines an average function.
+
+6.4 Autocommand on opening/closing files *csv-arrange-autocmd*
+----------------------------------------
+If you want your CSV files to always be displayed like a table, you can
+achieve this using the |ArrangeColumn_CSV| command and some autocommands.
+Define these autocommands in your |.vimrc| >
+
+ aug CSV_Editing
+ au!
+ au BufRead,BufWritePost *.csv :%ArrangeColumn
+ au BufWritePre *.csv :%UnArrangeColumn
+ aug end
+
+Upon Entering a csv file, Vim will visually arrange all columns and before
+writing, those columns will be collapsed again. The BufWritePost autocommand
+makes sure, that after the file has been written successfully, the csv file
+will again be visually arranged.
+
+You can also simply set the variable >
+
+ let g:csv_autocmd_arrange = 1
+<
+in your vimrc and an autocmd will be installed, that visually arranges your
+csv file whenever you open them for editing. Alternatively, you can restrict
+this setting to files below a certain size. For example, if you only want to
+enable this feature for files smaller than 1 MB, put this into your |.vimrc| >
+
+ let g:csv_autocmd_arrange = 1
+ let g:csv_autocmd_arrange_size = 1024*1024
+
+Note, this is highly experimental and especially on big files, this might
+slow down Vim considerably.
+
+6.5 Syntax error when opening a CSV file *csv-syntax-error*
+----------------------------------------
+If you see this error: >
+
+ CSV Syntax:Invalid column pattern, using default pattern \%([^,]*,\|$\)
+<
+This happens usually, when the syntax script is read before the filetype
+plugin, so the plugin did not have a chance to setup the column delimiter
+correctly.
+
+The easy way to fix it, is to make sure the :syntax on (|:syn-on|) statement
+comes after the :filetype plugin (|:filetype-plugin-on|) statement in your
+|.vimrc|
+
+Alternatively, you can simply call |InitCSV| and ignore the error.
+
+Note: It could also be caused by lazy loading feature by a vim plugin
+manager. For example this line might also cause it: >
+
+ Plug 'https://github.com/chrisbra/csv.vim', { 'for' : 'csv' }
+<
+
+The fix would then be: >
+
+ Plug 'https://github.com/chrisbra/csv.vim'
+
+6.6 Calculate new columns *csv-calculate-column*
+-------------------------
+Suppose you have a table like this:
+
+Index;Value1;Value2~
+1;100;3 `
+2;20;4 `
+
+And you need one more column, that is the calculated product of column 2 and
+3, you can make use of the provided |CSVField()| function using a
+|sub-replace-expression| of an |:s| command. In this case, you would do this: >
+
+ :2,3s/$/\=printf("%s%.2f", b:delimiter,
+ (CSVField(2,line('.'))+0.0)*(CSVField(3,line('.'))+0.0/
+
+Note: Enter as single line. The result will be this: >
+
+Index;Value1;Value2~
+1;100;3;300.00 `
+2;20;4;80.00 `
+
+6.7 Using the result of an evaluation in insert mode *b:csv_result*
+----------------------------------------------------
+The result of the last evaluation like e.g. |SumCol_CSV| will be available in
+the buffer-local variable `b:csv_result`. This allows to easily enter the
+result in a new new cell while in insert mode, using |i_CTRL-R|(e.g. in insert
+mode press Ctrl-R followed by "=b:csv_result<enter>".
+
+You can also easily copy and paste it into e.g. the system clipboard using >
+ :let @+=b:csv_result
+
+==============================================================================
+7. CSV Changelog *csv-changelog*
+
+see CHANGELOG.md in root directory of the plugin.
+
+# vim:ft=help
+
+endif
diff --git a/doc/ft-gitcommit-plugin.txt b/doc/ft-gitcommit-plugin.txt
new file mode 100644
index 00000000..3d6b9055
--- /dev/null
+++ b/doc/ft-gitcommit-plugin.txt
@@ -0,0 +1,25 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
+
+GIT COMMIT *ft-gitcommit-plugin*
+
+One command, :DiffGitCached, is provided to show a diff of the current commit
+in the preview window. It is equivalent to calling "git diff --cached" plus
+any arguments given to the command.
+
+GIT REBASE *ft-gitrebase-plugin*
+
+In a gitrebase filetype buffer, the following commands are provided:
+
+ `:Pick` Changes the cursor line to a `pick` line.
+ `:Squash` Changes the cursor line to a `squash` line
+ `:Edit` Changes the cursor line to an `edit` line
+ `:Reword` Changes the cursor line to a `reword` line
+ `:Fixup` Changes the cursor line to a `fixup` line
+ `:Drop` Changes the cursor line to a `drop` line
+ `:Cycle` Cycles between the first 5 gitrebase commands
+
+To make the `:Cycle` command more useful, it might be mapped, e.g. >
+ nnoremap <buffer> <silent> S :Cycle<CR>
+<
+
+endif
diff --git a/doc/ft-ruby-indent.txt b/doc/ft-ruby-indent.txt
new file mode 100644
index 00000000..5e274965
--- /dev/null
+++ b/doc/ft-ruby-indent.txt
@@ -0,0 +1,152 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
+
+RUBY *ft-ruby-indent*
+ *vim-ruby-indent*
+
+ Ruby: Access modifier indentation |ruby-access-modifier-indentation|
+ Ruby: Block style indentation |ruby-block-style-indentation|
+ Ruby: Assignment style indentation |ruby-assignment-style-indentation|
+ Ruby: Hanging element indentation |ruby-hanging-element-indentation|
+
+ *ruby-access-modifier-indentation*
+ *g:ruby_indent_access_modifier_style*
+ Ruby: Access modifier indentation ~
+
+Different access modifier indentation styles can be used by setting: >
+
+ :let g:ruby_indent_access_modifier_style = 'normal'
+ :let g:ruby_indent_access_modifier_style = 'indent'
+ :let g:ruby_indent_access_modifier_style = 'outdent'
+<
+By default, the "normal" access modifier style is used.
+
+Access modifier style "normal":
+>
+ class Indent
+ private :method
+ protected :method
+ private
+ def method; end
+ protected
+ def method; end
+ public
+ def method; end
+ end
+<
+Access modifier style "indent":
+>
+ class Indent
+ private :method
+ protected :method
+ private
+ def method; end
+ protected
+ def method; end
+ public
+ def method; end
+ end
+<
+Access modifier style "outdent":
+>
+ class Indent
+ private :method
+ protected :method
+ private
+ def method; end
+ protected
+ def method; end
+ public
+ def method; end
+ end
+<
+ *ruby-block-style-indentation*
+ *g:ruby_indent_block_style*
+ Ruby: Block style indentation ~
+
+Different block indentation styles can be used by setting: >
+
+ :let g:ruby_indent_block_style = 'expression'
+ :let g:ruby_indent_block_style = 'do'
+<
+By default, the "do" block indent style is used.
+
+Block indent style "expression":
+>
+ first
+ .second do |x|
+ something
+ end
+<
+Block indent style "do":
+>
+ first
+ .second do |x|
+ something
+ end
+<
+
+ *ruby-assignment-style-indentation*
+ *g:ruby_indent_assignment_style*
+ Ruby: Assignment style indentation ~
+
+Different styles of indenting assignment for multiline expressions:
+>
+ :let g:ruby_indent_assignment_style = 'hanging'
+ :let g:ruby_indent_assignment_style = 'variable'
+<
+By default, the "hanging" style is used.
+
+Assignment indent style "hanging":
+>
+ x = if condition
+ something
+ end
+<
+Assignment indent style "variable":
+>
+ x = if condition
+ something
+ end
+<
+
+ *ruby-hanging-element-indentation*
+ *g:ruby_indent_hanging_elements*
+ Ruby: Hanging element indentation ~
+
+Elements of multiline collections -- such as arrays, hashes, and method
+argument lists -- can have hanging indentation enabled or disabled with the
+following setting.
+>
+ :let g:ruby_indent_hanging_elements = 1
+ :let g:ruby_indent_hanging_elements = 0
+<
+By default, this setting is "1" (true) meaning that hanging indentation is
+enabled in some cases.
+
+Here is an example method call when the setting is true (non-zero):
+>
+ render('product/show',
+ product: product,
+ on_sale: true,
+ )
+<
+And the same method call when the setting is false (zero):
+>
+ render('product/show',
+ product: product,
+ on_sale: true,
+ )
+<
+Note that, even if the setting is turned on, you can still get non-hanging
+indentation by putting each argument on a separate line:
+>
+ render(
+ 'product/show',
+ product: product,
+ on_sale: true,
+ )
+<
+
+ vim:tw=78:sw=4:ts=8:ft=help:norl:
+
+endif
diff --git a/doc/ft-ruby-omni.txt b/doc/ft-ruby-omni.txt
new file mode 100644
index 00000000..dc78493b
--- /dev/null
+++ b/doc/ft-ruby-omni.txt
@@ -0,0 +1,56 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
+
+RUBY *ft-ruby-omni*
+ *vim-ruby-omni*
+
+Completion of Ruby code requires that Vim be built with |+ruby|.
+
+Ruby completion will parse your buffer on demand in order to provide a list of
+completions. These completions will be drawn from modules loaded by "require"
+and modules defined in the current buffer.
+
+The completions provided by CTRL-X CTRL-O are sensitive to the context:
+
+ CONTEXT COMPLETIONS PROVIDED ~
+
+ 1. Not inside a class definition Classes, constants and globals
+
+ 2. Inside a class definition Methods or constants defined in the class
+
+ 3. After '.', '::' or ':' Methods applicable to the object being
+ dereferenced
+
+ 4. After ':' or ':foo' Symbol name (beginning with "foo")
+
+Notes:
+ - Vim will load/evaluate code in order to provide completions. This may
+ cause some code execution, which may be a concern. This is no longer
+ enabled by default, to enable this feature add >
+ let g:rubycomplete_buffer_loading = 1
+< - In context 1 above, Vim can parse the entire buffer to add a list of
+ classes to the completion results. This feature is turned off by default,
+ to enable it add >
+ let g:rubycomplete_classes_in_global = 1
+< to your vimrc
+ - In context 2 above, anonymous classes are not supported.
+ - In context 3 above, Vim will attempt to determine the methods supported by
+ the object.
+ - Vim can detect and load the Rails environment for files within a rails
+ project. The feature is disabled by default, to enable it add >
+ let g:rubycomplete_rails = 1
+< to your vimrc
+ - Vim can parse a Gemfile, in case gems are being implicitly required. To
+ activate the feature: >
+ let g:rubycomplete_load_gemfile = 1
+< To specify an alternative path, use: >
+ let g:rubycomplete_gemfile_path = 'Gemfile.aux'
+< To use Bundler.require instead of parsing the Gemfile, set: >
+ let g:rubycomplete_use_bundler = 1
+< To use custom paths that should be added to $LOAD_PATH to correctly
+ resolve requires, set: >
+ let g:rubycomplete_load_paths = ["/path/to/code", "./lib/example"]
+
+
+ vim:tw=78:sw=4:ts=8:ft=help:norl:
+
+endif
diff --git a/doc/ft-ruby-plugin.txt b/doc/ft-ruby-plugin.txt
new file mode 100644
index 00000000..2380240d
--- /dev/null
+++ b/doc/ft-ruby-plugin.txt
@@ -0,0 +1,85 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
+
+RUBY *ft-ruby-plugin*
+ *vim-ruby-plugin*
+
+
+ Ruby: Recommended settings |ruby-recommended|
+ Ruby: Motion commands |ruby-motion|
+ Ruby: Text objects |ruby-text-objects|
+
+ *ruby-recommended*
+ *g:ruby_recommended_style*
+ Ruby: Recommended settings ~
+
+The `g:ruby_recommended_style` variable activates indentation settings
+according to the most common ruby convention: two spaces for indentation. It's
+turned on by default to ensure an unsurprising default experience for most
+ruby developers.
+
+If you'd like to enforce your own style, it's possible to apply your own
+preferences in your own configuration in `after/ftplugin/ruby.vim`. You can
+also disable the setting by setting the variable to 0:
+>
+ let g:ruby_recommended_style = 0
+<
+
+ *ruby-motion*
+ Ruby: Motion commands ~
+
+Vim provides motions such as |[m| and |]m| for jumping to the start or end of
+a method definition. Out of the box, these work for curly-bracket languages,
+but not for Ruby. The vim-ruby plugin enhances these motions, by making them
+also work on Ruby files.
+
+ *ruby-]m*
+]m Go to start of next method definition.
+
+ *ruby-]M*
+]M Go to end of next method definition.
+
+ *ruby-[m*
+[m Go to start of previous method definition.
+
+ *ruby-[M*
+[M Go to end of previous method definition.
+
+ *ruby-]]*
+]] Go to start of next module or class definition.
+
+ *ruby-][*
+][ Go to end of next module or class definition.
+
+ *ruby-[[*
+[[ Go to start of previous module or class definition.
+
+ *ruby-[]*
+[] Go to end of previous module or class definition.
+
+ *ruby-text-objects*
+ Ruby: Text objects ~
+
+Vim's |text-objects| can be used to select or operate upon regions of text
+that are defined by structure. The vim-ruby plugin adds text objects for
+operating on methods and classes.
+
+ *ruby-v_am* *ruby-am*
+am "a method", select from "def" until matching "end"
+ keyword.
+
+ *ruby-v_im* *ruby-im*
+im "inner method", select contents of "def"/"end" block,
+ excluding the "def" and "end" themselves.
+
+ *ruby-v_aM* *ruby-aM*
+aM "a class", select from "class" until matching "end"
+ keyword.
+
+ *ruby-v_iM* *ruby-iM*
+iM "inner class", select contents of "class"/"end"
+ block, excluding the "class" and "end" themselves.
+
+
+ vim:tw=78:sw=4:ts=8:ft=help:norl:
+
+endif
diff --git a/doc/ft-ruby-syntax.txt b/doc/ft-ruby-syntax.txt
new file mode 100644
index 00000000..c8c8b9cf
--- /dev/null
+++ b/doc/ft-ruby-syntax.txt
@@ -0,0 +1,123 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
+
+RUBY *ruby.vim* *ft-ruby-syntax*
+ *vim-ruby-syntax*
+
+ Ruby: Operator highlighting |ruby_operators|
+ Ruby: Whitespace errors |ruby_space_errors|
+ Ruby: Syntax errors |ruby_syntax_errors|
+ Ruby: Folding |ruby_fold| |ruby_foldable_groups|
+ Ruby: Reducing expensive operations |ruby_no_expensive| |ruby_minlines|
+ Ruby: Spellchecking strings |ruby_spellcheck_strings|
+
+ *ruby_operators*
+ Ruby: Operator highlighting ~
+
+Operators, and pseudo operators, can be highlighted by defining: >
+
+ :let ruby_operators = 1
+ :let ruby_pseudo_operators = 1
+<
+The supported pseudo operators are ., &., ::, *, **, &, <, << and ->.
+
+ *ruby_space_errors*
+ Ruby: Whitespace errors ~
+
+Whitespace errors can be highlighted by defining "ruby_space_errors": >
+
+ :let ruby_space_errors = 1
+<
+This will highlight trailing whitespace and tabs preceded by a space character
+as errors. This can be refined by defining "ruby_no_trail_space_error" and
+"ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after
+spaces respectively.
+
+ *ruby_syntax_errors*
+ Ruby: Syntax errors ~
+
+Redundant line continuations and predefined global variable look-alikes (such
+as $# and $-z) can be highlighted as errors by defining:
+>
+ :let ruby_line_continuation_error = 1
+ :let ruby_global_variable_error = 1
+<
+ *ruby_fold*
+ Ruby: Folding ~
+
+Folding can be enabled by defining "ruby_fold": >
+
+ :let ruby_fold = 1
+<
+This will set the value of 'foldmethod' to "syntax" locally to the current
+buffer or window, which will enable syntax-based folding when editing Ruby
+filetypes.
+
+ *ruby_foldable_groups*
+Default folding is rather detailed, i.e., small syntax units like "if", "do",
+"%w[]" may create corresponding fold levels.
+
+You can set "ruby_foldable_groups" to restrict which groups are foldable: >
+
+ :let ruby_foldable_groups = 'if case %'
+<
+The value is a space-separated list of keywords:
+
+ keyword meaning ~
+ -------- ------------------------------------- ~
+ ALL Most block syntax (default)
+ NONE Nothing
+ if "if" or "unless" block
+ def "def" block
+ class "class" block
+ module "module" block
+ do "do" block
+ begin "begin" block
+ case "case" block
+ for "for", "while", "until" loops
+ { Curly bracket block or hash literal
+ [ Array literal
+ % Literal with "%" notation, e.g.: %w(STRING), %!STRING!
+ / Regexp
+ string String and shell command output (surrounded by ', ", `)
+ : Symbol
+ # Multiline comment
+ << Here documents
+ __END__ Source code after "__END__" directive
+
+NONE and ALL have priority, in that order, over all other folding groups.
+
+ *ruby_no_expensive*
+ Ruby: Reducing expensive operations ~
+
+By default, the "end" keyword is colorized according to the opening statement
+of the block it closes. While useful, this feature can be expensive; if you
+experience slow redrawing (or you are on a terminal with poor color support)
+you may want to turn it off by defining the "ruby_no_expensive" variable: >
+
+ :let ruby_no_expensive = 1
+<
+In this case the same color will be used for all control keywords.
+
+ *ruby_minlines*
+
+If you do want this feature enabled, but notice highlighting errors while
+scrolling backwards, which are fixed when redrawing with CTRL-L, try setting
+the "ruby_minlines" variable to a value larger than 50: >
+
+ :let ruby_minlines = 100
+<
+Ideally, this value should be a number of lines large enough to embrace your
+largest class or module.
+
+ *ruby_spellcheck_strings*
+ Ruby: Spellchecking strings ~
+
+Ruby syntax will perform spellchecking of strings if you define
+"ruby_spellcheck_strings": >
+
+ :let ruby_spellcheck_strings = 1
+<
+
+ vim:tw=78:sw=4:ts=8:ft=help:norl:
+
+endif
diff --git a/doc/haskell-vim.txt b/doc/haskell-vim.txt
new file mode 100644
index 00000000..d2083ca5
--- /dev/null
+++ b/doc/haskell-vim.txt
@@ -0,0 +1,163 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
+
+*haskell-vim.txt* Last Change 2016 March 14
+===============================================================================
+===============================================================================
+
+===============================================================================
+CONTENTS *haskell-vim-contents*
+
+ 1. Features |haskell-vim-features|
+ 2. Configuration |haskell-vim-configuration|
+ 3. Highlighting |haskell-vim-indentation|
+
+===============================================================================
+FEATURES *haskell-vim-features*
+
+ * Covers a broader spectrum of keywords
+ * Highlighting for new features like type families, pattern synonyms,
+ arrow syntax, recursive do, role annotations, QuasiQuotation
+ * More contextual highlighting
+ (e.g. highlight "as" or "family" only in appropriate places)
+ * Smarter indentation
+ * Better Cabal support
+
+===============================================================================
+CONFIGURATION *haskell-vim-configuration*
+
+To enable the features you would like to use, just add the according line to
+your `.vimrc`.
+
+===============================================================================
+HIGHLIGHTING *haskell-vim-highlighting*
+
+`haskell-vim` can highlight additional keywords. This is enabled by setting
+the according variable to 1 in the `.vimrc`.
+
+ * |haskell-vim-enable-quantification|
+ * |haskell-vim-enable-recursivedo|
+ * |haskell-vim-enable-arrowsyntax|
+ * |haskell-vim-enable-pattern-synonyms|
+ * |haskell-vim-enable-typeroles|
+ * |haskell-vim-enable-static-pointers|
+ * |haskell-vim-classic-highlighting|
+ * |haskell-vim-disable-TH|
+
+ *haskell-vim-enable-quantification*
+`g:haskell_enable_quantification` Enables highlighting of `forall`.
+
+ *haskell-vim-enable-recursivedo*
+`g:haskell_enable_recursivedo` Enables highlighting of `mdo` and `rec`.
+
+ *haskell-vim-enable-arrowsyntax*
+`g:haskell_enable_arrowsyntax` Enables highlighting of `proc`.
+
+ *haskell-vim-enable-pattern-synonyms*
+`g:haskell_enable_pattern_synonyms` Enables highlighting of the `pattern` keyword.
+
+ *haskell-vim-enable-typeroles*
+`g:haskell_enable_typeroles` Enables highlighting of the `role` keyword, as
+ well as `phantom`, `norminal` and
+ `representational`.
+
+ *haskell-vim-enable-static-pointers*
+`g:haskell_enable_static_pointers` Enables highlighting of the `static` keyword.
+
+ *haskell-vim-classic-highlighting*
+`haskell-vim` has an opinionated highlighting. If you do not like that you can
+switch to a more traditional mode by setting `g:haskell_classic_highlighting`
+to 1.
+
+ *haskell-vim-disable-TH*
+Disabling Template Haskell and Quasiquoting syntax is possible by setting
+`g:haskell_disable_TH` to `1`.
+
+===============================================================================
+INDENTATION *haskell-vim-indentation*
+
+To configure indentation in `haskell-vim` you can use the following variables to
+change indentation depth, just add the according line to your `.vimrc`.
+
+You can disable the indentation by setting `g:haskell_indent_disable` to `1`.
+
+Haskell~
+
+ * |haskell-vim-indent-if|
+ * |haskell-vim-indent-case|
+ * |haskell-vim-indent-let|
+ * |haskell-vim-indent-where|
+ * |haskell-vim-indent-before-where|
+ * |haskell-vim-indent-after-bare-where|
+ * |haskell-vim-indent-do|
+ * |haskell-vim-indent-in|
+ * |haskell-vim-indent-guard|
+ *haskell-vim-indent-if*
+* let g:haskell_indent_if = 3 >
+
+ if bool
+ >>>then ...
+ >>>else ...
+<
+
+ *haskell-vim-indent-case*
+* let g:haskell_indent_case = 2 >
+
+ case xs of
+ >>[] -> ...
+ >>(y:ys) -> ...
+<
+ *haskell-vim-indent-let*
+* let g:haskell_indent_let = 4 >
+
+ let x = 0 in
+ >>>>x
+<
+ *haskell-vim-indent-where*
+* let g:haskell_indent_where = 6 >
+
+ where f :: Int -> Int
+ >>>>>>f x = x
+<
+ *haskell-vim-indent-before-where*
+* let g:haskell_indent_before_where = 2 >
+
+ foo
+ >>where
+<
+ *haskell-vim-indent-after-bare-where*
+* let g:haskell_indent_after_bare_where = 2 >
+
+ where
+ >>foo
+<
+ *haskell-vim-indent-do*
+* let g:haskell_indent_do = 3 >
+
+ do x <- a
+ >>>y <- b
+<
+ *haskell-vim-indent-in*
+* let g:haskell_indent_in = 1 >
+
+ let x = 1
+ >in x
+<
+ *haskell-vim-indent-guard*
+* let g:haskell_indent_guard = 2 >
+
+ f x y
+ >>|
+<
+
+Cabal~
+
+ * |cabal-vim-indent-section|
+
+ *cabal-vim-indent-section*
+* let g:cabal_indent_section = 2 (limited to max. 4 spaces) >
+
+ executable name
+ >>main-is: Main.hs
+<
+
+endif
diff --git a/doc/idris-vim.txt b/doc/idris-vim.txt
new file mode 100644
index 00000000..e3d48e9e
--- /dev/null
+++ b/doc/idris-vim.txt
@@ -0,0 +1,158 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'idris') == -1
+
+*idris-vim.txt* Last change 2014 April 24
+===============================================================================
+===============================================================================
+ @@@@ @@@@@@@@ @@@@@@@@ @@@@ @@@@@@ @@ @@ @@@@ @@ @@
+ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@ @@@
+ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@@ @@@@
+ @@ @@ @@ @@@@@@@@ @@ @@@@@@ @@@@@@@ @@ @@ @@ @@ @@@ @@
+ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
+ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
+ @@@@ @@@@@@@@ @@ @@ @@@@ @@@@@@ @@@ @@@@ @@ @@
+===============================================================================
+CONTENTS *idris-vim-contents*
+
+ 1. Features: |idris-vim-features|
+ 2. Requirements: |idris-vim-requirements|
+ 3. Functions: |idris-vim-functions|
+ 4. Troubleshooting |idris-vim-troubleshooting|
+ 5. Examples: |idris-vim-examples|
+ 6. Information: |idris-vim-information|
+
+===============================================================================
+FEATURES *idris-vim-features*
+
+ * Syntax Highlighting
+ * Indentation
+ * Unicode Concealing
+ * Syntax Checking (via Syntastic(https://github.com/scrooloose/syntastic))
+ * Interactive Editing via the REPL
+
+===============================================================================
+REQUIREMENTS *idris-vim-requirements*
+
+ * Idris (http://www.idris-lang.org/)
+
+ OPTIONAL:
+
+ * Syntastic(https://github.com/scrooloose/syntastic) for syntax checking
+ * Vimshell(https://github.com/Shougo/vimshell.vim) for a REPL
+
+===============================================================================
+FUNCTIONS *idris-vim-functions*
+
+All of the functions in idris-vim are essentially just calls back to the REPL,
+so documentation for each of them is also available there.
+
+IdrisDocumentation *IdrisDocumentation*
+ Shows internal documentation of the primitive under the cursor.
+
+ Mapped to '<LocalLeader>_h' by default.
+
+IdrisResponseWin *IdrisResponseWin*
+ This opens an idris response window in a new pane.
+
+ Mapped to '<LocalLeader>_i' by default.
+
+IdrisShowType *IdrisShowType*
+ This shows the type of the name under the cursor (or, if the cursor happens
+ to be over a metavariable, a bit more information about its context).
+
+ Mapped to '<LocalLeader>_t' by default.
+
+IdrisReload *IdrisReload*
+ This reloads the file and type-checks the file in the current buffer.
+
+ Mapped to '<LocalLeader>_r' by default.
+
+IdrisEval *IdrisEval*
+ This prompts for an expression and then evaluates it in the REPL, then
+ returns the result.
+
+ Mapped to '<LocalLeader>_e' by default.
+
+IdrisCaseSplit *IdrisCaseSplit*
+ When the cursor is over a variable in a pattern match clause or case
+ expression, this splits the variable into all well-typed patterns.
+
+ Mapped to '<LocalLeader>_c' by default
+
+IdrisAddClause *IdrisAddClause*
+ When the cursor is at a type declaration this creates a new clause for that
+ signature.
+
+ By default mapped to '<LocalLeader>_d' for an ordinary top-level definition,
+ '<LocalLeader>_b' for a typeclass instance definition, and
+ '<LocalLeader>_md' to add a pattern-matching proof clause.
+
+IdrisAddMissing: *IdrisAddMissing*
+ When the cursor is over a function, this adds all clauses necessary to make
+ that function cover all inputs. This also eliminates clauses which would
+ lead to unification errors from appearing.
+
+ Mapped to '<LocalLeader>_m' by default
+
+IdrisRefine: *IdrisRefine*
+ Refines the item the cursor is over (applies the name and fills in any
+ arguments which can be filled in via unification)
+
+ Mapped to '<LocalLeader>_f' by default
+
+IdrisProofSearch: *IdrisProofSearch*
+ This attempts to find a value for the metavariable it was called on by
+ looking at the rest of the code. It can also be called with hints, which
+ are functions that can apply to help solve for the metavariable.
+
+ Mapped to '<LocalLeader>_o' without hints and '<LocalLeader>p' with hints by
+ default
+
+IdrisMakeWith: *IdrisMakeWith*
+ When the cursor is over a pattern clause and this is called, it creates a
+ new with clause.
+
+ Mapped to '<LocalLeader>_w' by default
+
+IdrisMakeLemma: *IdrisMakeLemma*
+ When the cursor is over a metavariable and this is called, it creates a new
+ top-level definition to solve the metavariable.
+
+ Mapped to '<LocalLeader>_l' by default
+
+===============================================================================
+TROUBLESHOOTING *idris-vim-troubleshooting*
+
+If this isn't working for you, make sure that:
+
+ * There is an Idris REPL running
+ * For syntax checking, you have syntastic installed
+ * The plugins mappings exists and don't conflict with anything else installed
+ (You can use ':map' to check. There should be mappings similar to
+ '\h * :call IdrisShowDoc()'.)
+ * Vim recognizes you're in an idris file (you can use ':verb set ft' to check)
+
+If none of this works, check to issue tracker on github and if nothing is
+there create an issue with a detailed description of the problem.
+
+===============================================================================
+EXAMPLES *idris-vim-examples*
+
+Some excellent tutorials/examples for interactive editing using the above
+functions can be found at:
+ http://edwinb.wordpress.com/2013/10/28/interactive-idris-editing-with-vim/
+and
+ http://www.scribd.com/doc/214031954/60/Interactive-Editing-in-Vim
+
+===============================================================================
+INFORMATION *idris-vim-information*
+
+Author: edwinb
+Repo: https://github.com/idris-hackers/idris-vim
+
+Documentation by japesinator
+
+===============================================================================
+===============================================================================
+" vim:ft=help:et:ts=2:sw=2:sts=2:norl:
+
+endif
diff --git a/doc/julia-vim-L2U-table.txt b/doc/julia-vim-L2U-table.txt
new file mode 100644
index 00000000..06f8a394
--- /dev/null
+++ b/doc/julia-vim-L2U-table.txt
@@ -0,0 +1,3282 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
+
+julia-vim-L2U-table.txt LaTeX-to-Unicode reference table
+
+===================================================================
+LATEX-TO-UNICODE REFERENCE TABLE *L2U-ref* *julia-vim-L2U-reference*
+
+ Note: This file is autogenerated from the script 'generate_latex_symbols_table.jl'
+ The symbols are based on the documentation of Julia version 1.5.0-DEV.67
+ See |julia-vim| for the LaTeX-to-Unicode manual.
+
+Code point(s) Character(s) Tab completion sequence(s) Unicode name(s)~
+----------------- ------------ -------------------------------------------- --------------------------------------------------------------------------------------------------------
+U+000A1 ¡ \exclamdown INVERTED EXCLAMATION MARK
+U+000A3 £ \sterling POUND SIGN
+U+000A5 ¥ \yen YEN SIGN
+U+000A6 ¦ \brokenbar BROKEN BAR / BROKEN VERTICAL BAR
+U+000A7 § \S SECTION SIGN
+U+000A9 © \copyright, \:copyright: COPYRIGHT SIGN
+U+000AA ª \ordfeminine FEMININE ORDINAL INDICATOR
+U+000AC ¬ \neg NOT SIGN
+U+000AE ® \circledR, \:registered: REGISTERED SIGN / REGISTERED TRADE MARK SIGN
+U+000AF ¯ \highminus MACRON / SPACING MACRON
+U+000B0 ° \degree DEGREE SIGN
+U+000B1 ± \pm PLUS-MINUS SIGN / PLUS-OR-MINUS SIGN
+U+000B2 ² \^2 SUPERSCRIPT TWO / SUPERSCRIPT DIGIT TWO
+U+000B3 ³ \^3 SUPERSCRIPT THREE / SUPERSCRIPT DIGIT THREE
+U+000B6 ¶ \P PILCROW SIGN / PARAGRAPH SIGN
+U+000B7 · \cdotp MIDDLE DOT
+U+000B9 ¹ \^1 SUPERSCRIPT ONE / SUPERSCRIPT DIGIT ONE
+U+000BA º \ordmasculine MASCULINE ORDINAL INDICATOR
+U+000BC ¼ \1/4 VULGAR FRACTION ONE QUARTER / FRACTION ONE QUARTER
+U+000BD ½ \1/2 VULGAR FRACTION ONE HALF / FRACTION ONE HALF
+U+000BE ¾ \3/4 VULGAR FRACTION THREE QUARTERS / FRACTION THREE QUARTERS
+U+000BF ¿ \questiondown INVERTED QUESTION MARK
+U+000C5 Å \AA LATIN CAPITAL LETTER A WITH RING ABOVE / LATIN CAPITAL LETTER A RING
+U+000C6 Æ \AE LATIN CAPITAL LETTER AE / LATIN CAPITAL LETTER A E
+U+000D0 Ð \DH LATIN CAPITAL LETTER ETH
+U+000D7 × \times MULTIPLICATION SIGN
+U+000D8 Ø \O LATIN CAPITAL LETTER O WITH STROKE / LATIN CAPITAL LETTER O SLASH
+U+000DE Þ \TH LATIN CAPITAL LETTER THORN
+U+000DF ß \ss LATIN SMALL LETTER SHARP S
+U+000E5 å \aa LATIN SMALL LETTER A WITH RING ABOVE / LATIN SMALL LETTER A RING
+U+000E6 æ \ae LATIN SMALL LETTER AE / LATIN SMALL LETTER A E
+U+000F0 ð \eth, \dh LATIN SMALL LETTER ETH
+U+000F7 ÷ \div DIVISION SIGN
+U+000F8 ø \o LATIN SMALL LETTER O WITH STROKE / LATIN SMALL LETTER O SLASH
+U+000FE þ \th LATIN SMALL LETTER THORN
+U+00110 Đ \DJ LATIN CAPITAL LETTER D WITH STROKE / LATIN CAPITAL LETTER D BAR
+U+00111 đ \dj LATIN SMALL LETTER D WITH STROKE / LATIN SMALL LETTER D BAR
+U+00127 ħ \hbar LATIN SMALL LETTER H WITH STROKE / LATIN SMALL LETTER H BAR
+U+00131 ı \imath LATIN SMALL LETTER DOTLESS I
+U+00141 Ł \L LATIN CAPITAL LETTER L WITH STROKE / LATIN CAPITAL LETTER L SLASH
+U+00142 ł \l LATIN SMALL LETTER L WITH STROKE / LATIN SMALL LETTER L SLASH
+U+0014A Ŋ \NG LATIN CAPITAL LETTER ENG
+U+0014B ŋ \ng LATIN SMALL LETTER ENG
+U+00152 Œ \OE LATIN CAPITAL LIGATURE OE / LATIN CAPITAL LETTER O E
+U+00153 œ \oe LATIN SMALL LIGATURE OE / LATIN SMALL LETTER O E
+U+00195 ƕ \hvlig LATIN SMALL LETTER HV / LATIN SMALL LETTER H V
+U+0019E ƞ \nrleg LATIN SMALL LETTER N WITH LONG RIGHT LEG
+U+001B5 Ƶ \Zbar LATIN CAPITAL LETTER Z WITH STROKE / LATIN CAPITAL LETTER Z BAR
+U+001C2 ǂ \doublepipe LATIN LETTER ALVEOLAR CLICK / LATIN LETTER PIPE DOUBLE BAR
+U+00237 ȷ \jmath LATIN SMALL LETTER DOTLESS J
+U+00250 ɐ \trna LATIN SMALL LETTER TURNED A
+U+00252 ɒ \trnsa LATIN SMALL LETTER TURNED ALPHA / LATIN SMALL LETTER TURNED SCRIPT A
+U+00254 ɔ \openo LATIN SMALL LETTER OPEN O
+U+00256 ɖ \rtld LATIN SMALL LETTER D WITH TAIL / LATIN SMALL LETTER D RETROFLEX HOOK
+U+00259 ə \schwa LATIN SMALL LETTER SCHWA
+U+00263 ɣ \pgamma LATIN SMALL LETTER GAMMA
+U+00264 ɤ \pbgam LATIN SMALL LETTER RAMS HORN / LATIN SMALL LETTER BABY GAMMA
+U+00265 ɥ \trnh LATIN SMALL LETTER TURNED H
+U+0026C ɬ \btdl LATIN SMALL LETTER L WITH BELT / LATIN SMALL LETTER L BELT
+U+0026D ɭ \rtll LATIN SMALL LETTER L WITH RETROFLEX HOOK / LATIN SMALL LETTER L RETROFLEX HOOK
+U+0026F ɯ \trnm LATIN SMALL LETTER TURNED M
+U+00270 ɰ \trnmlr LATIN SMALL LETTER TURNED M WITH LONG LEG
+U+00271 ɱ \ltlmr LATIN SMALL LETTER M WITH HOOK / LATIN SMALL LETTER M HOOK
+U+00272 ɲ \ltln LATIN SMALL LETTER N WITH LEFT HOOK / LATIN SMALL LETTER N HOOK
+U+00273 ɳ \rtln LATIN SMALL LETTER N WITH RETROFLEX HOOK / LATIN SMALL LETTER N RETROFLEX HOOK
+U+00277 ɷ \clomeg LATIN SMALL LETTER CLOSED OMEGA
+U+00278 ɸ \ltphi LATIN SMALL LETTER PHI
+U+00279 ɹ \trnr LATIN SMALL LETTER TURNED R
+U+0027A ɺ \trnrl LATIN SMALL LETTER TURNED R WITH LONG LEG
+U+0027B ɻ \rttrnr LATIN SMALL LETTER TURNED R WITH HOOK / LATIN SMALL LETTER TURNED R HOOK
+U+0027C ɼ \rl LATIN SMALL LETTER R WITH LONG LEG
+U+0027D ɽ \rtlr LATIN SMALL LETTER R WITH TAIL / LATIN SMALL LETTER R HOOK
+U+0027E ɾ \fhr LATIN SMALL LETTER R WITH FISHHOOK / LATIN SMALL LETTER FISHHOOK R
+U+00282 ʂ \rtls LATIN SMALL LETTER S WITH HOOK / LATIN SMALL LETTER S HOOK
+U+00283 ʃ \esh LATIN SMALL LETTER ESH
+U+00287 ʇ \trnt LATIN SMALL LETTER TURNED T
+U+00288 ʈ \rtlt LATIN SMALL LETTER T WITH RETROFLEX HOOK / LATIN SMALL LETTER T RETROFLEX HOOK
+U+0028A ʊ \pupsil LATIN SMALL LETTER UPSILON
+U+0028B ʋ \pscrv LATIN SMALL LETTER V WITH HOOK / LATIN SMALL LETTER SCRIPT V
+U+0028C ʌ \invv LATIN SMALL LETTER TURNED V
+U+0028D ʍ \invw LATIN SMALL LETTER TURNED W
+U+0028E ʎ \trny LATIN SMALL LETTER TURNED Y
+U+00290 ʐ \rtlz LATIN SMALL LETTER Z WITH RETROFLEX HOOK / LATIN SMALL LETTER Z RETROFLEX HOOK
+U+00292 ʒ \yogh LATIN SMALL LETTER EZH / LATIN SMALL LETTER YOGH
+U+00294 ʔ \glst LATIN LETTER GLOTTAL STOP
+U+00295 ʕ \reglst LATIN LETTER PHARYNGEAL VOICED FRICATIVE / LATIN LETTER REVERSED GLOTTAL STOP
+U+00296 ʖ \inglst LATIN LETTER INVERTED GLOTTAL STOP
+U+0029E ʞ \turnk LATIN SMALL LETTER TURNED K
+U+002A4 ʤ \dyogh LATIN SMALL LETTER DEZH DIGRAPH / LATIN SMALL LETTER D YOGH
+U+002A7 ʧ \tesh LATIN SMALL LETTER TESH DIGRAPH / LATIN SMALL LETTER T ESH
+U+002B0 ʰ \^h MODIFIER LETTER SMALL H
+U+002B2 ʲ \^j MODIFIER LETTER SMALL J
+U+002B3 ʳ \^r MODIFIER LETTER SMALL R
+U+002B7 ʷ \^w MODIFIER LETTER SMALL W
+U+002B8 ʸ \^y MODIFIER LETTER SMALL Y
+U+002BC ʼ \rasp MODIFIER LETTER APOSTROPHE
+U+002C8 ˈ \verts MODIFIER LETTER VERTICAL LINE
+U+002CC ˌ \verti MODIFIER LETTER LOW VERTICAL LINE
+U+002D0 ː \lmrk MODIFIER LETTER TRIANGULAR COLON
+U+002D1 ˑ \hlmrk MODIFIER LETTER HALF TRIANGULAR COLON
+U+002D2 ˒ \sbrhr MODIFIER LETTER CENTRED RIGHT HALF RING / MODIFIER LETTER CENTERED RIGHT HALF RING
+U+002D3 ˓ \sblhr MODIFIER LETTER CENTRED LEFT HALF RING / MODIFIER LETTER CENTERED LEFT HALF RING
+U+002D4 ˔ \rais MODIFIER LETTER UP TACK
+U+002D5 ˕ \low MODIFIER LETTER DOWN TACK
+U+002D8 ˘ \u BREVE / SPACING BREVE
+U+002DC ˜ \tildelow SMALL TILDE / SPACING TILDE
+U+002E1 ˡ \^l MODIFIER LETTER SMALL L
+U+002E2 ˢ \^s MODIFIER LETTER SMALL S
+U+002E3 ˣ \^x MODIFIER LETTER SMALL X
+U+00300 ◌̀ \grave COMBINING GRAVE ACCENT / NON-SPACING GRAVE
+U+00301 ◌́ \acute COMBINING ACUTE ACCENT / NON-SPACING ACUTE
+U+00302 ◌̂ \hat COMBINING CIRCUMFLEX ACCENT / NON-SPACING CIRCUMFLEX
+U+00303 ◌̃ \tilde COMBINING TILDE / NON-SPACING TILDE
+U+00304 ◌̄ \bar COMBINING MACRON / NON-SPACING MACRON
+U+00305 ◌̅ \overbar COMBINING OVERLINE / NON-SPACING OVERSCORE
+U+00306 ◌̆ \breve COMBINING BREVE / NON-SPACING BREVE
+U+00307 ◌̇ \dot COMBINING DOT ABOVE / NON-SPACING DOT ABOVE
+U+00308 ◌̈ \ddot COMBINING DIAERESIS / NON-SPACING DIAERESIS
+U+00309 ◌̉ \ovhook COMBINING HOOK ABOVE / NON-SPACING HOOK ABOVE
+U+0030A ◌̊ \ocirc COMBINING RING ABOVE / NON-SPACING RING ABOVE
+U+0030B ◌̋ \H COMBINING DOUBLE ACUTE ACCENT / NON-SPACING DOUBLE ACUTE
+U+0030C ◌̌ \check COMBINING CARON / NON-SPACING HACEK
+U+00310 ◌̐ \candra COMBINING CANDRABINDU / NON-SPACING CANDRABINDU
+U+00312 ◌̒ \oturnedcomma COMBINING TURNED COMMA ABOVE / NON-SPACING TURNED COMMA ABOVE
+U+00315 ◌̕ \ocommatopright COMBINING COMMA ABOVE RIGHT / NON-SPACING COMMA ABOVE RIGHT
+U+0031A ◌̚ \droang COMBINING LEFT ANGLE ABOVE / NON-SPACING LEFT ANGLE ABOVE
+U+00321 ◌̡ \palh COMBINING PALATALIZED HOOK BELOW / NON-SPACING PALATALIZED HOOK BELOW
+U+00322 ◌̢ \rh COMBINING RETROFLEX HOOK BELOW / NON-SPACING RETROFLEX HOOK BELOW
+U+00327 ◌̧ \c COMBINING CEDILLA / NON-SPACING CEDILLA
+U+00328 ◌̨ \k COMBINING OGONEK / NON-SPACING OGONEK
+U+0032A ◌̪ \sbbrg COMBINING BRIDGE BELOW / NON-SPACING BRIDGE BELOW
+U+00330 ◌̰ \wideutilde COMBINING TILDE BELOW / NON-SPACING TILDE BELOW
+U+00332 ◌̲ \underbar COMBINING LOW LINE / NON-SPACING UNDERSCORE
+U+00336 ◌̶ \strike, \sout COMBINING LONG STROKE OVERLAY / NON-SPACING LONG BAR OVERLAY
+U+00338 ◌̸ \not COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+0034D ◌͍ \underleftrightarrow COMBINING LEFT RIGHT ARROW BELOW
+U+00391 Α \Alpha GREEK CAPITAL LETTER ALPHA
+U+00392 Β \Beta GREEK CAPITAL LETTER BETA
+U+00393 Γ \Gamma GREEK CAPITAL LETTER GAMMA
+U+00394 Δ \Delta GREEK CAPITAL LETTER DELTA
+U+00395 Ε \Epsilon GREEK CAPITAL LETTER EPSILON
+U+00396 Ζ \Zeta GREEK CAPITAL LETTER ZETA
+U+00397 Η \Eta GREEK CAPITAL LETTER ETA
+U+00398 Θ \Theta GREEK CAPITAL LETTER THETA
+U+00399 Ι \Iota GREEK CAPITAL LETTER IOTA
+U+0039A Κ \Kappa GREEK CAPITAL LETTER KAPPA
+U+0039B Λ \Lambda GREEK CAPITAL LETTER LAMDA / GREEK CAPITAL LETTER LAMBDA
+U+0039C Μ \upMu GREEK CAPITAL LETTER MU
+U+0039D Ν \upNu GREEK CAPITAL LETTER NU
+U+0039E Ξ \Xi GREEK CAPITAL LETTER XI
+U+0039F Ο \upOmicron GREEK CAPITAL LETTER OMICRON
+U+003A0 Π \Pi GREEK CAPITAL LETTER PI
+U+003A1 Ρ \Rho GREEK CAPITAL LETTER RHO
+U+003A3 Σ \Sigma GREEK CAPITAL LETTER SIGMA
+U+003A4 Τ \Tau GREEK CAPITAL LETTER TAU
+U+003A5 Υ \Upsilon GREEK CAPITAL LETTER UPSILON
+U+003A6 Φ \Phi GREEK CAPITAL LETTER PHI
+U+003A7 Χ \Chi GREEK CAPITAL LETTER CHI
+U+003A8 Ψ \Psi GREEK CAPITAL LETTER PSI
+U+003A9 Ω \Omega GREEK CAPITAL LETTER OMEGA
+U+003B1 α \alpha GREEK SMALL LETTER ALPHA
+U+003B2 β \beta GREEK SMALL LETTER BETA
+U+003B3 γ \gamma GREEK SMALL LETTER GAMMA
+U+003B4 δ \delta GREEK SMALL LETTER DELTA
+U+003B5 ε \upepsilon, \varepsilon GREEK SMALL LETTER EPSILON
+U+003B6 ζ \zeta GREEK SMALL LETTER ZETA
+U+003B7 η \eta GREEK SMALL LETTER ETA
+U+003B8 θ \theta GREEK SMALL LETTER THETA
+U+003B9 ι \iota GREEK SMALL LETTER IOTA
+U+003BA κ \kappa GREEK SMALL LETTER KAPPA
+U+003BB λ \lambda GREEK SMALL LETTER LAMDA / GREEK SMALL LETTER LAMBDA
+U+003BC μ \mu GREEK SMALL LETTER MU
+U+003BD ν \nu GREEK SMALL LETTER NU
+U+003BE ξ \xi GREEK SMALL LETTER XI
+U+003BF ο \upomicron GREEK SMALL LETTER OMICRON
+U+003C0 π \pi GREEK SMALL LETTER PI
+U+003C1 ρ \rho GREEK SMALL LETTER RHO
+U+003C2 ς \varsigma GREEK SMALL LETTER FINAL SIGMA
+U+003C3 σ \sigma GREEK SMALL LETTER SIGMA
+U+003C4 τ \tau GREEK SMALL LETTER TAU
+U+003C5 υ \upsilon GREEK SMALL LETTER UPSILON
+U+003C6 φ \varphi GREEK SMALL LETTER PHI
+U+003C7 χ \chi GREEK SMALL LETTER CHI
+U+003C8 ψ \psi GREEK SMALL LETTER PSI
+U+003C9 ω \omega GREEK SMALL LETTER OMEGA
+U+003D0 ϐ \upvarbeta GREEK BETA SYMBOL / GREEK SMALL LETTER CURLED BETA
+U+003D1 ϑ \vartheta GREEK THETA SYMBOL / GREEK SMALL LETTER SCRIPT THETA
+U+003D5 ϕ \phi GREEK PHI SYMBOL / GREEK SMALL LETTER SCRIPT PHI
+U+003D6 ϖ \varpi GREEK PI SYMBOL / GREEK SMALL LETTER OMEGA PI
+U+003D8 Ϙ \upoldKoppa GREEK LETTER ARCHAIC KOPPA
+U+003D9 ϙ \upoldkoppa GREEK SMALL LETTER ARCHAIC KOPPA
+U+003DA Ϛ \Stigma GREEK LETTER STIGMA / GREEK CAPITAL LETTER STIGMA
+U+003DB ϛ \upstigma GREEK SMALL LETTER STIGMA
+U+003DC Ϝ \Digamma GREEK LETTER DIGAMMA / GREEK CAPITAL LETTER DIGAMMA
+U+003DD ϝ \digamma GREEK SMALL LETTER DIGAMMA
+U+003DE Ϟ \Koppa GREEK LETTER KOPPA / GREEK CAPITAL LETTER KOPPA
+U+003DF ϟ \upkoppa GREEK SMALL LETTER KOPPA
+U+003E0 Ϡ \Sampi GREEK LETTER SAMPI / GREEK CAPITAL LETTER SAMPI
+U+003E1 ϡ \upsampi GREEK SMALL LETTER SAMPI
+U+003F0 ϰ \varkappa GREEK KAPPA SYMBOL / GREEK SMALL LETTER SCRIPT KAPPA
+U+003F1 ϱ \varrho GREEK RHO SYMBOL / GREEK SMALL LETTER TAILED RHO
+U+003F4 ϴ \varTheta GREEK CAPITAL THETA SYMBOL
+U+003F5 ϵ \epsilon GREEK LUNATE EPSILON SYMBOL
+U+003F6 ϶ \backepsilon GREEK REVERSED LUNATE EPSILON SYMBOL
+U+01D2C ᴬ \^A MODIFIER LETTER CAPITAL A
+U+01D2E ᴮ \^B MODIFIER LETTER CAPITAL B
+U+01D30 ᴰ \^D MODIFIER LETTER CAPITAL D
+U+01D31 ᴱ \^E MODIFIER LETTER CAPITAL E
+U+01D33 ᴳ \^G MODIFIER LETTER CAPITAL G
+U+01D34 ᴴ \^H MODIFIER LETTER CAPITAL H
+U+01D35 ᴵ \^I MODIFIER LETTER CAPITAL I
+U+01D36 ᴶ \^J MODIFIER LETTER CAPITAL J
+U+01D37 ᴷ \^K MODIFIER LETTER CAPITAL K
+U+01D38 ᴸ \^L MODIFIER LETTER CAPITAL L
+U+01D39 ᴹ \^M MODIFIER LETTER CAPITAL M
+U+01D3A ᴺ \^N MODIFIER LETTER CAPITAL N
+U+01D3C ᴼ \^O MODIFIER LETTER CAPITAL O
+U+01D3E ᴾ \^P MODIFIER LETTER CAPITAL P
+U+01D3F ᴿ \^R MODIFIER LETTER CAPITAL R
+U+01D40 ᵀ \^T MODIFIER LETTER CAPITAL T
+U+01D41 ᵁ \^U MODIFIER LETTER CAPITAL U
+U+01D42 ᵂ \^W MODIFIER LETTER CAPITAL W
+U+01D43 ᵃ \^a MODIFIER LETTER SMALL A
+U+01D45 ᵅ \^alpha MODIFIER LETTER SMALL ALPHA
+U+01D47 ᵇ \^b MODIFIER LETTER SMALL B
+U+01D48 ᵈ \^d MODIFIER LETTER SMALL D
+U+01D49 ᵉ \^e MODIFIER LETTER SMALL E
+U+01D4B ᵋ \^epsilon MODIFIER LETTER SMALL OPEN E
+U+01D4D ᵍ \^g MODIFIER LETTER SMALL G
+U+01D4F ᵏ \^k MODIFIER LETTER SMALL K
+U+01D50 ᵐ \^m MODIFIER LETTER SMALL M
+U+01D52 ᵒ \^o MODIFIER LETTER SMALL O
+U+01D56 ᵖ \^p MODIFIER LETTER SMALL P
+U+01D57 ᵗ \^t MODIFIER LETTER SMALL T
+U+01D58 ᵘ \^u MODIFIER LETTER SMALL U
+U+01D5B ᵛ \^v MODIFIER LETTER SMALL V
+U+01D5D ᵝ \^beta MODIFIER LETTER SMALL BETA
+U+01D5E ᵞ \^gamma MODIFIER LETTER SMALL GREEK GAMMA
+U+01D5F ᵟ \^delta MODIFIER LETTER SMALL DELTA
+U+01D60 ᵠ \^phi MODIFIER LETTER SMALL GREEK PHI
+U+01D61 ᵡ \^chi MODIFIER LETTER SMALL CHI
+U+01D62 ᵢ \_i LATIN SUBSCRIPT SMALL LETTER I
+U+01D63 ᵣ \_r LATIN SUBSCRIPT SMALL LETTER R
+U+01D64 ᵤ \_u LATIN SUBSCRIPT SMALL LETTER U
+U+01D65 ᵥ \_v LATIN SUBSCRIPT SMALL LETTER V
+U+01D66 ᵦ \_beta GREEK SUBSCRIPT SMALL LETTER BETA
+U+01D67 ᵧ \_gamma GREEK SUBSCRIPT SMALL LETTER GAMMA
+U+01D68 ᵨ \_rho GREEK SUBSCRIPT SMALL LETTER RHO
+U+01D69 ᵩ \_phi GREEK SUBSCRIPT SMALL LETTER PHI
+U+01D6A ᵪ \_chi GREEK SUBSCRIPT SMALL LETTER CHI
+U+01D9C ᶜ \^c MODIFIER LETTER SMALL C
+U+01DA0 ᶠ \^f MODIFIER LETTER SMALL F
+U+01DA5 ᶥ \^iota MODIFIER LETTER SMALL IOTA
+U+01DB2 ᶲ \^Phi MODIFIER LETTER SMALL PHI
+U+01DBB ᶻ \^z MODIFIER LETTER SMALL Z
+U+01DBF ᶿ \^theta MODIFIER LETTER SMALL THETA
+U+02002   \enspace EN SPACE
+U+02003   \quad EM SPACE
+U+02005   \thickspace FOUR-PER-EM SPACE
+U+02009   \thinspace THIN SPACE
+U+0200A   \hspace HAIR SPACE
+U+02013 – \endash EN DASH
+U+02014 — \emdash EM DASH
+U+02016 ‖ \Vert DOUBLE VERTICAL LINE / DOUBLE VERTICAL BAR
+U+02018 ‘ \lq LEFT SINGLE QUOTATION MARK / SINGLE TURNED COMMA QUOTATION MARK
+U+02019 ’ \rq RIGHT SINGLE QUOTATION MARK / SINGLE COMMA QUOTATION MARK
+U+0201B ‛ \reapos SINGLE HIGH-REVERSED-9 QUOTATION MARK / SINGLE REVERSED COMMA QUOTATION MARK
+U+0201C “ \quotedblleft LEFT DOUBLE QUOTATION MARK / DOUBLE TURNED COMMA QUOTATION MARK
+U+0201D ” \quotedblright RIGHT DOUBLE QUOTATION MARK / DOUBLE COMMA QUOTATION MARK
+U+02020 † \dagger DAGGER
+U+02021 ‡ \ddagger DOUBLE DAGGER
+U+02022 • \bullet BULLET
+U+02026 … \dots, \ldots HORIZONTAL ELLIPSIS
+U+02030 ‰ \perthousand PER MILLE SIGN
+U+02031 ‱ \pertenthousand PER TEN THOUSAND SIGN
+U+02032 ′ \prime PRIME
+U+02033 ″ \pprime DOUBLE PRIME
+U+02034 ‴ \ppprime TRIPLE PRIME
+U+02035 ‵ \backprime REVERSED PRIME
+U+02036 ‶ \backpprime REVERSED DOUBLE PRIME
+U+02037 ‷ \backppprime REVERSED TRIPLE PRIME
+U+02039 ‹ \guilsinglleft SINGLE LEFT-POINTING ANGLE QUOTATION MARK / LEFT POINTING SINGLE GUILLEMET
+U+0203A › \guilsinglright SINGLE RIGHT-POINTING ANGLE QUOTATION MARK / RIGHT POINTING SINGLE GUILLEMET
+U+0203C ‼ \:bangbang: DOUBLE EXCLAMATION MARK
+U+02040 ⁀ \tieconcat CHARACTER TIE
+U+02049 ⁉ \:interrobang: EXCLAMATION QUESTION MARK
+U+02057 ⁗ \pppprime QUADRUPLE PRIME
+U+0205D ⁝ \tricolon TRICOLON
+U+02060 ⁠ \nolinebreak WORD JOINER
+U+02070 ⁰ \^0 SUPERSCRIPT ZERO / SUPERSCRIPT DIGIT ZERO
+U+02071 ⁱ \^i SUPERSCRIPT LATIN SMALL LETTER I
+U+02074 ⁴ \^4 SUPERSCRIPT FOUR / SUPERSCRIPT DIGIT FOUR
+U+02075 ⁵ \^5 SUPERSCRIPT FIVE / SUPERSCRIPT DIGIT FIVE
+U+02076 ⁶ \^6 SUPERSCRIPT SIX / SUPERSCRIPT DIGIT SIX
+U+02077 ⁷ \^7 SUPERSCRIPT SEVEN / SUPERSCRIPT DIGIT SEVEN
+U+02078 ⁸ \^8 SUPERSCRIPT EIGHT / SUPERSCRIPT DIGIT EIGHT
+U+02079 ⁹ \^9 SUPERSCRIPT NINE / SUPERSCRIPT DIGIT NINE
+U+0207A ⁺ \^+ SUPERSCRIPT PLUS SIGN
+U+0207B ⁻ \^- SUPERSCRIPT MINUS / SUPERSCRIPT HYPHEN-MINUS
+U+0207C ⁼ \^= SUPERSCRIPT EQUALS SIGN
+U+0207D ⁽ \^( SUPERSCRIPT LEFT PARENTHESIS / SUPERSCRIPT OPENING PARENTHESIS
+U+0207E ⁾ \^) SUPERSCRIPT RIGHT PARENTHESIS / SUPERSCRIPT CLOSING PARENTHESIS
+U+0207F ⁿ \^n SUPERSCRIPT LATIN SMALL LETTER N
+U+02080 ₀ \_0 SUBSCRIPT ZERO / SUBSCRIPT DIGIT ZERO
+U+02081 ₁ \_1 SUBSCRIPT ONE / SUBSCRIPT DIGIT ONE
+U+02082 ₂ \_2 SUBSCRIPT TWO / SUBSCRIPT DIGIT TWO
+U+02083 ₃ \_3 SUBSCRIPT THREE / SUBSCRIPT DIGIT THREE
+U+02084 ₄ \_4 SUBSCRIPT FOUR / SUBSCRIPT DIGIT FOUR
+U+02085 ₅ \_5 SUBSCRIPT FIVE / SUBSCRIPT DIGIT FIVE
+U+02086 ₆ \_6 SUBSCRIPT SIX / SUBSCRIPT DIGIT SIX
+U+02087 ₇ \_7 SUBSCRIPT SEVEN / SUBSCRIPT DIGIT SEVEN
+U+02088 ₈ \_8 SUBSCRIPT EIGHT / SUBSCRIPT DIGIT EIGHT
+U+02089 ₉ \_9 SUBSCRIPT NINE / SUBSCRIPT DIGIT NINE
+U+0208A ₊ \_+ SUBSCRIPT PLUS SIGN
+U+0208B ₋ \_- SUBSCRIPT MINUS / SUBSCRIPT HYPHEN-MINUS
+U+0208C ₌ \_= SUBSCRIPT EQUALS SIGN
+U+0208D ₍ \_( SUBSCRIPT LEFT PARENTHESIS / SUBSCRIPT OPENING PARENTHESIS
+U+0208E ₎ \_) SUBSCRIPT RIGHT PARENTHESIS / SUBSCRIPT CLOSING PARENTHESIS
+U+02090 ₐ \_a LATIN SUBSCRIPT SMALL LETTER A
+U+02091 ₑ \_e LATIN SUBSCRIPT SMALL LETTER E
+U+02092 ₒ \_o LATIN SUBSCRIPT SMALL LETTER O
+U+02093 ₓ \_x LATIN SUBSCRIPT SMALL LETTER X
+U+02094 ₔ \_schwa LATIN SUBSCRIPT SMALL LETTER SCHWA
+U+02095 ₕ \_h LATIN SUBSCRIPT SMALL LETTER H
+U+02096 ₖ \_k LATIN SUBSCRIPT SMALL LETTER K
+U+02097 ₗ \_l LATIN SUBSCRIPT SMALL LETTER L
+U+02098 ₘ \_m LATIN SUBSCRIPT SMALL LETTER M
+U+02099 ₙ \_n LATIN SUBSCRIPT SMALL LETTER N
+U+0209A ₚ \_p LATIN SUBSCRIPT SMALL LETTER P
+U+0209B ₛ \_s LATIN SUBSCRIPT SMALL LETTER S
+U+0209C ₜ \_t LATIN SUBSCRIPT SMALL LETTER T
+U+020A7 ₧ \pes PESETA SIGN
+U+020AC € \euro EURO SIGN
+U+020D0 ◌⃐ \leftharpoonaccent COMBINING LEFT HARPOON ABOVE / NON-SPACING LEFT HARPOON ABOVE
+U+020D1 ◌⃑ \rightharpoonaccent COMBINING RIGHT HARPOON ABOVE / NON-SPACING RIGHT HARPOON ABOVE
+U+020D2 ◌⃒ \vertoverlay COMBINING LONG VERTICAL LINE OVERLAY / NON-SPACING LONG VERTICAL BAR OVERLAY
+U+020D6 ◌⃖ \overleftarrow COMBINING LEFT ARROW ABOVE / NON-SPACING LEFT ARROW ABOVE
+U+020D7 ◌⃗ \vec COMBINING RIGHT ARROW ABOVE / NON-SPACING RIGHT ARROW ABOVE
+U+020DB ◌⃛ \dddot COMBINING THREE DOTS ABOVE / NON-SPACING THREE DOTS ABOVE
+U+020DC ◌⃜ \ddddot COMBINING FOUR DOTS ABOVE / NON-SPACING FOUR DOTS ABOVE
+U+020DD ◌⃝ \enclosecircle COMBINING ENCLOSING CIRCLE / ENCLOSING CIRCLE
+U+020DE ◌⃞ \enclosesquare COMBINING ENCLOSING SQUARE / ENCLOSING SQUARE
+U+020DF ◌⃟ \enclosediamond COMBINING ENCLOSING DIAMOND / ENCLOSING DIAMOND
+U+020E1 ◌⃡ \overleftrightarrow COMBINING LEFT RIGHT ARROW ABOVE / NON-SPACING LEFT RIGHT ARROW ABOVE
+U+020E4 ◌⃤ \enclosetriangle COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+U+020E7 ◌⃧ \annuity COMBINING ANNUITY SYMBOL
+U+020E8 ◌⃨ \threeunderdot COMBINING TRIPLE UNDERDOT
+U+020E9 ◌⃩ \widebridgeabove COMBINING WIDE BRIDGE ABOVE
+U+020EC ◌⃬ \underrightharpoondown COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+U+020ED ◌⃭ \underleftharpoondown COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS
+U+020EE ◌⃮ \underleftarrow COMBINING LEFT ARROW BELOW
+U+020EF ◌⃯ \underrightarrow COMBINING RIGHT ARROW BELOW
+U+020F0 ◌⃰ \asteraccent COMBINING ASTERISK ABOVE
+U+02102 ℂ \bbC DOUBLE-STRUCK CAPITAL C / DOUBLE-STRUCK C
+U+02107 ℇ \eulermascheroni EULER CONSTANT / EULERS
+U+0210A ℊ \scrg SCRIPT SMALL G
+U+0210B ℋ \scrH SCRIPT CAPITAL H / SCRIPT H
+U+0210C ℌ \frakH BLACK-LETTER CAPITAL H / BLACK-LETTER H
+U+0210D ℍ \bbH DOUBLE-STRUCK CAPITAL H / DOUBLE-STRUCK H
+U+0210E ℎ \planck PLANCK CONSTANT
+U+0210F ℏ \hslash PLANCK CONSTANT OVER TWO PI / PLANCK CONSTANT OVER 2 PI
+U+02110 ℐ \scrI SCRIPT CAPITAL I / SCRIPT I
+U+02111 ℑ \Im BLACK-LETTER CAPITAL I / BLACK-LETTER I
+U+02112 ℒ \scrL SCRIPT CAPITAL L / SCRIPT L
+U+02113 ℓ \ell SCRIPT SMALL L
+U+02115 ℕ \bbN DOUBLE-STRUCK CAPITAL N / DOUBLE-STRUCK N
+U+02116 № \numero NUMERO SIGN / NUMERO
+U+02118 ℘ \wp SCRIPT CAPITAL P / SCRIPT P
+U+02119 ℙ \bbP DOUBLE-STRUCK CAPITAL P / DOUBLE-STRUCK P
+U+0211A ℚ \bbQ DOUBLE-STRUCK CAPITAL Q / DOUBLE-STRUCK Q
+U+0211B ℛ \scrR SCRIPT CAPITAL R / SCRIPT R
+U+0211C ℜ \Re BLACK-LETTER CAPITAL R / BLACK-LETTER R
+U+0211D ℝ \bbR DOUBLE-STRUCK CAPITAL R / DOUBLE-STRUCK R
+U+0211E ℞ \xrat PRESCRIPTION TAKE
+U+02122 ™ \trademark, \:tm: TRADE MARK SIGN / TRADEMARK
+U+02124 ℤ \bbZ DOUBLE-STRUCK CAPITAL Z / DOUBLE-STRUCK Z
+U+02126 Ω \ohm OHM SIGN / OHM
+U+02127 ℧ \mho INVERTED OHM SIGN / MHO
+U+02128 ℨ \frakZ BLACK-LETTER CAPITAL Z / BLACK-LETTER Z
+U+02129 ℩ \turnediota TURNED GREEK SMALL LETTER IOTA
+U+0212B Å \Angstrom ANGSTROM SIGN / ANGSTROM UNIT
+U+0212C ℬ \scrB SCRIPT CAPITAL B / SCRIPT B
+U+0212D ℭ \frakC BLACK-LETTER CAPITAL C / BLACK-LETTER C
+U+0212F ℯ \scre, \euler SCRIPT SMALL E
+U+02130 ℰ \scrE SCRIPT CAPITAL E / SCRIPT E
+U+02131 ℱ \scrF SCRIPT CAPITAL F / SCRIPT F
+U+02132 Ⅎ \Finv TURNED CAPITAL F / TURNED F
+U+02133 ℳ \scrM SCRIPT CAPITAL M / SCRIPT M
+U+02134 ℴ \scro SCRIPT SMALL O
+U+02135 ℵ \aleph ALEF SYMBOL / FIRST TRANSFINITE CARDINAL
+U+02136 ℶ \beth BET SYMBOL / SECOND TRANSFINITE CARDINAL
+U+02137 ℷ \gimel GIMEL SYMBOL / THIRD TRANSFINITE CARDINAL
+U+02138 ℸ \daleth DALET SYMBOL / FOURTH TRANSFINITE CARDINAL
+U+02139 ℹ \:information_source: INFORMATION SOURCE
+U+0213C ℼ \bbpi DOUBLE-STRUCK SMALL PI
+U+0213D ℽ \bbgamma DOUBLE-STRUCK SMALL GAMMA
+U+0213E ℾ \bbGamma DOUBLE-STRUCK CAPITAL GAMMA
+U+0213F ℿ \bbPi DOUBLE-STRUCK CAPITAL PI
+U+02140 ⅀ \bbsum DOUBLE-STRUCK N-ARY SUMMATION
+U+02141 ⅁ \Game TURNED SANS-SERIF CAPITAL G
+U+02142 ⅂ \sansLturned TURNED SANS-SERIF CAPITAL L
+U+02143 ⅃ \sansLmirrored REVERSED SANS-SERIF CAPITAL L
+U+02144 ⅄ \Yup TURNED SANS-SERIF CAPITAL Y
+U+02145 ⅅ \bbiD DOUBLE-STRUCK ITALIC CAPITAL D
+U+02146 ⅆ \bbid DOUBLE-STRUCK ITALIC SMALL D
+U+02147 ⅇ \bbie DOUBLE-STRUCK ITALIC SMALL E
+U+02148 ⅈ \bbii DOUBLE-STRUCK ITALIC SMALL I
+U+02149 ⅉ \bbij DOUBLE-STRUCK ITALIC SMALL J
+U+0214A ⅊ \PropertyLine PROPERTY LINE
+U+0214B ⅋ \upand TURNED AMPERSAND
+U+02150 ⅐ \1/7 VULGAR FRACTION ONE SEVENTH
+U+02151 ⅑ \1/9 VULGAR FRACTION ONE NINTH
+U+02152 ⅒ \1/10 VULGAR FRACTION ONE TENTH
+U+02153 ⅓ \1/3 VULGAR FRACTION ONE THIRD / FRACTION ONE THIRD
+U+02154 ⅔ \2/3 VULGAR FRACTION TWO THIRDS / FRACTION TWO THIRDS
+U+02155 ⅕ \1/5 VULGAR FRACTION ONE FIFTH / FRACTION ONE FIFTH
+U+02156 ⅖ \2/5 VULGAR FRACTION TWO FIFTHS / FRACTION TWO FIFTHS
+U+02157 ⅗ \3/5 VULGAR FRACTION THREE FIFTHS / FRACTION THREE FIFTHS
+U+02158 ⅘ \4/5 VULGAR FRACTION FOUR FIFTHS / FRACTION FOUR FIFTHS
+U+02159 ⅙ \1/6 VULGAR FRACTION ONE SIXTH / FRACTION ONE SIXTH
+U+0215A ⅚ \5/6 VULGAR FRACTION FIVE SIXTHS / FRACTION FIVE SIXTHS
+U+0215B ⅛ \1/8 VULGAR FRACTION ONE EIGHTH / FRACTION ONE EIGHTH
+U+0215C ⅜ \3/8 VULGAR FRACTION THREE EIGHTHS / FRACTION THREE EIGHTHS
+U+0215D ⅝ \5/8 VULGAR FRACTION FIVE EIGHTHS / FRACTION FIVE EIGHTHS
+U+0215E ⅞ \7/8 VULGAR FRACTION SEVEN EIGHTHS / FRACTION SEVEN EIGHTHS
+U+0215F ⅟ \1/ FRACTION NUMERATOR ONE
+U+02189 ↉ \0/3 VULGAR FRACTION ZERO THIRDS
+U+02190 ← \leftarrow LEFTWARDS ARROW / LEFT ARROW
+U+02191 ↑ \uparrow UPWARDS ARROW / UP ARROW
+U+02192 → \to, \rightarrow RIGHTWARDS ARROW / RIGHT ARROW
+U+02193 ↓ \downarrow DOWNWARDS ARROW / DOWN ARROW
+U+02194 ↔ \leftrightarrow, \:left_right_arrow: LEFT RIGHT ARROW
+U+02195 ↕ \updownarrow, \:arrow_up_down: UP DOWN ARROW
+U+02196 ↖ \nwarrow, \:arrow_upper_left: NORTH WEST ARROW / UPPER LEFT ARROW
+U+02197 ↗ \nearrow, \:arrow_upper_right: NORTH EAST ARROW / UPPER RIGHT ARROW
+U+02198 ↘ \searrow, \:arrow_lower_right: SOUTH EAST ARROW / LOWER RIGHT ARROW
+U+02199 ↙ \swarrow, \:arrow_lower_left: SOUTH WEST ARROW / LOWER LEFT ARROW
+U+0219A ↚ \nleftarrow LEFTWARDS ARROW WITH STROKE / LEFT ARROW WITH STROKE
+U+0219B ↛ \nrightarrow RIGHTWARDS ARROW WITH STROKE / RIGHT ARROW WITH STROKE
+U+0219C ↜ \leftwavearrow LEFTWARDS WAVE ARROW / LEFT WAVE ARROW
+U+0219D ↝ \rightwavearrow RIGHTWARDS WAVE ARROW / RIGHT WAVE ARROW
+U+0219E ↞ \twoheadleftarrow LEFTWARDS TWO HEADED ARROW / LEFT TWO HEADED ARROW
+U+0219F ↟ \twoheaduparrow UPWARDS TWO HEADED ARROW / UP TWO HEADED ARROW
+U+021A0 ↠ \twoheadrightarrow RIGHTWARDS TWO HEADED ARROW / RIGHT TWO HEADED ARROW
+U+021A1 ↡ \twoheaddownarrow DOWNWARDS TWO HEADED ARROW / DOWN TWO HEADED ARROW
+U+021A2 ↢ \leftarrowtail LEFTWARDS ARROW WITH TAIL / LEFT ARROW WITH TAIL
+U+021A3 ↣ \rightarrowtail RIGHTWARDS ARROW WITH TAIL / RIGHT ARROW WITH TAIL
+U+021A4 ↤ \mapsfrom LEFTWARDS ARROW FROM BAR / LEFT ARROW FROM BAR
+U+021A5 ↥ \mapsup UPWARDS ARROW FROM BAR / UP ARROW FROM BAR
+U+021A6 ↦ \mapsto RIGHTWARDS ARROW FROM BAR / RIGHT ARROW FROM BAR
+U+021A7 ↧ \mapsdown DOWNWARDS ARROW FROM BAR / DOWN ARROW FROM BAR
+U+021A8 ↨ \updownarrowbar UP DOWN ARROW WITH BASE
+U+021A9 ↩ \hookleftarrow, \:leftwards_arrow_with_hook: LEFTWARDS ARROW WITH HOOK / LEFT ARROW WITH HOOK
+U+021AA ↪ \hookrightarrow, \:arrow_right_hook: RIGHTWARDS ARROW WITH HOOK / RIGHT ARROW WITH HOOK
+U+021AB ↫ \looparrowleft LEFTWARDS ARROW WITH LOOP / LEFT ARROW WITH LOOP
+U+021AC ↬ \looparrowright RIGHTWARDS ARROW WITH LOOP / RIGHT ARROW WITH LOOP
+U+021AD ↭ \leftrightsquigarrow LEFT RIGHT WAVE ARROW
+U+021AE ↮ \nleftrightarrow LEFT RIGHT ARROW WITH STROKE
+U+021AF ↯ \downzigzagarrow DOWNWARDS ZIGZAG ARROW / DOWN ZIGZAG ARROW
+U+021B0 ↰ \Lsh UPWARDS ARROW WITH TIP LEFTWARDS / UP ARROW WITH TIP LEFT
+U+021B1 ↱ \Rsh UPWARDS ARROW WITH TIP RIGHTWARDS / UP ARROW WITH TIP RIGHT
+U+021B2 ↲ \Ldsh DOWNWARDS ARROW WITH TIP LEFTWARDS / DOWN ARROW WITH TIP LEFT
+U+021B3 ↳ \Rdsh DOWNWARDS ARROW WITH TIP RIGHTWARDS / DOWN ARROW WITH TIP RIGHT
+U+021B4 ↴ \linefeed RIGHTWARDS ARROW WITH CORNER DOWNWARDS / RIGHT ARROW WITH CORNER DOWN
+U+021B5 ↵ \carriagereturn DOWNWARDS ARROW WITH CORNER LEFTWARDS / DOWN ARROW WITH CORNER LEFT
+U+021B6 ↶ \curvearrowleft ANTICLOCKWISE TOP SEMICIRCLE ARROW
+U+021B7 ↷ \curvearrowright CLOCKWISE TOP SEMICIRCLE ARROW
+U+021B8 ↸ \barovernorthwestarrow NORTH WEST ARROW TO LONG BAR / UPPER LEFT ARROW TO LONG BAR
+U+021B9 ↹ \barleftarrowrightarrowbar LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR / LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR
+U+021BA ↺ \circlearrowleft ANTICLOCKWISE OPEN CIRCLE ARROW
+U+021BB ↻ \circlearrowright CLOCKWISE OPEN CIRCLE ARROW
+U+021BC ↼ \leftharpoonup LEFTWARDS HARPOON WITH BARB UPWARDS / LEFT HARPOON WITH BARB UP
+U+021BD ↽ \leftharpoondown LEFTWARDS HARPOON WITH BARB DOWNWARDS / LEFT HARPOON WITH BARB DOWN
+U+021BE ↾ \upharpoonright UPWARDS HARPOON WITH BARB RIGHTWARDS / UP HARPOON WITH BARB RIGHT
+U+021BF ↿ \upharpoonleft UPWARDS HARPOON WITH BARB LEFTWARDS / UP HARPOON WITH BARB LEFT
+U+021C0 ⇀ \rightharpoonup RIGHTWARDS HARPOON WITH BARB UPWARDS / RIGHT HARPOON WITH BARB UP
+U+021C1 ⇁ \rightharpoondown RIGHTWARDS HARPOON WITH BARB DOWNWARDS / RIGHT HARPOON WITH BARB DOWN
+U+021C2 ⇂ \downharpoonright DOWNWARDS HARPOON WITH BARB RIGHTWARDS / DOWN HARPOON WITH BARB RIGHT
+U+021C3 ⇃ \downharpoonleft DOWNWARDS HARPOON WITH BARB LEFTWARDS / DOWN HARPOON WITH BARB LEFT
+U+021C4 ⇄ \rightleftarrows RIGHTWARDS ARROW OVER LEFTWARDS ARROW / RIGHT ARROW OVER LEFT ARROW
+U+021C5 ⇅ \dblarrowupdown UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW / UP ARROW LEFT OF DOWN ARROW
+U+021C6 ⇆ \leftrightarrows LEFTWARDS ARROW OVER RIGHTWARDS ARROW / LEFT ARROW OVER RIGHT ARROW
+U+021C7 ⇇ \leftleftarrows LEFTWARDS PAIRED ARROWS / LEFT PAIRED ARROWS
+U+021C8 ⇈ \upuparrows UPWARDS PAIRED ARROWS / UP PAIRED ARROWS
+U+021C9 ⇉ \rightrightarrows RIGHTWARDS PAIRED ARROWS / RIGHT PAIRED ARROWS
+U+021CA ⇊ \downdownarrows DOWNWARDS PAIRED ARROWS / DOWN PAIRED ARROWS
+U+021CB ⇋ \leftrightharpoons LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON / LEFT HARPOON OVER RIGHT HARPOON
+U+021CC ⇌ \rightleftharpoons RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON / RIGHT HARPOON OVER LEFT HARPOON
+U+021CD ⇍ \nLeftarrow LEFTWARDS DOUBLE ARROW WITH STROKE / LEFT DOUBLE ARROW WITH STROKE
+U+021CE ⇎ \nLeftrightarrow LEFT RIGHT DOUBLE ARROW WITH STROKE
+U+021CF ⇏ \nRightarrow RIGHTWARDS DOUBLE ARROW WITH STROKE / RIGHT DOUBLE ARROW WITH STROKE
+U+021D0 ⇐ \Leftarrow LEFTWARDS DOUBLE ARROW / LEFT DOUBLE ARROW
+U+021D1 ⇑ \Uparrow UPWARDS DOUBLE ARROW / UP DOUBLE ARROW
+U+021D2 ⇒ \Rightarrow RIGHTWARDS DOUBLE ARROW / RIGHT DOUBLE ARROW
+U+021D3 ⇓ \Downarrow DOWNWARDS DOUBLE ARROW / DOWN DOUBLE ARROW
+U+021D4 ⇔ \Leftrightarrow LEFT RIGHT DOUBLE ARROW
+U+021D5 ⇕ \Updownarrow UP DOWN DOUBLE ARROW
+U+021D6 ⇖ \Nwarrow NORTH WEST DOUBLE ARROW / UPPER LEFT DOUBLE ARROW
+U+021D7 ⇗ \Nearrow NORTH EAST DOUBLE ARROW / UPPER RIGHT DOUBLE ARROW
+U+021D8 ⇘ \Searrow SOUTH EAST DOUBLE ARROW / LOWER RIGHT DOUBLE ARROW
+U+021D9 ⇙ \Swarrow SOUTH WEST DOUBLE ARROW / LOWER LEFT DOUBLE ARROW
+U+021DA ⇚ \Lleftarrow LEFTWARDS TRIPLE ARROW / LEFT TRIPLE ARROW
+U+021DB ⇛ \Rrightarrow RIGHTWARDS TRIPLE ARROW / RIGHT TRIPLE ARROW
+U+021DC ⇜ \leftsquigarrow LEFTWARDS SQUIGGLE ARROW / LEFT SQUIGGLE ARROW
+U+021DD ⇝ \rightsquigarrow RIGHTWARDS SQUIGGLE ARROW / RIGHT SQUIGGLE ARROW
+U+021DE ⇞ \nHuparrow UPWARDS ARROW WITH DOUBLE STROKE / UP ARROW WITH DOUBLE STROKE
+U+021DF ⇟ \nHdownarrow DOWNWARDS ARROW WITH DOUBLE STROKE / DOWN ARROW WITH DOUBLE STROKE
+U+021E0 ⇠ \leftdasharrow LEFTWARDS DASHED ARROW / LEFT DASHED ARROW
+U+021E1 ⇡ \updasharrow UPWARDS DASHED ARROW / UP DASHED ARROW
+U+021E2 ⇢ \rightdasharrow RIGHTWARDS DASHED ARROW / RIGHT DASHED ARROW
+U+021E3 ⇣ \downdasharrow DOWNWARDS DASHED ARROW / DOWN DASHED ARROW
+U+021E4 ⇤ \barleftarrow LEFTWARDS ARROW TO BAR / LEFT ARROW TO BAR
+U+021E5 ⇥ \rightarrowbar RIGHTWARDS ARROW TO BAR / RIGHT ARROW TO BAR
+U+021E6 ⇦ \leftwhitearrow LEFTWARDS WHITE ARROW / WHITE LEFT ARROW
+U+021E7 ⇧ \upwhitearrow UPWARDS WHITE ARROW / WHITE UP ARROW
+U+021E8 ⇨ \rightwhitearrow RIGHTWARDS WHITE ARROW / WHITE RIGHT ARROW
+U+021E9 ⇩ \downwhitearrow DOWNWARDS WHITE ARROW / WHITE DOWN ARROW
+U+021EA ⇪ \whitearrowupfrombar UPWARDS WHITE ARROW FROM BAR / WHITE UP ARROW FROM BAR
+U+021F4 ⇴ \circleonrightarrow RIGHT ARROW WITH SMALL CIRCLE
+U+021F5 ⇵ \DownArrowUpArrow DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
+U+021F6 ⇶ \rightthreearrows THREE RIGHTWARDS ARROWS
+U+021F7 ⇷ \nvleftarrow LEFTWARDS ARROW WITH VERTICAL STROKE
+U+021F8 ⇸ \nvrightarrow RIGHTWARDS ARROW WITH VERTICAL STROKE
+U+021F9 ⇹ \nvleftrightarrow LEFT RIGHT ARROW WITH VERTICAL STROKE
+U+021FA ⇺ \nVleftarrow LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+U+021FB ⇻ \nVrightarrow RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+U+021FC ⇼ \nVleftrightarrow LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
+U+021FD ⇽ \leftarrowtriangle LEFTWARDS OPEN-HEADED ARROW
+U+021FE ⇾ \rightarrowtriangle RIGHTWARDS OPEN-HEADED ARROW
+U+021FF ⇿ \leftrightarrowtriangle LEFT RIGHT OPEN-HEADED ARROW
+U+02200 ∀ \forall FOR ALL
+U+02201 ∁ \complement COMPLEMENT
+U+02202 ∂ \partial PARTIAL DIFFERENTIAL
+U+02203 ∃ \exists THERE EXISTS
+U+02204 ∄ \nexists THERE DOES NOT EXIST
+U+02205 ∅ \varnothing, \emptyset EMPTY SET
+U+02206 ∆ \increment INCREMENT
+U+02207 ∇ \del, \nabla NABLA
+U+02208 ∈ \in ELEMENT OF
+U+02209 ∉ \notin NOT AN ELEMENT OF
+U+0220A ∊ \smallin SMALL ELEMENT OF
+U+0220B ∋ \ni CONTAINS AS MEMBER
+U+0220C ∌ \nni DOES NOT CONTAIN AS MEMBER
+U+0220D ∍ \smallni SMALL CONTAINS AS MEMBER
+U+0220E ∎ \QED END OF PROOF
+U+0220F ∏ \prod N-ARY PRODUCT
+U+02210 ∐ \coprod N-ARY COPRODUCT
+U+02211 ∑ \sum N-ARY SUMMATION
+U+02212 − \minus MINUS SIGN
+U+02213 ∓ \mp MINUS-OR-PLUS SIGN
+U+02214 ∔ \dotplus DOT PLUS
+U+02216 ∖ \setminus SET MINUS
+U+02217 ∗ \ast ASTERISK OPERATOR
+U+02218 ∘ \circ RING OPERATOR
+U+02219 ∙ \vysmblkcircle BULLET OPERATOR
+U+0221A √ \surd, \sqrt SQUARE ROOT
+U+0221B ∛ \cbrt CUBE ROOT
+U+0221C ∜ \fourthroot FOURTH ROOT
+U+0221D ∝ \propto PROPORTIONAL TO
+U+0221E ∞ \infty INFINITY
+U+0221F ∟ \rightangle RIGHT ANGLE
+U+02220 ∠ \angle ANGLE
+U+02221 ∡ \measuredangle MEASURED ANGLE
+U+02222 ∢ \sphericalangle SPHERICAL ANGLE
+U+02223 ∣ \mid DIVIDES
+U+02224 ∤ \nmid DOES NOT DIVIDE
+U+02225 ∥ \parallel PARALLEL TO
+U+02226 ∦ \nparallel NOT PARALLEL TO
+U+02227 ∧ \wedge LOGICAL AND
+U+02228 ∨ \vee LOGICAL OR
+U+02229 ∩ \cap INTERSECTION
+U+0222A ∪ \cup UNION
+U+0222B ∫ \int INTEGRAL
+U+0222C ∬ \iint DOUBLE INTEGRAL
+U+0222D ∭ \iiint TRIPLE INTEGRAL
+U+0222E ∮ \oint CONTOUR INTEGRAL
+U+0222F ∯ \oiint SURFACE INTEGRAL
+U+02230 ∰ \oiiint VOLUME INTEGRAL
+U+02231 ∱ \clwintegral CLOCKWISE INTEGRAL
+U+02232 ∲ \varointclockwise CLOCKWISE CONTOUR INTEGRAL
+U+02233 ∳ \ointctrclockwise ANTICLOCKWISE CONTOUR INTEGRAL
+U+02234 ∴ \therefore THEREFORE
+U+02235 ∵ \because BECAUSE
+U+02237 ∷ \Colon PROPORTION
+U+02238 ∸ \dotminus DOT MINUS
+U+0223A ∺ \dotsminusdots GEOMETRIC PROPORTION
+U+0223B ∻ \kernelcontraction HOMOTHETIC
+U+0223C ∼ \sim TILDE OPERATOR
+U+0223D ∽ \backsim REVERSED TILDE
+U+0223E ∾ \lazysinv INVERTED LAZY S
+U+0223F ∿ \sinewave SINE WAVE
+U+02240 ≀ \wr WREATH PRODUCT
+U+02241 ≁ \nsim NOT TILDE
+U+02242 ≂ \eqsim MINUS TILDE
+U+02242 + U+00338 ≂̸ \neqsim MINUS TILDE + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02243 ≃ \simeq ASYMPTOTICALLY EQUAL TO
+U+02244 ≄ \nsime NOT ASYMPTOTICALLY EQUAL TO
+U+02245 ≅ \cong APPROXIMATELY EQUAL TO
+U+02246 ≆ \approxnotequal APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+U+02247 ≇ \ncong NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+U+02248 ≈ \approx ALMOST EQUAL TO
+U+02249 ≉ \napprox NOT ALMOST EQUAL TO
+U+0224A ≊ \approxeq ALMOST EQUAL OR EQUAL TO
+U+0224B ≋ \tildetrpl TRIPLE TILDE
+U+0224C ≌ \allequal ALL EQUAL TO
+U+0224D ≍ \asymp EQUIVALENT TO
+U+0224E ≎ \Bumpeq GEOMETRICALLY EQUIVALENT TO
+U+0224E + U+00338 ≎̸ \nBumpeq GEOMETRICALLY EQUIVALENT TO + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+0224F ≏ \bumpeq DIFFERENCE BETWEEN
+U+0224F + U+00338 ≏̸ \nbumpeq DIFFERENCE BETWEEN + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02250 ≐ \doteq APPROACHES THE LIMIT
+U+02251 ≑ \Doteq GEOMETRICALLY EQUAL TO
+U+02252 ≒ \fallingdotseq APPROXIMATELY EQUAL TO OR THE IMAGE OF
+U+02253 ≓ \risingdotseq IMAGE OF OR APPROXIMATELY EQUAL TO
+U+02254 ≔ \coloneq COLON EQUALS / COLON EQUAL
+U+02255 ≕ \eqcolon EQUALS COLON / EQUAL COLON
+U+02256 ≖ \eqcirc RING IN EQUAL TO
+U+02257 ≗ \circeq RING EQUAL TO
+U+02258 ≘ \arceq CORRESPONDS TO
+U+02259 ≙ \wedgeq ESTIMATES
+U+0225A ≚ \veeeq EQUIANGULAR TO
+U+0225B ≛ \starequal STAR EQUALS
+U+0225C ≜ \triangleq DELTA EQUAL TO
+U+0225D ≝ \eqdef EQUAL TO BY DEFINITION
+U+0225E ≞ \measeq MEASURED BY
+U+0225F ≟ \questeq QUESTIONED EQUAL TO
+U+02260 ≠ \ne NOT EQUAL TO
+U+02261 ≡ \equiv IDENTICAL TO
+U+02262 ≢ \nequiv NOT IDENTICAL TO
+U+02263 ≣ \Equiv STRICTLY EQUIVALENT TO
+U+02264 ≤ \le, \leq LESS-THAN OR EQUAL TO / LESS THAN OR EQUAL TO
+U+02265 ≥ \ge, \geq GREATER-THAN OR EQUAL TO / GREATER THAN OR EQUAL TO
+U+02266 ≦ \leqq LESS-THAN OVER EQUAL TO / LESS THAN OVER EQUAL TO
+U+02267 ≧ \geqq GREATER-THAN OVER EQUAL TO / GREATER THAN OVER EQUAL TO
+U+02268 ≨ \lneqq LESS-THAN BUT NOT EQUAL TO / LESS THAN BUT NOT EQUAL TO
+U+02268 + U+0FE00 ≨︀ \lvertneqq LESS-THAN BUT NOT EQUAL TO / LESS THAN BUT NOT EQUAL TO + VARIATION SELECTOR-1
+U+02269 ≩ \gneqq GREATER-THAN BUT NOT EQUAL TO / GREATER THAN BUT NOT EQUAL TO
+U+02269 + U+0FE00 ≩︀ \gvertneqq GREATER-THAN BUT NOT EQUAL TO / GREATER THAN BUT NOT EQUAL TO + VARIATION SELECTOR-1
+U+0226A ≪ \ll MUCH LESS-THAN / MUCH LESS THAN
+U+0226A + U+00338 ≪̸ \NotLessLess MUCH LESS-THAN / MUCH LESS THAN + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+0226B ≫ \gg MUCH GREATER-THAN / MUCH GREATER THAN
+U+0226B + U+00338 ≫̸ \NotGreaterGreater MUCH GREATER-THAN / MUCH GREATER THAN + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+0226C ≬ \between BETWEEN
+U+0226D ≭ \nasymp NOT EQUIVALENT TO
+U+0226E ≮ \nless NOT LESS-THAN / NOT LESS THAN
+U+0226F ≯ \ngtr NOT GREATER-THAN / NOT GREATER THAN
+U+02270 ≰ \nleq NEITHER LESS-THAN NOR EQUAL TO / NEITHER LESS THAN NOR EQUAL TO
+U+02271 ≱ \ngeq NEITHER GREATER-THAN NOR EQUAL TO / NEITHER GREATER THAN NOR EQUAL TO
+U+02272 ≲ \lesssim LESS-THAN OR EQUIVALENT TO / LESS THAN OR EQUIVALENT TO
+U+02273 ≳ \gtrsim GREATER-THAN OR EQUIVALENT TO / GREATER THAN OR EQUIVALENT TO
+U+02274 ≴ \nlesssim NEITHER LESS-THAN NOR EQUIVALENT TO / NEITHER LESS THAN NOR EQUIVALENT TO
+U+02275 ≵ \ngtrsim NEITHER GREATER-THAN NOR EQUIVALENT TO / NEITHER GREATER THAN NOR EQUIVALENT TO
+U+02276 ≶ \lessgtr LESS-THAN OR GREATER-THAN / LESS THAN OR GREATER THAN
+U+02277 ≷ \gtrless GREATER-THAN OR LESS-THAN / GREATER THAN OR LESS THAN
+U+02278 ≸ \notlessgreater NEITHER LESS-THAN NOR GREATER-THAN / NEITHER LESS THAN NOR GREATER THAN
+U+02279 ≹ \notgreaterless NEITHER GREATER-THAN NOR LESS-THAN / NEITHER GREATER THAN NOR LESS THAN
+U+0227A ≺ \prec PRECEDES
+U+0227B ≻ \succ SUCCEEDS
+U+0227C ≼ \preccurlyeq PRECEDES OR EQUAL TO
+U+0227D ≽ \succcurlyeq SUCCEEDS OR EQUAL TO
+U+0227E ≾ \precsim PRECEDES OR EQUIVALENT TO
+U+0227E + U+00338 ≾̸ \nprecsim PRECEDES OR EQUIVALENT TO + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+0227F ≿ \succsim SUCCEEDS OR EQUIVALENT TO
+U+0227F + U+00338 ≿̸ \nsuccsim SUCCEEDS OR EQUIVALENT TO + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02280 ⊀ \nprec DOES NOT PRECEDE
+U+02281 ⊁ \nsucc DOES NOT SUCCEED
+U+02282 ⊂ \subset SUBSET OF
+U+02283 ⊃ \supset SUPERSET OF
+U+02284 ⊄ \nsubset NOT A SUBSET OF
+U+02285 ⊅ \nsupset NOT A SUPERSET OF
+U+02286 ⊆ \subseteq SUBSET OF OR EQUAL TO
+U+02287 ⊇ \supseteq SUPERSET OF OR EQUAL TO
+U+02288 ⊈ \nsubseteq NEITHER A SUBSET OF NOR EQUAL TO
+U+02289 ⊉ \nsupseteq NEITHER A SUPERSET OF NOR EQUAL TO
+U+0228A ⊊ \subsetneq SUBSET OF WITH NOT EQUAL TO / SUBSET OF OR NOT EQUAL TO
+U+0228A + U+0FE00 ⊊︀ \varsubsetneqq SUBSET OF WITH NOT EQUAL TO / SUBSET OF OR NOT EQUAL TO + VARIATION SELECTOR-1
+U+0228B ⊋ \supsetneq SUPERSET OF WITH NOT EQUAL TO / SUPERSET OF OR NOT EQUAL TO
+U+0228B + U+0FE00 ⊋︀ \varsupsetneq SUPERSET OF WITH NOT EQUAL TO / SUPERSET OF OR NOT EQUAL TO + VARIATION SELECTOR-1
+U+0228D ⊍ \cupdot MULTISET MULTIPLICATION
+U+0228E ⊎ \uplus MULTISET UNION
+U+0228F ⊏ \sqsubset SQUARE IMAGE OF
+U+0228F + U+00338 ⊏̸ \NotSquareSubset SQUARE IMAGE OF + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02290 ⊐ \sqsupset SQUARE ORIGINAL OF
+U+02290 + U+00338 ⊐̸ \NotSquareSuperset SQUARE ORIGINAL OF + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02291 ⊑ \sqsubseteq SQUARE IMAGE OF OR EQUAL TO
+U+02292 ⊒ \sqsupseteq SQUARE ORIGINAL OF OR EQUAL TO
+U+02293 ⊓ \sqcap SQUARE CAP
+U+02294 ⊔ \sqcup SQUARE CUP
+U+02295 ⊕ \oplus CIRCLED PLUS
+U+02296 ⊖ \ominus CIRCLED MINUS
+U+02297 ⊗ \otimes CIRCLED TIMES
+U+02298 ⊘ \oslash CIRCLED DIVISION SLASH
+U+02299 ⊙ \odot CIRCLED DOT OPERATOR
+U+0229A ⊚ \circledcirc CIRCLED RING OPERATOR
+U+0229B ⊛ \circledast CIRCLED ASTERISK OPERATOR
+U+0229C ⊜ \circledequal CIRCLED EQUALS
+U+0229D ⊝ \circleddash CIRCLED DASH
+U+0229E ⊞ \boxplus SQUARED PLUS
+U+0229F ⊟ \boxminus SQUARED MINUS
+U+022A0 ⊠ \boxtimes SQUARED TIMES
+U+022A1 ⊡ \boxdot SQUARED DOT OPERATOR
+U+022A2 ⊢ \vdash RIGHT TACK
+U+022A3 ⊣ \dashv LEFT TACK
+U+022A4 ⊤ \top DOWN TACK
+U+022A5 ⊥ \bot UP TACK
+U+022A7 ⊧ \models MODELS
+U+022A8 ⊨ \vDash TRUE
+U+022A9 ⊩ \Vdash FORCES
+U+022AA ⊪ \Vvdash TRIPLE VERTICAL BAR RIGHT TURNSTILE
+U+022AB ⊫ \VDash DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+U+022AC ⊬ \nvdash DOES NOT PROVE
+U+022AD ⊭ \nvDash NOT TRUE
+U+022AE ⊮ \nVdash DOES NOT FORCE
+U+022AF ⊯ \nVDash NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+U+022B0 ⊰ \prurel PRECEDES UNDER RELATION
+U+022B1 ⊱ \scurel SUCCEEDS UNDER RELATION
+U+022B2 ⊲ \vartriangleleft NORMAL SUBGROUP OF
+U+022B3 ⊳ \vartriangleright CONTAINS AS NORMAL SUBGROUP
+U+022B4 ⊴ \trianglelefteq NORMAL SUBGROUP OF OR EQUAL TO
+U+022B5 ⊵ \trianglerighteq CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+U+022B6 ⊶ \original ORIGINAL OF
+U+022B7 ⊷ \image IMAGE OF
+U+022B8 ⊸ \multimap MULTIMAP
+U+022B9 ⊹ \hermitconjmatrix HERMITIAN CONJUGATE MATRIX
+U+022BA ⊺ \intercal INTERCALATE
+U+022BB ⊻ \veebar, \xor XOR
+U+022BC ⊼ \barwedge NAND
+U+022BD ⊽ \barvee NOR
+U+022BE ⊾ \rightanglearc RIGHT ANGLE WITH ARC
+U+022BF ⊿ \varlrtriangle RIGHT TRIANGLE
+U+022C0 ⋀ \bigwedge N-ARY LOGICAL AND
+U+022C1 ⋁ \bigvee N-ARY LOGICAL OR
+U+022C2 ⋂ \bigcap N-ARY INTERSECTION
+U+022C3 ⋃ \bigcup N-ARY UNION
+U+022C4 ⋄ \diamond DIAMOND OPERATOR
+U+022C5 ⋅ \cdot DOT OPERATOR
+U+022C6 ⋆ \star STAR OPERATOR
+U+022C7 ⋇ \divideontimes DIVISION TIMES
+U+022C8 ⋈ \bowtie BOWTIE
+U+022C9 ⋉ \ltimes LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
+U+022CA ⋊ \rtimes RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
+U+022CB ⋋ \leftthreetimes LEFT SEMIDIRECT PRODUCT
+U+022CC ⋌ \rightthreetimes RIGHT SEMIDIRECT PRODUCT
+U+022CD ⋍ \backsimeq REVERSED TILDE EQUALS
+U+022CE ⋎ \curlyvee CURLY LOGICAL OR
+U+022CF ⋏ \curlywedge CURLY LOGICAL AND
+U+022D0 ⋐ \Subset DOUBLE SUBSET
+U+022D1 ⋑ \Supset DOUBLE SUPERSET
+U+022D2 ⋒ \Cap DOUBLE INTERSECTION
+U+022D3 ⋓ \Cup DOUBLE UNION
+U+022D4 ⋔ \pitchfork PITCHFORK
+U+022D5 ⋕ \equalparallel EQUAL AND PARALLEL TO
+U+022D6 ⋖ \lessdot LESS-THAN WITH DOT / LESS THAN WITH DOT
+U+022D7 ⋗ \gtrdot GREATER-THAN WITH DOT / GREATER THAN WITH DOT
+U+022D8 ⋘ \verymuchless VERY MUCH LESS-THAN / VERY MUCH LESS THAN
+U+022D9 ⋙ \ggg VERY MUCH GREATER-THAN / VERY MUCH GREATER THAN
+U+022DA ⋚ \lesseqgtr LESS-THAN EQUAL TO OR GREATER-THAN / LESS THAN EQUAL TO OR GREATER THAN
+U+022DB ⋛ \gtreqless GREATER-THAN EQUAL TO OR LESS-THAN / GREATER THAN EQUAL TO OR LESS THAN
+U+022DC ⋜ \eqless EQUAL TO OR LESS-THAN / EQUAL TO OR LESS THAN
+U+022DD ⋝ \eqgtr EQUAL TO OR GREATER-THAN / EQUAL TO OR GREATER THAN
+U+022DE ⋞ \curlyeqprec EQUAL TO OR PRECEDES
+U+022DF ⋟ \curlyeqsucc EQUAL TO OR SUCCEEDS
+U+022E0 ⋠ \npreccurlyeq DOES NOT PRECEDE OR EQUAL
+U+022E1 ⋡ \nsucccurlyeq DOES NOT SUCCEED OR EQUAL
+U+022E2 ⋢ \nsqsubseteq NOT SQUARE IMAGE OF OR EQUAL TO
+U+022E3 ⋣ \nsqsupseteq NOT SQUARE ORIGINAL OF OR EQUAL TO
+U+022E4 ⋤ \sqsubsetneq SQUARE IMAGE OF OR NOT EQUAL TO
+U+022E5 ⋥ \sqspne SQUARE ORIGINAL OF OR NOT EQUAL TO
+U+022E6 ⋦ \lnsim LESS-THAN BUT NOT EQUIVALENT TO / LESS THAN BUT NOT EQUIVALENT TO
+U+022E7 ⋧ \gnsim GREATER-THAN BUT NOT EQUIVALENT TO / GREATER THAN BUT NOT EQUIVALENT TO
+U+022E8 ⋨ \precnsim PRECEDES BUT NOT EQUIVALENT TO
+U+022E9 ⋩ \succnsim SUCCEEDS BUT NOT EQUIVALENT TO
+U+022EA ⋪ \ntriangleleft NOT NORMAL SUBGROUP OF
+U+022EB ⋫ \ntriangleright DOES NOT CONTAIN AS NORMAL SUBGROUP
+U+022EC ⋬ \ntrianglelefteq NOT NORMAL SUBGROUP OF OR EQUAL TO
+U+022ED ⋭ \ntrianglerighteq DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+U+022EE ⋮ \vdots VERTICAL ELLIPSIS
+U+022EF ⋯ \cdots MIDLINE HORIZONTAL ELLIPSIS
+U+022F0 ⋰ \adots UP RIGHT DIAGONAL ELLIPSIS
+U+022F1 ⋱ \ddots DOWN RIGHT DIAGONAL ELLIPSIS
+U+022F2 ⋲ \disin ELEMENT OF WITH LONG HORIZONTAL STROKE
+U+022F3 ⋳ \varisins ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+U+022F4 ⋴ \isins SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+U+022F5 ⋵ \isindot ELEMENT OF WITH DOT ABOVE
+U+022F6 ⋶ \varisinobar ELEMENT OF WITH OVERBAR
+U+022F7 ⋷ \isinobar SMALL ELEMENT OF WITH OVERBAR
+U+022F8 ⋸ \isinvb ELEMENT OF WITH UNDERBAR
+U+022F9 ⋹ \isinE ELEMENT OF WITH TWO HORIZONTAL STROKES
+U+022FA ⋺ \nisd CONTAINS WITH LONG HORIZONTAL STROKE
+U+022FB ⋻ \varnis CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+U+022FC ⋼ \nis SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+U+022FD ⋽ \varniobar CONTAINS WITH OVERBAR
+U+022FE ⋾ \niobar SMALL CONTAINS WITH OVERBAR
+U+022FF ⋿ \bagmember Z NOTATION BAG MEMBERSHIP
+U+02300 ⌀ \diameter DIAMETER SIGN
+U+02302 ⌂ \house HOUSE
+U+02305 ⌅ \varbarwedge PROJECTIVE
+U+02306 ⌆ \vardoublebarwedge PERSPECTIVE
+U+02308 ⌈ \lceil LEFT CEILING
+U+02309 ⌉ \rceil RIGHT CEILING
+U+0230A ⌊ \lfloor LEFT FLOOR
+U+0230B ⌋ \rfloor RIGHT FLOOR
+U+02310 ⌐ \invnot REVERSED NOT SIGN
+U+02311 ⌑ \sqlozenge SQUARE LOZENGE
+U+02312 ⌒ \profline ARC
+U+02313 ⌓ \profsurf SEGMENT
+U+02315 ⌕ \recorder TELEPHONE RECORDER
+U+02317 ⌗ \viewdata VIEWDATA SQUARE
+U+02319 ⌙ \turnednot TURNED NOT SIGN
+U+0231A ⌚ \:watch: WATCH
+U+0231B ⌛ \:hourglass: HOURGLASS
+U+0231C ⌜ \ulcorner TOP LEFT CORNER
+U+0231D ⌝ \urcorner TOP RIGHT CORNER
+U+0231E ⌞ \llcorner BOTTOM LEFT CORNER
+U+0231F ⌟ \lrcorner BOTTOM RIGHT CORNER
+U+02322 ⌢ \frown FROWN
+U+02323 ⌣ \smile SMILE
+U+0232C ⌬ \varhexagonlrbonds BENZENE RING
+U+02332 ⌲ \conictaper CONICAL TAPER
+U+02336 ⌶ \topbot APL FUNCTIONAL SYMBOL I-BEAM
+U+0233D ⌽ \obar APL FUNCTIONAL SYMBOL CIRCLE STILE
+U+0233F ⌿ \notslash APL FUNCTIONAL SYMBOL SLASH BAR
+U+02340 ⍀ \notbackslash APL FUNCTIONAL SYMBOL BACKSLASH BAR
+U+02353 ⍓ \boxupcaret APL FUNCTIONAL SYMBOL QUAD UP CARET
+U+02370 ⍰ \boxquestion APL FUNCTIONAL SYMBOL QUAD QUESTION
+U+02394 ⎔ \hexagon SOFTWARE-FUNCTION SYMBOL
+U+023A3 ⎣ \dlcorn LEFT SQUARE BRACKET LOWER CORNER
+U+023B0 ⎰ \lmoustache UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
+U+023B1 ⎱ \rmoustache UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
+U+023B4 ⎴ \overbracket TOP SQUARE BRACKET
+U+023B5 ⎵ \underbracket BOTTOM SQUARE BRACKET
+U+023B6 ⎶ \bbrktbrk BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
+U+023B7 ⎷ \sqrtbottom RADICAL SYMBOL BOTTOM
+U+023B8 ⎸ \lvboxline LEFT VERTICAL BOX LINE
+U+023B9 ⎹ \rvboxline RIGHT VERTICAL BOX LINE
+U+023CE ⏎ \varcarriagereturn RETURN SYMBOL
+U+023DE ⏞ \overbrace TOP CURLY BRACKET
+U+023DF ⏟ \underbrace BOTTOM CURLY BRACKET
+U+023E2 ⏢ \trapezium WHITE TRAPEZIUM
+U+023E3 ⏣ \benzenr BENZENE RING WITH CIRCLE
+U+023E4 ⏤ \strns STRAIGHTNESS
+U+023E5 ⏥ \fltns FLATNESS
+U+023E6 ⏦ \accurrent AC CURRENT
+U+023E7 ⏧ \elinters ELECTRICAL INTERSECTION
+U+023E9 ⏩ \:fast_forward: BLACK RIGHT-POINTING DOUBLE TRIANGLE
+U+023EA ⏪ \:rewind: BLACK LEFT-POINTING DOUBLE TRIANGLE
+U+023EB ⏫ \:arrow_double_up: BLACK UP-POINTING DOUBLE TRIANGLE
+U+023EC ⏬ \:arrow_double_down: BLACK DOWN-POINTING DOUBLE TRIANGLE
+U+023F0 ⏰ \:alarm_clock: ALARM CLOCK
+U+023F3 ⏳ \:hourglass_flowing_sand: HOURGLASS WITH FLOWING SAND
+U+02422 ␢ \blanksymbol BLANK SYMBOL / BLANK
+U+02423 ␣ \visiblespace OPEN BOX
+U+024C2 Ⓜ \:m: CIRCLED LATIN CAPITAL LETTER M
+U+024C8 Ⓢ \circledS CIRCLED LATIN CAPITAL LETTER S
+U+02506 ┆ \dshfnc BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL / FORMS LIGHT TRIPLE DASH VERTICAL
+U+02519 ┙ \sqfnw BOX DRAWINGS UP LIGHT AND LEFT HEAVY / FORMS UP LIGHT AND LEFT HEAVY
+U+02571 ╱ \diagup BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT / FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+U+02572 ╲ \diagdown BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT / FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+U+02580 ▀ \blockuphalf UPPER HALF BLOCK
+U+02584 ▄ \blocklowhalf LOWER HALF BLOCK
+U+02588 █ \blockfull FULL BLOCK
+U+0258C ▌ \blocklefthalf LEFT HALF BLOCK
+U+02590 ▐ \blockrighthalf RIGHT HALF BLOCK
+U+02591 ░ \blockqtrshaded LIGHT SHADE
+U+02592 ▒ \blockhalfshaded MEDIUM SHADE
+U+02593 ▓ \blockthreeqtrshaded DARK SHADE
+U+025A0 ■ \blacksquare BLACK SQUARE
+U+025A1 □ \square WHITE SQUARE
+U+025A2 ▢ \squoval WHITE SQUARE WITH ROUNDED CORNERS
+U+025A3 ▣ \blackinwhitesquare WHITE SQUARE CONTAINING BLACK SMALL SQUARE
+U+025A4 ▤ \squarehfill SQUARE WITH HORIZONTAL FILL
+U+025A5 ▥ \squarevfill SQUARE WITH VERTICAL FILL
+U+025A6 ▦ \squarehvfill SQUARE WITH ORTHOGONAL CROSSHATCH FILL
+U+025A7 ▧ \squarenwsefill SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
+U+025A8 ▨ \squareneswfill SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
+U+025A9 ▩ \squarecrossfill SQUARE WITH DIAGONAL CROSSHATCH FILL
+U+025AA ▪ \smblksquare, \:black_small_square: BLACK SMALL SQUARE
+U+025AB ▫ \smwhtsquare, \:white_small_square: WHITE SMALL SQUARE
+U+025AC ▬ \hrectangleblack BLACK RECTANGLE
+U+025AD ▭ \hrectangle WHITE RECTANGLE
+U+025AE ▮ \vrectangleblack BLACK VERTICAL RECTANGLE
+U+025AF ▯ \vrecto WHITE VERTICAL RECTANGLE
+U+025B0 ▰ \parallelogramblack BLACK PARALLELOGRAM
+U+025B1 ▱ \parallelogram WHITE PARALLELOGRAM
+U+025B2 ▲ \bigblacktriangleup BLACK UP-POINTING TRIANGLE / BLACK UP POINTING TRIANGLE
+U+025B3 △ \bigtriangleup WHITE UP-POINTING TRIANGLE / WHITE UP POINTING TRIANGLE
+U+025B4 ▴ \blacktriangle BLACK UP-POINTING SMALL TRIANGLE / BLACK UP POINTING SMALL TRIANGLE
+U+025B5 ▵ \vartriangle WHITE UP-POINTING SMALL TRIANGLE / WHITE UP POINTING SMALL TRIANGLE
+U+025B6 ▶ \blacktriangleright, \:arrow_forward: BLACK RIGHT-POINTING TRIANGLE / BLACK RIGHT POINTING TRIANGLE
+U+025B7 ▷ \triangleright WHITE RIGHT-POINTING TRIANGLE / WHITE RIGHT POINTING TRIANGLE
+U+025B8 ▸ \smallblacktriangleright BLACK RIGHT-POINTING SMALL TRIANGLE / BLACK RIGHT POINTING SMALL TRIANGLE
+U+025B9 ▹ \smalltriangleright WHITE RIGHT-POINTING SMALL TRIANGLE / WHITE RIGHT POINTING SMALL TRIANGLE
+U+025BA ► \blackpointerright BLACK RIGHT-POINTING POINTER / BLACK RIGHT POINTING POINTER
+U+025BB ▻ \whitepointerright WHITE RIGHT-POINTING POINTER / WHITE RIGHT POINTING POINTER
+U+025BC ▼ \bigblacktriangledown BLACK DOWN-POINTING TRIANGLE / BLACK DOWN POINTING TRIANGLE
+U+025BD ▽ \bigtriangledown WHITE DOWN-POINTING TRIANGLE / WHITE DOWN POINTING TRIANGLE
+U+025BE ▾ \blacktriangledown BLACK DOWN-POINTING SMALL TRIANGLE / BLACK DOWN POINTING SMALL TRIANGLE
+U+025BF ▿ \triangledown WHITE DOWN-POINTING SMALL TRIANGLE / WHITE DOWN POINTING SMALL TRIANGLE
+U+025C0 ◀ \blacktriangleleft, \:arrow_backward: BLACK LEFT-POINTING TRIANGLE / BLACK LEFT POINTING TRIANGLE
+U+025C1 ◁ \triangleleft WHITE LEFT-POINTING TRIANGLE / WHITE LEFT POINTING TRIANGLE
+U+025C2 ◂ \smallblacktriangleleft BLACK LEFT-POINTING SMALL TRIANGLE / BLACK LEFT POINTING SMALL TRIANGLE
+U+025C3 ◃ \smalltriangleleft WHITE LEFT-POINTING SMALL TRIANGLE / WHITE LEFT POINTING SMALL TRIANGLE
+U+025C4 ◄ \blackpointerleft BLACK LEFT-POINTING POINTER / BLACK LEFT POINTING POINTER
+U+025C5 ◅ \whitepointerleft WHITE LEFT-POINTING POINTER / WHITE LEFT POINTING POINTER
+U+025C6 ◆ \mdlgblkdiamond BLACK DIAMOND
+U+025C7 ◇ \mdlgwhtdiamond WHITE DIAMOND
+U+025C8 ◈ \blackinwhitediamond WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+U+025C9 ◉ \fisheye FISHEYE
+U+025CA ◊ \lozenge LOZENGE
+U+025CB ○ \bigcirc WHITE CIRCLE
+U+025CC ◌ \dottedcircle DOTTED CIRCLE
+U+025CD ◍ \circlevertfill CIRCLE WITH VERTICAL FILL
+U+025CE ◎ \bullseye BULLSEYE
+U+025CF ● \mdlgblkcircle BLACK CIRCLE
+U+025D0 ◐ \cirfl CIRCLE WITH LEFT HALF BLACK
+U+025D1 ◑ \cirfr CIRCLE WITH RIGHT HALF BLACK
+U+025D2 ◒ \cirfb CIRCLE WITH LOWER HALF BLACK
+U+025D3 ◓ \circletophalfblack CIRCLE WITH UPPER HALF BLACK
+U+025D4 ◔ \circleurquadblack CIRCLE WITH UPPER RIGHT QUADRANT BLACK
+U+025D5 ◕ \blackcircleulquadwhite CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
+U+025D6 ◖ \blacklefthalfcircle LEFT HALF BLACK CIRCLE
+U+025D7 ◗ \blackrighthalfcircle RIGHT HALF BLACK CIRCLE
+U+025D8 ◘ \rvbull INVERSE BULLET
+U+025D9 ◙ \inversewhitecircle INVERSE WHITE CIRCLE
+U+025DA ◚ \invwhiteupperhalfcircle UPPER HALF INVERSE WHITE CIRCLE
+U+025DB ◛ \invwhitelowerhalfcircle LOWER HALF INVERSE WHITE CIRCLE
+U+025DC ◜ \ularc UPPER LEFT QUADRANT CIRCULAR ARC
+U+025DD ◝ \urarc UPPER RIGHT QUADRANT CIRCULAR ARC
+U+025DE ◞ \lrarc LOWER RIGHT QUADRANT CIRCULAR ARC
+U+025DF ◟ \llarc LOWER LEFT QUADRANT CIRCULAR ARC
+U+025E0 ◠ \topsemicircle UPPER HALF CIRCLE
+U+025E1 ◡ \botsemicircle LOWER HALF CIRCLE
+U+025E2 ◢ \lrblacktriangle BLACK LOWER RIGHT TRIANGLE
+U+025E3 ◣ \llblacktriangle BLACK LOWER LEFT TRIANGLE
+U+025E4 ◤ \ulblacktriangle BLACK UPPER LEFT TRIANGLE
+U+025E5 ◥ \urblacktriangle BLACK UPPER RIGHT TRIANGLE
+U+025E6 ◦ \smwhtcircle WHITE BULLET
+U+025E7 ◧ \sqfl SQUARE WITH LEFT HALF BLACK
+U+025E8 ◨ \sqfr SQUARE WITH RIGHT HALF BLACK
+U+025E9 ◩ \squareulblack SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
+U+025EA ◪ \sqfse SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
+U+025EB ◫ \boxbar WHITE SQUARE WITH VERTICAL BISECTING LINE
+U+025EC ◬ \trianglecdot WHITE UP-POINTING TRIANGLE WITH DOT / WHITE UP POINTING TRIANGLE WITH DOT
+U+025ED ◭ \triangleleftblack UP-POINTING TRIANGLE WITH LEFT HALF BLACK / UP POINTING TRIANGLE WITH LEFT HALF BLACK
+U+025EE ◮ \trianglerightblack UP-POINTING TRIANGLE WITH RIGHT HALF BLACK / UP POINTING TRIANGLE WITH RIGHT HALF BLACK
+U+025EF ◯ \lgwhtcircle LARGE CIRCLE
+U+025F0 ◰ \squareulquad WHITE SQUARE WITH UPPER LEFT QUADRANT
+U+025F1 ◱ \squarellquad WHITE SQUARE WITH LOWER LEFT QUADRANT
+U+025F2 ◲ \squarelrquad WHITE SQUARE WITH LOWER RIGHT QUADRANT
+U+025F3 ◳ \squareurquad WHITE SQUARE WITH UPPER RIGHT QUADRANT
+U+025F4 ◴ \circleulquad WHITE CIRCLE WITH UPPER LEFT QUADRANT
+U+025F5 ◵ \circlellquad WHITE CIRCLE WITH LOWER LEFT QUADRANT
+U+025F6 ◶ \circlelrquad WHITE CIRCLE WITH LOWER RIGHT QUADRANT
+U+025F7 ◷ \circleurquad WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+U+025F8 ◸ \ultriangle UPPER LEFT TRIANGLE
+U+025F9 ◹ \urtriangle UPPER RIGHT TRIANGLE
+U+025FA ◺ \lltriangle LOWER LEFT TRIANGLE
+U+025FB ◻ \mdwhtsquare, \:white_medium_square: WHITE MEDIUM SQUARE
+U+025FC ◼ \mdblksquare, \:black_medium_square: BLACK MEDIUM SQUARE
+U+025FD ◽ \mdsmwhtsquare, \:white_medium_small_square: WHITE MEDIUM SMALL SQUARE
+U+025FE ◾ \mdsmblksquare, \:black_medium_small_square: BLACK MEDIUM SMALL SQUARE
+U+025FF ◿ \lrtriangle LOWER RIGHT TRIANGLE
+U+02600 ☀ \:sunny: BLACK SUN WITH RAYS
+U+02601 ☁ \:cloud: CLOUD
+U+02605 ★ \bigstar BLACK STAR
+U+02606 ☆ \bigwhitestar WHITE STAR
+U+02609 ☉ \astrosun SUN
+U+0260E ☎ \:phone: BLACK TELEPHONE
+U+02611 ☑ \:ballot_box_with_check: BALLOT BOX WITH CHECK
+U+02614 ☔ \:umbrella: UMBRELLA WITH RAIN DROPS
+U+02615 ☕ \:coffee: HOT BEVERAGE
+U+0261D ☝ \:point_up: WHITE UP POINTING INDEX
+U+02621 ☡ \danger CAUTION SIGN
+U+0263A ☺ \:relaxed: WHITE SMILING FACE
+U+0263B ☻ \blacksmiley BLACK SMILING FACE
+U+0263C ☼ \sun WHITE SUN WITH RAYS
+U+0263D ☽ \rightmoon FIRST QUARTER MOON
+U+0263E ☾ \leftmoon LAST QUARTER MOON
+U+0263F ☿ \mercury MERCURY
+U+02640 ♀ \venus, \female FEMALE SIGN
+U+02642 ♂ \male, \mars MALE SIGN
+U+02643 ♃ \jupiter JUPITER
+U+02644 ♄ \saturn SATURN
+U+02645 ♅ \uranus URANUS
+U+02646 ♆ \neptune NEPTUNE
+U+02647 ♇ \pluto PLUTO
+U+02648 ♈ \aries, \:aries: ARIES
+U+02649 ♉ \taurus, \:taurus: TAURUS
+U+0264A ♊ \gemini, \:gemini: GEMINI
+U+0264B ♋ \cancer, \:cancer: CANCER
+U+0264C ♌ \leo, \:leo: LEO
+U+0264D ♍ \virgo, \:virgo: VIRGO
+U+0264E ♎ \libra, \:libra: LIBRA
+U+0264F ♏ \scorpio, \:scorpius: SCORPIUS
+U+02650 ♐ \sagittarius, \:sagittarius: SAGITTARIUS
+U+02651 ♑ \capricornus, \:capricorn: CAPRICORN
+U+02652 ♒ \aquarius, \:aquarius: AQUARIUS
+U+02653 ♓ \pisces, \:pisces: PISCES
+U+02660 ♠ \spadesuit, \:spades: BLACK SPADE SUIT
+U+02661 ♡ \heartsuit WHITE HEART SUIT
+U+02662 ♢ \diamondsuit WHITE DIAMOND SUIT
+U+02663 ♣ \clubsuit, \:clubs: BLACK CLUB SUIT
+U+02664 ♤ \varspadesuit WHITE SPADE SUIT
+U+02665 ♥ \varheartsuit, \:hearts: BLACK HEART SUIT
+U+02666 ♦ \vardiamondsuit, \:diamonds: BLACK DIAMOND SUIT
+U+02667 ♧ \varclubsuit WHITE CLUB SUIT
+U+02668 ♨ \:hotsprings: HOT SPRINGS
+U+02669 ♩ \quarternote QUARTER NOTE
+U+0266A ♪ \eighthnote EIGHTH NOTE
+U+0266B ♫ \twonotes BEAMED EIGHTH NOTES / BARRED EIGHTH NOTES
+U+0266D ♭ \flat MUSIC FLAT SIGN / FLAT
+U+0266E ♮ \natural MUSIC NATURAL SIGN / NATURAL
+U+0266F ♯ \sharp MUSIC SHARP SIGN / SHARP
+U+0267B ♻ \:recycle: BLACK UNIVERSAL RECYCLING SYMBOL
+U+0267E ♾ \acidfree PERMANENT PAPER SIGN
+U+0267F ♿ \:wheelchair: WHEELCHAIR SYMBOL
+U+02680 ⚀ \dicei DIE FACE-1
+U+02681 ⚁ \diceii DIE FACE-2
+U+02682 ⚂ \diceiii DIE FACE-3
+U+02683 ⚃ \diceiv DIE FACE-4
+U+02684 ⚄ \dicev DIE FACE-5
+U+02685 ⚅ \dicevi DIE FACE-6
+U+02686 ⚆ \circledrightdot WHITE CIRCLE WITH DOT RIGHT
+U+02687 ⚇ \circledtwodots WHITE CIRCLE WITH TWO DOTS
+U+02688 ⚈ \blackcircledrightdot BLACK CIRCLE WITH WHITE DOT RIGHT
+U+02689 ⚉ \blackcircledtwodots BLACK CIRCLE WITH TWO WHITE DOTS
+U+02693 ⚓ \:anchor: ANCHOR
+U+026A0 ⚠ \:warning: WARNING SIGN
+U+026A1 ⚡ \:zap: HIGH VOLTAGE SIGN
+U+026A5 ⚥ \hermaphrodite MALE AND FEMALE SIGN
+U+026AA ⚪ \mdwhtcircle, \:white_circle: MEDIUM WHITE CIRCLE
+U+026AB ⚫ \mdblkcircle, \:black_circle: MEDIUM BLACK CIRCLE
+U+026AC ⚬ \mdsmwhtcircle MEDIUM SMALL WHITE CIRCLE
+U+026B2 ⚲ \neuter NEUTER
+U+026BD ⚽ \:soccer: SOCCER BALL
+U+026BE ⚾ \:baseball: BASEBALL
+U+026C4 ⛄ \:snowman: SNOWMAN WITHOUT SNOW
+U+026C5 ⛅ \:partly_sunny: SUN BEHIND CLOUD
+U+026CE ⛎ \:ophiuchus: OPHIUCHUS
+U+026D4 ⛔ \:no_entry: NO ENTRY
+U+026EA ⛪ \:church: CHURCH
+U+026F2 ⛲ \:fountain: FOUNTAIN
+U+026F3 ⛳ \:golf: FLAG IN HOLE
+U+026F5 ⛵ \:boat: SAILBOAT
+U+026FA ⛺ \:tent: TENT
+U+026FD ⛽ \:fuelpump: FUEL PUMP
+U+02702 ✂ \:scissors: BLACK SCISSORS
+U+02705 ✅ \:white_check_mark: WHITE HEAVY CHECK MARK
+U+02708 ✈ \:airplane: AIRPLANE
+U+02709 ✉ \:email: ENVELOPE
+U+0270A ✊ \:fist: RAISED FIST
+U+0270B ✋ \:hand: RAISED HAND
+U+0270C ✌ \:v: VICTORY HAND
+U+0270F ✏ \:pencil2: PENCIL
+U+02712 ✒ \:black_nib: BLACK NIB
+U+02713 ✓ \checkmark CHECK MARK
+U+02714 ✔ \:heavy_check_mark: HEAVY CHECK MARK
+U+02716 ✖ \:heavy_multiplication_x: HEAVY MULTIPLICATION X
+U+02720 ✠ \maltese MALTESE CROSS
+U+02728 ✨ \:sparkles: SPARKLES
+U+0272A ✪ \circledstar CIRCLED WHITE STAR
+U+02733 ✳ \:eight_spoked_asterisk: EIGHT SPOKED ASTERISK
+U+02734 ✴ \:eight_pointed_black_star: EIGHT POINTED BLACK STAR
+U+02736 ✶ \varstar SIX POINTED BLACK STAR
+U+0273D ✽ \dingasterisk HEAVY TEARDROP-SPOKED ASTERISK
+U+02744 ❄ \:snowflake: SNOWFLAKE
+U+02747 ❇ \:sparkle: SPARKLE
+U+0274C ❌ \:x: CROSS MARK
+U+0274E ❎ \:negative_squared_cross_mark: NEGATIVE SQUARED CROSS MARK
+U+02753 ❓ \:question: BLACK QUESTION MARK ORNAMENT
+U+02754 ❔ \:grey_question: WHITE QUESTION MARK ORNAMENT
+U+02755 ❕ \:grey_exclamation: WHITE EXCLAMATION MARK ORNAMENT
+U+02757 ❗ \:exclamation: HEAVY EXCLAMATION MARK SYMBOL
+U+02764 ❤ \:heart: HEAVY BLACK HEART
+U+02795 ➕ \:heavy_plus_sign: HEAVY PLUS SIGN
+U+02796 ➖ \:heavy_minus_sign: HEAVY MINUS SIGN
+U+02797 ➗ \:heavy_division_sign: HEAVY DIVISION SIGN
+U+0279B ➛ \draftingarrow DRAFTING POINT RIGHTWARDS ARROW / DRAFTING POINT RIGHT ARROW
+U+027A1 ➡ \:arrow_right: BLACK RIGHTWARDS ARROW / BLACK RIGHT ARROW
+U+027B0 ➰ \:curly_loop: CURLY LOOP
+U+027BF ➿ \:loop: DOUBLE CURLY LOOP
+U+027C0 ⟀ \threedangle THREE DIMENSIONAL ANGLE
+U+027C1 ⟁ \whiteinwhitetriangle WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
+U+027C2 ⟂ \perp PERPENDICULAR
+U+027C8 ⟈ \bsolhsub REVERSE SOLIDUS PRECEDING SUBSET
+U+027C9 ⟉ \suphsol SUPERSET PRECEDING SOLIDUS
+U+027D1 ⟑ \wedgedot AND WITH DOT
+U+027D2 ⟒ \upin ELEMENT OF OPENING UPWARDS
+U+027D5 ⟕ \leftouterjoin LEFT OUTER JOIN
+U+027D6 ⟖ \rightouterjoin RIGHT OUTER JOIN
+U+027D7 ⟗ \fullouterjoin FULL OUTER JOIN
+U+027D8 ⟘ \bigbot LARGE UP TACK
+U+027D9 ⟙ \bigtop LARGE DOWN TACK
+U+027E6 ⟦ \llbracket, \openbracketleft MATHEMATICAL LEFT WHITE SQUARE BRACKET
+U+027E7 ⟧ \openbracketright, \rrbracket MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+U+027E8 ⟨ \langle MATHEMATICAL LEFT ANGLE BRACKET
+U+027E9 ⟩ \rangle MATHEMATICAL RIGHT ANGLE BRACKET
+U+027F0 ⟰ \UUparrow UPWARDS QUADRUPLE ARROW
+U+027F1 ⟱ \DDownarrow DOWNWARDS QUADRUPLE ARROW
+U+027F5 ⟵ \longleftarrow LONG LEFTWARDS ARROW
+U+027F6 ⟶ \longrightarrow LONG RIGHTWARDS ARROW
+U+027F7 ⟷ \longleftrightarrow LONG LEFT RIGHT ARROW
+U+027F8 ⟸ \impliedby, \Longleftarrow LONG LEFTWARDS DOUBLE ARROW
+U+027F9 ⟹ \implies, \Longrightarrow LONG RIGHTWARDS DOUBLE ARROW
+U+027FA ⟺ \Longleftrightarrow, \iff LONG LEFT RIGHT DOUBLE ARROW
+U+027FB ⟻ \longmapsfrom LONG LEFTWARDS ARROW FROM BAR
+U+027FC ⟼ \longmapsto LONG RIGHTWARDS ARROW FROM BAR
+U+027FD ⟽ \Longmapsfrom LONG LEFTWARDS DOUBLE ARROW FROM BAR
+U+027FE ⟾ \Longmapsto LONG RIGHTWARDS DOUBLE ARROW FROM BAR
+U+027FF ⟿ \longrightsquigarrow LONG RIGHTWARDS SQUIGGLE ARROW
+U+02900 ⤀ \nvtwoheadrightarrow RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
+U+02901 ⤁ \nVtwoheadrightarrow RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
+U+02902 ⤂ \nvLeftarrow LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
+U+02903 ⤃ \nvRightarrow RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
+U+02904 ⤄ \nvLeftrightarrow LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
+U+02905 ⤅ \twoheadmapsto RIGHTWARDS TWO-HEADED ARROW FROM BAR
+U+02906 ⤆ \Mapsfrom LEFTWARDS DOUBLE ARROW FROM BAR
+U+02907 ⤇ \Mapsto RIGHTWARDS DOUBLE ARROW FROM BAR
+U+02908 ⤈ \downarrowbarred DOWNWARDS ARROW WITH HORIZONTAL STROKE
+U+02909 ⤉ \uparrowbarred UPWARDS ARROW WITH HORIZONTAL STROKE
+U+0290A ⤊ \Uuparrow UPWARDS TRIPLE ARROW
+U+0290B ⤋ \Ddownarrow DOWNWARDS TRIPLE ARROW
+U+0290C ⤌ \leftbkarrow LEFTWARDS DOUBLE DASH ARROW
+U+0290D ⤍ \bkarow RIGHTWARDS DOUBLE DASH ARROW
+U+0290E ⤎ \leftdbkarrow LEFTWARDS TRIPLE DASH ARROW
+U+0290F ⤏ \dbkarow RIGHTWARDS TRIPLE DASH ARROW
+U+02910 ⤐ \drbkarrow RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
+U+02911 ⤑ \rightdotarrow RIGHTWARDS ARROW WITH DOTTED STEM
+U+02912 ⤒ \UpArrowBar UPWARDS ARROW TO BAR
+U+02913 ⤓ \DownArrowBar DOWNWARDS ARROW TO BAR
+U+02914 ⤔ \nvrightarrowtail RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
+U+02915 ⤕ \nVrightarrowtail RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+U+02916 ⤖ \twoheadrightarrowtail RIGHTWARDS TWO-HEADED ARROW WITH TAIL
+U+02917 ⤗ \nvtwoheadrightarrowtail RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
+U+02918 ⤘ \nVtwoheadrightarrowtail RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+U+0291D ⤝ \diamondleftarrow LEFTWARDS ARROW TO BLACK DIAMOND
+U+0291E ⤞ \rightarrowdiamond RIGHTWARDS ARROW TO BLACK DIAMOND
+U+0291F ⤟ \diamondleftarrowbar LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
+U+02920 ⤠ \barrightarrowdiamond RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
+U+02925 ⤥ \hksearow SOUTH EAST ARROW WITH HOOK
+U+02926 ⤦ \hkswarow SOUTH WEST ARROW WITH HOOK
+U+02927 ⤧ \tona NORTH WEST ARROW AND NORTH EAST ARROW
+U+02928 ⤨ \toea NORTH EAST ARROW AND SOUTH EAST ARROW
+U+02929 ⤩ \tosa SOUTH EAST ARROW AND SOUTH WEST ARROW
+U+0292A ⤪ \towa SOUTH WEST ARROW AND NORTH WEST ARROW
+U+0292B ⤫ \rdiagovfdiag RISING DIAGONAL CROSSING FALLING DIAGONAL
+U+0292C ⤬ \fdiagovrdiag FALLING DIAGONAL CROSSING RISING DIAGONAL
+U+0292D ⤭ \seovnearrow SOUTH EAST ARROW CROSSING NORTH EAST ARROW
+U+0292E ⤮ \neovsearrow NORTH EAST ARROW CROSSING SOUTH EAST ARROW
+U+0292F ⤯ \fdiagovnearrow FALLING DIAGONAL CROSSING NORTH EAST ARROW
+U+02930 ⤰ \rdiagovsearrow RISING DIAGONAL CROSSING SOUTH EAST ARROW
+U+02931 ⤱ \neovnwarrow NORTH EAST ARROW CROSSING NORTH WEST ARROW
+U+02932 ⤲ \nwovnearrow NORTH WEST ARROW CROSSING NORTH EAST ARROW
+U+02934 ⤴ \:arrow_heading_up: ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
+U+02935 ⤵ \:arrow_heading_down: ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
+U+02942 ⥂ \Rlarr RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
+U+02944 ⥄ \rLarr SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
+U+02945 ⥅ \rightarrowplus RIGHTWARDS ARROW WITH PLUS BELOW
+U+02946 ⥆ \leftarrowplus LEFTWARDS ARROW WITH PLUS BELOW
+U+02947 ⥇ \rarrx RIGHTWARDS ARROW THROUGH X
+U+02948 ⥈ \leftrightarrowcircle LEFT RIGHT ARROW THROUGH SMALL CIRCLE
+U+02949 ⥉ \twoheaduparrowcircle UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
+U+0294A ⥊ \leftrightharpoonupdown LEFT BARB UP RIGHT BARB DOWN HARPOON
+U+0294B ⥋ \leftrightharpoondownup LEFT BARB DOWN RIGHT BARB UP HARPOON
+U+0294C ⥌ \updownharpoonrightleft UP BARB RIGHT DOWN BARB LEFT HARPOON
+U+0294D ⥍ \updownharpoonleftright UP BARB LEFT DOWN BARB RIGHT HARPOON
+U+0294E ⥎ \LeftRightVector LEFT BARB UP RIGHT BARB UP HARPOON
+U+0294F ⥏ \RightUpDownVector UP BARB RIGHT DOWN BARB RIGHT HARPOON
+U+02950 ⥐ \DownLeftRightVector LEFT BARB DOWN RIGHT BARB DOWN HARPOON
+U+02951 ⥑ \LeftUpDownVector UP BARB LEFT DOWN BARB LEFT HARPOON
+U+02952 ⥒ \LeftVectorBar LEFTWARDS HARPOON WITH BARB UP TO BAR
+U+02953 ⥓ \RightVectorBar RIGHTWARDS HARPOON WITH BARB UP TO BAR
+U+02954 ⥔ \RightUpVectorBar UPWARDS HARPOON WITH BARB RIGHT TO BAR
+U+02955 ⥕ \RightDownVectorBar DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
+U+02956 ⥖ \DownLeftVectorBar LEFTWARDS HARPOON WITH BARB DOWN TO BAR
+U+02957 ⥗ \DownRightVectorBar RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
+U+02958 ⥘ \LeftUpVectorBar UPWARDS HARPOON WITH BARB LEFT TO BAR
+U+02959 ⥙ \LeftDownVectorBar DOWNWARDS HARPOON WITH BARB LEFT TO BAR
+U+0295A ⥚ \LeftTeeVector LEFTWARDS HARPOON WITH BARB UP FROM BAR
+U+0295B ⥛ \RightTeeVector RIGHTWARDS HARPOON WITH BARB UP FROM BAR
+U+0295C ⥜ \RightUpTeeVector UPWARDS HARPOON WITH BARB RIGHT FROM BAR
+U+0295D ⥝ \RightDownTeeVector DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
+U+0295E ⥞ \DownLeftTeeVector LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
+U+0295F ⥟ \DownRightTeeVector RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
+U+02960 ⥠ \LeftUpTeeVector UPWARDS HARPOON WITH BARB LEFT FROM BAR
+U+02961 ⥡ \LeftDownTeeVector DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
+U+02962 ⥢ \leftharpoonsupdown LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
+U+02963 ⥣ \upharpoonsleftright UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+U+02964 ⥤ \rightharpoonsupdown RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
+U+02965 ⥥ \downharpoonsleftright DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+U+02966 ⥦ \leftrightharpoonsup LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
+U+02967 ⥧ \leftrightharpoonsdown LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
+U+02968 ⥨ \rightleftharpoonsup RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
+U+02969 ⥩ \rightleftharpoonsdown RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
+U+0296A ⥪ \leftharpoonupdash LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
+U+0296B ⥫ \dashleftharpoondown LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
+U+0296C ⥬ \rightharpoonupdash RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
+U+0296D ⥭ \dashrightharpoondown RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
+U+0296E ⥮ \UpEquilibrium UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+U+0296F ⥯ \ReverseUpEquilibrium DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+U+02970 ⥰ \RoundImplies RIGHT DOUBLE ARROW WITH ROUNDED HEAD
+U+02980 ⦀ \Vvert TRIPLE VERTICAL BAR DELIMITER
+U+02986 ⦆ \Elroang RIGHT WHITE PARENTHESIS
+U+02999 ⦙ \ddfnc DOTTED FENCE
+U+0299B ⦛ \measuredangleleft MEASURED ANGLE OPENING LEFT
+U+0299C ⦜ \Angle RIGHT ANGLE VARIANT WITH SQUARE
+U+0299D ⦝ \rightanglemdot MEASURED RIGHT ANGLE WITH DOT
+U+0299E ⦞ \angles ANGLE WITH S INSIDE
+U+0299F ⦟ \angdnr ACUTE ANGLE
+U+029A0 ⦠ \lpargt SPHERICAL ANGLE OPENING LEFT
+U+029A1 ⦡ \sphericalangleup SPHERICAL ANGLE OPENING UP
+U+029A2 ⦢ \turnangle TURNED ANGLE
+U+029A3 ⦣ \revangle REVERSED ANGLE
+U+029A4 ⦤ \angleubar ANGLE WITH UNDERBAR
+U+029A5 ⦥ \revangleubar REVERSED ANGLE WITH UNDERBAR
+U+029A6 ⦦ \wideangledown OBLIQUE ANGLE OPENING UP
+U+029A7 ⦧ \wideangleup OBLIQUE ANGLE OPENING DOWN
+U+029A8 ⦨ \measanglerutone MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
+U+029A9 ⦩ \measanglelutonw MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
+U+029AA ⦪ \measanglerdtose MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
+U+029AB ⦫ \measangleldtosw MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
+U+029AC ⦬ \measangleurtone MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
+U+029AD ⦭ \measangleultonw MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
+U+029AE ⦮ \measangledrtose MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
+U+029AF ⦯ \measangledltosw MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
+U+029B0 ⦰ \revemptyset REVERSED EMPTY SET
+U+029B1 ⦱ \emptysetobar EMPTY SET WITH OVERBAR
+U+029B2 ⦲ \emptysetocirc EMPTY SET WITH SMALL CIRCLE ABOVE
+U+029B3 ⦳ \emptysetoarr EMPTY SET WITH RIGHT ARROW ABOVE
+U+029B4 ⦴ \emptysetoarrl EMPTY SET WITH LEFT ARROW ABOVE
+U+029B7 ⦷ \circledparallel CIRCLED PARALLEL
+U+029B8 ⦸ \obslash CIRCLED REVERSE SOLIDUS
+U+029BC ⦼ \odotslashdot CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
+U+029BE ⦾ \circledwhitebullet CIRCLED WHITE BULLET
+U+029BF ⦿ \circledbullet CIRCLED BULLET
+U+029C0 ⧀ \olessthan CIRCLED LESS-THAN
+U+029C1 ⧁ \ogreaterthan CIRCLED GREATER-THAN
+U+029C4 ⧄ \boxdiag SQUARED RISING DIAGONAL SLASH
+U+029C5 ⧅ \boxbslash SQUARED FALLING DIAGONAL SLASH
+U+029C6 ⧆ \boxast SQUARED ASTERISK
+U+029C7 ⧇ \boxcircle SQUARED SMALL CIRCLE
+U+029CA ⧊ \Lap TRIANGLE WITH DOT ABOVE
+U+029CB ⧋ \defas TRIANGLE WITH UNDERBAR
+U+029CF ⧏ \LeftTriangleBar LEFT TRIANGLE BESIDE VERTICAL BAR
+U+029CF + U+00338 ⧏̸ \NotLeftTriangleBar LEFT TRIANGLE BESIDE VERTICAL BAR + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+029D0 ⧐ \RightTriangleBar VERTICAL BAR BESIDE RIGHT TRIANGLE
+U+029D0 + U+00338 ⧐̸ \NotRightTriangleBar VERTICAL BAR BESIDE RIGHT TRIANGLE + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+029DF ⧟ \dualmap DOUBLE-ENDED MULTIMAP
+U+029E1 ⧡ \lrtriangleeq INCREASES AS
+U+029E2 ⧢ \shuffle SHUFFLE PRODUCT
+U+029E3 ⧣ \eparsl EQUALS SIGN AND SLANTED PARALLEL
+U+029E4 ⧤ \smeparsl EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
+U+029E5 ⧥ \eqvparsl IDENTICAL TO AND SLANTED PARALLEL
+U+029EB ⧫ \blacklozenge BLACK LOZENGE
+U+029F4 ⧴ \RuleDelayed RULE-DELAYED
+U+029F6 ⧶ \dsol SOLIDUS WITH OVERBAR
+U+029F7 ⧷ \rsolbar REVERSE SOLIDUS WITH HORIZONTAL STROKE
+U+029FA ⧺ \doubleplus DOUBLE PLUS
+U+029FB ⧻ \tripleplus TRIPLE PLUS
+U+02A00 ⨀ \bigodot N-ARY CIRCLED DOT OPERATOR
+U+02A01 ⨁ \bigoplus N-ARY CIRCLED PLUS OPERATOR
+U+02A02 ⨂ \bigotimes N-ARY CIRCLED TIMES OPERATOR
+U+02A03 ⨃ \bigcupdot N-ARY UNION OPERATOR WITH DOT
+U+02A04 ⨄ \biguplus N-ARY UNION OPERATOR WITH PLUS
+U+02A05 ⨅ \bigsqcap N-ARY SQUARE INTERSECTION OPERATOR
+U+02A06 ⨆ \bigsqcup N-ARY SQUARE UNION OPERATOR
+U+02A07 ⨇ \conjquant TWO LOGICAL AND OPERATOR
+U+02A08 ⨈ \disjquant TWO LOGICAL OR OPERATOR
+U+02A09 ⨉ \bigtimes N-ARY TIMES OPERATOR
+U+02A0A ⨊ \modtwosum MODULO TWO SUM
+U+02A0B ⨋ \sumint SUMMATION WITH INTEGRAL
+U+02A0C ⨌ \iiiint QUADRUPLE INTEGRAL OPERATOR
+U+02A0D ⨍ \intbar FINITE PART INTEGRAL
+U+02A0E ⨎ \intBar INTEGRAL WITH DOUBLE STROKE
+U+02A0F ⨏ \clockoint INTEGRAL AVERAGE WITH SLASH
+U+02A10 ⨐ \cirfnint CIRCULATION FUNCTION
+U+02A11 ⨑ \awint ANTICLOCKWISE INTEGRATION
+U+02A12 ⨒ \rppolint LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
+U+02A13 ⨓ \scpolint LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
+U+02A14 ⨔ \npolint LINE INTEGRATION NOT INCLUDING THE POLE
+U+02A15 ⨕ \pointint INTEGRAL AROUND A POINT OPERATOR
+U+02A16 ⨖ \sqrint QUATERNION INTEGRAL OPERATOR
+U+02A18 ⨘ \intx INTEGRAL WITH TIMES SIGN
+U+02A19 ⨙ \intcap INTEGRAL WITH INTERSECTION
+U+02A1A ⨚ \intcup INTEGRAL WITH UNION
+U+02A1B ⨛ \upint INTEGRAL WITH OVERBAR
+U+02A1C ⨜ \lowint INTEGRAL WITH UNDERBAR
+U+02A1D ⨝ \Join, \join JOIN
+U+02A22 ⨢ \ringplus PLUS SIGN WITH SMALL CIRCLE ABOVE
+U+02A23 ⨣ \plushat PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
+U+02A24 ⨤ \simplus PLUS SIGN WITH TILDE ABOVE
+U+02A25 ⨥ \plusdot PLUS SIGN WITH DOT BELOW
+U+02A26 ⨦ \plussim PLUS SIGN WITH TILDE BELOW
+U+02A27 ⨧ \plussubtwo PLUS SIGN WITH SUBSCRIPT TWO
+U+02A28 ⨨ \plustrif PLUS SIGN WITH BLACK TRIANGLE
+U+02A29 ⨩ \commaminus MINUS SIGN WITH COMMA ABOVE
+U+02A2A ⨪ \minusdot MINUS SIGN WITH DOT BELOW
+U+02A2B ⨫ \minusfdots MINUS SIGN WITH FALLING DOTS
+U+02A2C ⨬ \minusrdots MINUS SIGN WITH RISING DOTS
+U+02A2D ⨭ \opluslhrim PLUS SIGN IN LEFT HALF CIRCLE
+U+02A2E ⨮ \oplusrhrim PLUS SIGN IN RIGHT HALF CIRCLE
+U+02A2F ⨯ \Times VECTOR OR CROSS PRODUCT
+U+02A30 ⨰ \dottimes MULTIPLICATION SIGN WITH DOT ABOVE
+U+02A31 ⨱ \timesbar MULTIPLICATION SIGN WITH UNDERBAR
+U+02A32 ⨲ \btimes SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
+U+02A33 ⨳ \smashtimes SMASH PRODUCT
+U+02A34 ⨴ \otimeslhrim MULTIPLICATION SIGN IN LEFT HALF CIRCLE
+U+02A35 ⨵ \otimesrhrim MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
+U+02A36 ⨶ \otimeshat CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
+U+02A37 ⨷ \Otimes MULTIPLICATION SIGN IN DOUBLE CIRCLE
+U+02A38 ⨸ \odiv CIRCLED DIVISION SIGN
+U+02A39 ⨹ \triangleplus PLUS SIGN IN TRIANGLE
+U+02A3A ⨺ \triangleminus MINUS SIGN IN TRIANGLE
+U+02A3B ⨻ \triangletimes MULTIPLICATION SIGN IN TRIANGLE
+U+02A3C ⨼ \intprod INTERIOR PRODUCT
+U+02A3D ⨽ \intprodr RIGHTHAND INTERIOR PRODUCT
+U+02A3F ⨿ \amalg AMALGAMATION OR COPRODUCT
+U+02A40 ⩀ \capdot INTERSECTION WITH DOT
+U+02A41 ⩁ \uminus UNION WITH MINUS SIGN
+U+02A42 ⩂ \barcup UNION WITH OVERBAR
+U+02A43 ⩃ \barcap INTERSECTION WITH OVERBAR
+U+02A44 ⩄ \capwedge INTERSECTION WITH LOGICAL AND
+U+02A45 ⩅ \cupvee UNION WITH LOGICAL OR
+U+02A4A ⩊ \twocups UNION BESIDE AND JOINED WITH UNION
+U+02A4B ⩋ \twocaps INTERSECTION BESIDE AND JOINED WITH INTERSECTION
+U+02A4C ⩌ \closedvarcup CLOSED UNION WITH SERIFS
+U+02A4D ⩍ \closedvarcap CLOSED INTERSECTION WITH SERIFS
+U+02A4E ⩎ \Sqcap DOUBLE SQUARE INTERSECTION
+U+02A4F ⩏ \Sqcup DOUBLE SQUARE UNION
+U+02A50 ⩐ \closedvarcupsmashprod CLOSED UNION WITH SERIFS AND SMASH PRODUCT
+U+02A51 ⩑ \wedgeodot LOGICAL AND WITH DOT ABOVE
+U+02A52 ⩒ \veeodot LOGICAL OR WITH DOT ABOVE
+U+02A53 ⩓ \And DOUBLE LOGICAL AND
+U+02A54 ⩔ \Or DOUBLE LOGICAL OR
+U+02A55 ⩕ \wedgeonwedge TWO INTERSECTING LOGICAL AND
+U+02A56 ⩖ \ElOr TWO INTERSECTING LOGICAL OR
+U+02A57 ⩗ \bigslopedvee SLOPING LARGE OR
+U+02A58 ⩘ \bigslopedwedge SLOPING LARGE AND
+U+02A5A ⩚ \wedgemidvert LOGICAL AND WITH MIDDLE STEM
+U+02A5B ⩛ \veemidvert LOGICAL OR WITH MIDDLE STEM
+U+02A5C ⩜ \midbarwedge LOGICAL AND WITH HORIZONTAL DASH
+U+02A5D ⩝ \midbarvee LOGICAL OR WITH HORIZONTAL DASH
+U+02A5E ⩞ \perspcorrespond LOGICAL AND WITH DOUBLE OVERBAR
+U+02A5F ⩟ \minhat LOGICAL AND WITH UNDERBAR
+U+02A60 ⩠ \wedgedoublebar LOGICAL AND WITH DOUBLE UNDERBAR
+U+02A61 ⩡ \varveebar SMALL VEE WITH UNDERBAR
+U+02A62 ⩢ \doublebarvee LOGICAL OR WITH DOUBLE OVERBAR
+U+02A63 ⩣ \veedoublebar LOGICAL OR WITH DOUBLE UNDERBAR
+U+02A66 ⩦ \eqdot EQUALS SIGN WITH DOT BELOW
+U+02A67 ⩧ \dotequiv IDENTICAL WITH DOT ABOVE
+U+02A6A ⩪ \dotsim TILDE OPERATOR WITH DOT ABOVE
+U+02A6B ⩫ \simrdots TILDE OPERATOR WITH RISING DOTS
+U+02A6C ⩬ \simminussim SIMILAR MINUS SIMILAR
+U+02A6D ⩭ \congdot CONGRUENT WITH DOT ABOVE
+U+02A6E ⩮ \asteq EQUALS WITH ASTERISK
+U+02A6F ⩯ \hatapprox ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
+U+02A70 ⩰ \approxeqq APPROXIMATELY EQUAL OR EQUAL TO
+U+02A71 ⩱ \eqqplus EQUALS SIGN ABOVE PLUS SIGN
+U+02A72 ⩲ \pluseqq PLUS SIGN ABOVE EQUALS SIGN
+U+02A73 ⩳ \eqqsim EQUALS SIGN ABOVE TILDE OPERATOR
+U+02A74 ⩴ \Coloneq DOUBLE COLON EQUAL
+U+02A75 ⩵ \Equal TWO CONSECUTIVE EQUALS SIGNS
+U+02A76 ⩶ \eqeqeq THREE CONSECUTIVE EQUALS SIGNS
+U+02A77 ⩷ \ddotseq EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
+U+02A78 ⩸ \equivDD EQUIVALENT WITH FOUR DOTS ABOVE
+U+02A79 ⩹ \ltcir LESS-THAN WITH CIRCLE INSIDE
+U+02A7A ⩺ \gtcir GREATER-THAN WITH CIRCLE INSIDE
+U+02A7B ⩻ \ltquest LESS-THAN WITH QUESTION MARK ABOVE
+U+02A7C ⩼ \gtquest GREATER-THAN WITH QUESTION MARK ABOVE
+U+02A7D ⩽ \leqslant LESS-THAN OR SLANTED EQUAL TO
+U+02A7D + U+00338 ⩽̸ \nleqslant LESS-THAN OR SLANTED EQUAL TO + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02A7E ⩾ \geqslant GREATER-THAN OR SLANTED EQUAL TO
+U+02A7E + U+00338 ⩾̸ \ngeqslant GREATER-THAN OR SLANTED EQUAL TO + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02A7F ⩿ \lesdot LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+U+02A80 ⪀ \gesdot GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+U+02A81 ⪁ \lesdoto LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+U+02A82 ⪂ \gesdoto GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+U+02A83 ⪃ \lesdotor LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
+U+02A84 ⪄ \gesdotol GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
+U+02A85 ⪅ \lessapprox LESS-THAN OR APPROXIMATE
+U+02A86 ⪆ \gtrapprox GREATER-THAN OR APPROXIMATE
+U+02A87 ⪇ \lneq LESS-THAN AND SINGLE-LINE NOT EQUAL TO
+U+02A88 ⪈ \gneq GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
+U+02A89 ⪉ \lnapprox LESS-THAN AND NOT APPROXIMATE
+U+02A8A ⪊ \gnapprox GREATER-THAN AND NOT APPROXIMATE
+U+02A8B ⪋ \lesseqqgtr LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
+U+02A8C ⪌ \gtreqqless GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
+U+02A8D ⪍ \lsime LESS-THAN ABOVE SIMILAR OR EQUAL
+U+02A8E ⪎ \gsime GREATER-THAN ABOVE SIMILAR OR EQUAL
+U+02A8F ⪏ \lsimg LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
+U+02A90 ⪐ \gsiml GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
+U+02A91 ⪑ \lgE LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
+U+02A92 ⪒ \glE GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
+U+02A93 ⪓ \lesges LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
+U+02A94 ⪔ \gesles GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
+U+02A95 ⪕ \eqslantless SLANTED EQUAL TO OR LESS-THAN
+U+02A96 ⪖ \eqslantgtr SLANTED EQUAL TO OR GREATER-THAN
+U+02A97 ⪗ \elsdot SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
+U+02A98 ⪘ \egsdot SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
+U+02A99 ⪙ \eqqless DOUBLE-LINE EQUAL TO OR LESS-THAN
+U+02A9A ⪚ \eqqgtr DOUBLE-LINE EQUAL TO OR GREATER-THAN
+U+02A9B ⪛ \eqqslantless DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
+U+02A9C ⪜ \eqqslantgtr DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
+U+02A9D ⪝ \simless SIMILAR OR LESS-THAN
+U+02A9E ⪞ \simgtr SIMILAR OR GREATER-THAN
+U+02A9F ⪟ \simlE SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
+U+02AA0 ⪠ \simgE SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
+U+02AA1 ⪡ \NestedLessLess DOUBLE NESTED LESS-THAN
+U+02AA1 + U+00338 ⪡̸ \NotNestedLessLess DOUBLE NESTED LESS-THAN + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02AA2 ⪢ \NestedGreaterGreater DOUBLE NESTED GREATER-THAN
+U+02AA2 + U+00338 ⪢̸ \NotNestedGreaterGreater DOUBLE NESTED GREATER-THAN + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02AA3 ⪣ \partialmeetcontraction DOUBLE NESTED LESS-THAN WITH UNDERBAR
+U+02AA4 ⪤ \glj GREATER-THAN OVERLAPPING LESS-THAN
+U+02AA5 ⪥ \gla GREATER-THAN BESIDE LESS-THAN
+U+02AA6 ⪦ \ltcc LESS-THAN CLOSED BY CURVE
+U+02AA7 ⪧ \gtcc GREATER-THAN CLOSED BY CURVE
+U+02AA8 ⪨ \lescc LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+U+02AA9 ⪩ \gescc GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+U+02AAA ⪪ \smt SMALLER THAN
+U+02AAB ⪫ \lat LARGER THAN
+U+02AAC ⪬ \smte SMALLER THAN OR EQUAL TO
+U+02AAD ⪭ \late LARGER THAN OR EQUAL TO
+U+02AAE ⪮ \bumpeqq EQUALS SIGN WITH BUMPY ABOVE
+U+02AAF ⪯ \preceq PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
+U+02AAF + U+00338 ⪯̸ \npreceq PRECEDES ABOVE SINGLE-LINE EQUALS SIGN + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02AB0 ⪰ \succeq SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
+U+02AB0 + U+00338 ⪰̸ \nsucceq SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02AB1 ⪱ \precneq PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
+U+02AB2 ⪲ \succneq SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
+U+02AB3 ⪳ \preceqq PRECEDES ABOVE EQUALS SIGN
+U+02AB4 ⪴ \succeqq SUCCEEDS ABOVE EQUALS SIGN
+U+02AB5 ⪵ \precneqq PRECEDES ABOVE NOT EQUAL TO
+U+02AB6 ⪶ \succneqq SUCCEEDS ABOVE NOT EQUAL TO
+U+02AB7 ⪷ \precapprox PRECEDES ABOVE ALMOST EQUAL TO
+U+02AB8 ⪸ \succapprox SUCCEEDS ABOVE ALMOST EQUAL TO
+U+02AB9 ⪹ \precnapprox PRECEDES ABOVE NOT ALMOST EQUAL TO
+U+02ABA ⪺ \succnapprox SUCCEEDS ABOVE NOT ALMOST EQUAL TO
+U+02ABB ⪻ \Prec DOUBLE PRECEDES
+U+02ABC ⪼ \Succ DOUBLE SUCCEEDS
+U+02ABD ⪽ \subsetdot SUBSET WITH DOT
+U+02ABE ⪾ \supsetdot SUPERSET WITH DOT
+U+02ABF ⪿ \subsetplus SUBSET WITH PLUS SIGN BELOW
+U+02AC0 ⫀ \supsetplus SUPERSET WITH PLUS SIGN BELOW
+U+02AC1 ⫁ \submult SUBSET WITH MULTIPLICATION SIGN BELOW
+U+02AC2 ⫂ \supmult SUPERSET WITH MULTIPLICATION SIGN BELOW
+U+02AC3 ⫃ \subedot SUBSET OF OR EQUAL TO WITH DOT ABOVE
+U+02AC4 ⫄ \supedot SUPERSET OF OR EQUAL TO WITH DOT ABOVE
+U+02AC5 ⫅ \subseteqq SUBSET OF ABOVE EQUALS SIGN
+U+02AC5 + U+00338 ⫅̸ \nsubseteqq SUBSET OF ABOVE EQUALS SIGN + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02AC6 ⫆ \supseteqq SUPERSET OF ABOVE EQUALS SIGN
+U+02AC6 + U+00338 ⫆̸ \nsupseteqq SUPERSET OF ABOVE EQUALS SIGN + COMBINING LONG SOLIDUS OVERLAY / NON-SPACING LONG SLASH OVERLAY
+U+02AC7 ⫇ \subsim SUBSET OF ABOVE TILDE OPERATOR
+U+02AC8 ⫈ \supsim SUPERSET OF ABOVE TILDE OPERATOR
+U+02AC9 ⫉ \subsetapprox SUBSET OF ABOVE ALMOST EQUAL TO
+U+02ACA ⫊ \supsetapprox SUPERSET OF ABOVE ALMOST EQUAL TO
+U+02ACB ⫋ \subsetneqq SUBSET OF ABOVE NOT EQUAL TO
+U+02ACC ⫌ \supsetneqq SUPERSET OF ABOVE NOT EQUAL TO
+U+02ACD ⫍ \lsqhook SQUARE LEFT OPEN BOX OPERATOR
+U+02ACE ⫎ \rsqhook SQUARE RIGHT OPEN BOX OPERATOR
+U+02ACF ⫏ \csub CLOSED SUBSET
+U+02AD0 ⫐ \csup CLOSED SUPERSET
+U+02AD1 ⫑ \csube CLOSED SUBSET OR EQUAL TO
+U+02AD2 ⫒ \csupe CLOSED SUPERSET OR EQUAL TO
+U+02AD3 ⫓ \subsup SUBSET ABOVE SUPERSET
+U+02AD4 ⫔ \supsub SUPERSET ABOVE SUBSET
+U+02AD5 ⫕ \subsub SUBSET ABOVE SUBSET
+U+02AD6 ⫖ \supsup SUPERSET ABOVE SUPERSET
+U+02AD7 ⫗ \suphsub SUPERSET BESIDE SUBSET
+U+02AD8 ⫘ \supdsub SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
+U+02AD9 ⫙ \forkv ELEMENT OF OPENING DOWNWARDS
+U+02ADB ⫛ \mlcp TRANSVERSAL INTERSECTION
+U+02ADC ⫝̸ \forks FORKING
+U+02ADD ⫝ \forksnot NONFORKING
+U+02AE3 ⫣ \dashV DOUBLE VERTICAL BAR LEFT TURNSTILE
+U+02AE4 ⫤ \Dashv VERTICAL BAR DOUBLE LEFT TURNSTILE
+U+02AF4 ⫴ \interleave TRIPLE VERTICAL BAR BINARY RELATION
+U+02AF6 ⫶ \tdcol TRIPLE COLON OPERATOR
+U+02AF7 ⫷ \lllnest TRIPLE NESTED LESS-THAN
+U+02AF8 ⫸ \gggnest TRIPLE NESTED GREATER-THAN
+U+02AF9 ⫹ \leqqslant DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
+U+02AFA ⫺ \geqqslant DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
+U+02B05 ⬅ \:arrow_left: LEFTWARDS BLACK ARROW
+U+02B06 ⬆ \:arrow_up: UPWARDS BLACK ARROW
+U+02B07 ⬇ \:arrow_down: DOWNWARDS BLACK ARROW
+U+02B12 ⬒ \squaretopblack SQUARE WITH TOP HALF BLACK
+U+02B13 ⬓ \squarebotblack SQUARE WITH BOTTOM HALF BLACK
+U+02B14 ⬔ \squareurblack SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK
+U+02B15 ⬕ \squarellblack SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK
+U+02B16 ⬖ \diamondleftblack DIAMOND WITH LEFT HALF BLACK
+U+02B17 ⬗ \diamondrightblack DIAMOND WITH RIGHT HALF BLACK
+U+02B18 ⬘ \diamondtopblack DIAMOND WITH TOP HALF BLACK
+U+02B19 ⬙ \diamondbotblack DIAMOND WITH BOTTOM HALF BLACK
+U+02B1A ⬚ \dottedsquare DOTTED SQUARE
+U+02B1B ⬛ \lgblksquare, \:black_large_square: BLACK LARGE SQUARE
+U+02B1C ⬜ \lgwhtsquare, \:white_large_square: WHITE LARGE SQUARE
+U+02B1D ⬝ \vysmblksquare BLACK VERY SMALL SQUARE
+U+02B1E ⬞ \vysmwhtsquare WHITE VERY SMALL SQUARE
+U+02B1F ⬟ \pentagonblack BLACK PENTAGON
+U+02B20 ⬠ \pentagon WHITE PENTAGON
+U+02B21 ⬡ \varhexagon WHITE HEXAGON
+U+02B22 ⬢ \varhexagonblack BLACK HEXAGON
+U+02B23 ⬣ \hexagonblack HORIZONTAL BLACK HEXAGON
+U+02B24 ⬤ \lgblkcircle BLACK LARGE CIRCLE
+U+02B25 ⬥ \mdblkdiamond BLACK MEDIUM DIAMOND
+U+02B26 ⬦ \mdwhtdiamond WHITE MEDIUM DIAMOND
+U+02B27 ⬧ \mdblklozenge BLACK MEDIUM LOZENGE
+U+02B28 ⬨ \mdwhtlozenge WHITE MEDIUM LOZENGE
+U+02B29 ⬩ \smblkdiamond BLACK SMALL DIAMOND
+U+02B2A ⬪ \smblklozenge BLACK SMALL LOZENGE
+U+02B2B ⬫ \smwhtlozenge WHITE SMALL LOZENGE
+U+02B2C ⬬ \blkhorzoval BLACK HORIZONTAL ELLIPSE
+U+02B2D ⬭ \whthorzoval WHITE HORIZONTAL ELLIPSE
+U+02B2E ⬮ \blkvertoval BLACK VERTICAL ELLIPSE
+U+02B2F ⬯ \whtvertoval WHITE VERTICAL ELLIPSE
+U+02B30 ⬰ \circleonleftarrow LEFT ARROW WITH SMALL CIRCLE
+U+02B31 ⬱ \leftthreearrows THREE LEFTWARDS ARROWS
+U+02B32 ⬲ \leftarrowonoplus LEFT ARROW WITH CIRCLED PLUS
+U+02B33 ⬳ \longleftsquigarrow LONG LEFTWARDS SQUIGGLE ARROW
+U+02B34 ⬴ \nvtwoheadleftarrow LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
+U+02B35 ⬵ \nVtwoheadleftarrow LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
+U+02B36 ⬶ \twoheadmapsfrom LEFTWARDS TWO-HEADED ARROW FROM BAR
+U+02B37 ⬷ \twoheadleftdbkarrow LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
+U+02B38 ⬸ \leftdotarrow LEFTWARDS ARROW WITH DOTTED STEM
+U+02B39 ⬹ \nvleftarrowtail LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
+U+02B3A ⬺ \nVleftarrowtail LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+U+02B3B ⬻ \twoheadleftarrowtail LEFTWARDS TWO-HEADED ARROW WITH TAIL
+U+02B3C ⬼ \nvtwoheadleftarrowtail LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
+U+02B3D ⬽ \nVtwoheadleftarrowtail LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+U+02B3E ⬾ \leftarrowx LEFTWARDS ARROW THROUGH X
+U+02B3F ⬿ \leftcurvedarrow WAVE ARROW POINTING DIRECTLY LEFT
+U+02B40 ⭀ \equalleftarrow EQUALS SIGN ABOVE LEFTWARDS ARROW
+U+02B41 ⭁ \bsimilarleftarrow REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW
+U+02B42 ⭂ \leftarrowbackapprox LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
+U+02B43 ⭃ \rightarrowgtr RIGHTWARDS ARROW THROUGH GREATER-THAN
+U+02B44 ⭄ \rightarrowsupset RIGHTWARDS ARROW THROUGH SUPERSET
+U+02B45 ⭅ \LLeftarrow LEFTWARDS QUADRUPLE ARROW
+U+02B46 ⭆ \RRightarrow RIGHTWARDS QUADRUPLE ARROW
+U+02B47 ⭇ \bsimilarrightarrow REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW
+U+02B48 ⭈ \rightarrowbackapprox RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
+U+02B49 ⭉ \similarleftarrow TILDE OPERATOR ABOVE LEFTWARDS ARROW
+U+02B4A ⭊ \leftarrowapprox LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
+U+02B4B ⭋ \leftarrowbsimilar LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+U+02B4C ⭌ \rightarrowbsimilar RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+U+02B50 ⭐ \medwhitestar, \:star: WHITE MEDIUM STAR
+U+02B51 ⭑ \medblackstar BLACK SMALL STAR
+U+02B52 ⭒ \smwhitestar WHITE SMALL STAR
+U+02B53 ⭓ \rightpentagonblack BLACK RIGHT-POINTING PENTAGON
+U+02B54 ⭔ \rightpentagon WHITE RIGHT-POINTING PENTAGON
+U+02B55 ⭕ \:o: HEAVY LARGE CIRCLE
+U+02C7C ⱼ \_j LATIN SUBSCRIPT SMALL LETTER J
+U+02C7D ⱽ \^V MODIFIER LETTER CAPITAL V
+U+03012 〒 \postalmark POSTAL MARK
+U+03030 〰 \:wavy_dash: WAVY DASH
+U+0303D 〽 \:part_alternation_mark: PART ALTERNATION MARK
+U+03297 ㊗ \:congratulations: CIRCLED IDEOGRAPH CONGRATULATION
+U+03299 ㊙ \:secret: CIRCLED IDEOGRAPH SECRET
+U+1D400 𝐀 \bfA MATHEMATICAL BOLD CAPITAL A
+U+1D401 𝐁 \bfB MATHEMATICAL BOLD CAPITAL B
+U+1D402 𝐂 \bfC MATHEMATICAL BOLD CAPITAL C
+U+1D403 𝐃 \bfD MATHEMATICAL BOLD CAPITAL D
+U+1D404 𝐄 \bfE MATHEMATICAL BOLD CAPITAL E
+U+1D405 𝐅 \bfF MATHEMATICAL BOLD CAPITAL F
+U+1D406 𝐆 \bfG MATHEMATICAL BOLD CAPITAL G
+U+1D407 𝐇 \bfH MATHEMATICAL BOLD CAPITAL H
+U+1D408 𝐈 \bfI MATHEMATICAL BOLD CAPITAL I
+U+1D409 𝐉 \bfJ MATHEMATICAL BOLD CAPITAL J
+U+1D40A 𝐊 \bfK MATHEMATICAL BOLD CAPITAL K
+U+1D40B 𝐋 \bfL MATHEMATICAL BOLD CAPITAL L
+U+1D40C 𝐌 \bfM MATHEMATICAL BOLD CAPITAL M
+U+1D40D 𝐍 \bfN MATHEMATICAL BOLD CAPITAL N
+U+1D40E 𝐎 \bfO MATHEMATICAL BOLD CAPITAL O
+U+1D40F 𝐏 \bfP MATHEMATICAL BOLD CAPITAL P
+U+1D410 𝐐 \bfQ MATHEMATICAL BOLD CAPITAL Q
+U+1D411 𝐑 \bfR MATHEMATICAL BOLD CAPITAL R
+U+1D412 𝐒 \bfS MATHEMATICAL BOLD CAPITAL S
+U+1D413 𝐓 \bfT MATHEMATICAL BOLD CAPITAL T
+U+1D414 𝐔 \bfU MATHEMATICAL BOLD CAPITAL U
+U+1D415 𝐕 \bfV MATHEMATICAL BOLD CAPITAL V
+U+1D416 𝐖 \bfW MATHEMATICAL BOLD CAPITAL W
+U+1D417 𝐗 \bfX MATHEMATICAL BOLD CAPITAL X
+U+1D418 𝐘 \bfY MATHEMATICAL BOLD CAPITAL Y
+U+1D419 𝐙 \bfZ MATHEMATICAL BOLD CAPITAL Z
+U+1D41A 𝐚 \bfa MATHEMATICAL BOLD SMALL A
+U+1D41B 𝐛 \bfb MATHEMATICAL BOLD SMALL B
+U+1D41C 𝐜 \bfc MATHEMATICAL BOLD SMALL C
+U+1D41D 𝐝 \bfd MATHEMATICAL BOLD SMALL D
+U+1D41E 𝐞 \bfe MATHEMATICAL BOLD SMALL E
+U+1D41F 𝐟 \bff MATHEMATICAL BOLD SMALL F
+U+1D420 𝐠 \bfg MATHEMATICAL BOLD SMALL G
+U+1D421 𝐡 \bfh MATHEMATICAL BOLD SMALL H
+U+1D422 𝐢 \bfi MATHEMATICAL BOLD SMALL I
+U+1D423 𝐣 \bfj MATHEMATICAL BOLD SMALL J
+U+1D424 𝐤 \bfk MATHEMATICAL BOLD SMALL K
+U+1D425 𝐥 \bfl MATHEMATICAL BOLD SMALL L
+U+1D426 𝐦 \bfm MATHEMATICAL BOLD SMALL M
+U+1D427 𝐧 \bfn MATHEMATICAL BOLD SMALL N
+U+1D428 𝐨 \bfo MATHEMATICAL BOLD SMALL O
+U+1D429 𝐩 \bfp MATHEMATICAL BOLD SMALL P
+U+1D42A 𝐪 \bfq MATHEMATICAL BOLD SMALL Q
+U+1D42B 𝐫 \bfr MATHEMATICAL BOLD SMALL R
+U+1D42C 𝐬 \bfs MATHEMATICAL BOLD SMALL S
+U+1D42D 𝐭 \bft MATHEMATICAL BOLD SMALL T
+U+1D42E 𝐮 \bfu MATHEMATICAL BOLD SMALL U
+U+1D42F 𝐯 \bfv MATHEMATICAL BOLD SMALL V
+U+1D430 𝐰 \bfw MATHEMATICAL BOLD SMALL W
+U+1D431 𝐱 \bfx MATHEMATICAL BOLD SMALL X
+U+1D432 𝐲 \bfy MATHEMATICAL BOLD SMALL Y
+U+1D433 𝐳 \bfz MATHEMATICAL BOLD SMALL Z
+U+1D434 𝐴 \itA MATHEMATICAL ITALIC CAPITAL A
+U+1D435 𝐵 \itB MATHEMATICAL ITALIC CAPITAL B
+U+1D436 𝐶 \itC MATHEMATICAL ITALIC CAPITAL C
+U+1D437 𝐷 \itD MATHEMATICAL ITALIC CAPITAL D
+U+1D438 𝐸 \itE MATHEMATICAL ITALIC CAPITAL E
+U+1D439 𝐹 \itF MATHEMATICAL ITALIC CAPITAL F
+U+1D43A 𝐺 \itG MATHEMATICAL ITALIC CAPITAL G
+U+1D43B 𝐻 \itH MATHEMATICAL ITALIC CAPITAL H
+U+1D43C 𝐼 \itI MATHEMATICAL ITALIC CAPITAL I
+U+1D43D 𝐽 \itJ MATHEMATICAL ITALIC CAPITAL J
+U+1D43E 𝐾 \itK MATHEMATICAL ITALIC CAPITAL K
+U+1D43F 𝐿 \itL MATHEMATICAL ITALIC CAPITAL L
+U+1D440 𝑀 \itM MATHEMATICAL ITALIC CAPITAL M
+U+1D441 𝑁 \itN MATHEMATICAL ITALIC CAPITAL N
+U+1D442 𝑂 \itO MATHEMATICAL ITALIC CAPITAL O
+U+1D443 𝑃 \itP MATHEMATICAL ITALIC CAPITAL P
+U+1D444 𝑄 \itQ MATHEMATICAL ITALIC CAPITAL Q
+U+1D445 𝑅 \itR MATHEMATICAL ITALIC CAPITAL R
+U+1D446 𝑆 \itS MATHEMATICAL ITALIC CAPITAL S
+U+1D447 𝑇 \itT MATHEMATICAL ITALIC CAPITAL T
+U+1D448 𝑈 \itU MATHEMATICAL ITALIC CAPITAL U
+U+1D449 𝑉 \itV MATHEMATICAL ITALIC CAPITAL V
+U+1D44A 𝑊 \itW MATHEMATICAL ITALIC CAPITAL W
+U+1D44B 𝑋 \itX MATHEMATICAL ITALIC CAPITAL X
+U+1D44C 𝑌 \itY MATHEMATICAL ITALIC CAPITAL Y
+U+1D44D 𝑍 \itZ MATHEMATICAL ITALIC CAPITAL Z
+U+1D44E 𝑎 \ita MATHEMATICAL ITALIC SMALL A
+U+1D44F 𝑏 \itb MATHEMATICAL ITALIC SMALL B
+U+1D450 𝑐 \itc MATHEMATICAL ITALIC SMALL C
+U+1D451 𝑑 \itd MATHEMATICAL ITALIC SMALL D
+U+1D452 𝑒 \ite MATHEMATICAL ITALIC SMALL E
+U+1D453 𝑓 \itf MATHEMATICAL ITALIC SMALL F
+U+1D454 𝑔 \itg MATHEMATICAL ITALIC SMALL G
+U+1D456 𝑖 \iti MATHEMATICAL ITALIC SMALL I
+U+1D457 𝑗 \itj MATHEMATICAL ITALIC SMALL J
+U+1D458 𝑘 \itk MATHEMATICAL ITALIC SMALL K
+U+1D459 𝑙 \itl MATHEMATICAL ITALIC SMALL L
+U+1D45A 𝑚 \itm MATHEMATICAL ITALIC SMALL M
+U+1D45B 𝑛 \itn MATHEMATICAL ITALIC SMALL N
+U+1D45C 𝑜 \ito MATHEMATICAL ITALIC SMALL O
+U+1D45D 𝑝 \itp MATHEMATICAL ITALIC SMALL P
+U+1D45E 𝑞 \itq MATHEMATICAL ITALIC SMALL Q
+U+1D45F 𝑟 \itr MATHEMATICAL ITALIC SMALL R
+U+1D460 𝑠 \its MATHEMATICAL ITALIC SMALL S
+U+1D461 𝑡 \itt MATHEMATICAL ITALIC SMALL T
+U+1D462 𝑢 \itu MATHEMATICAL ITALIC SMALL U
+U+1D463 𝑣 \itv MATHEMATICAL ITALIC SMALL V
+U+1D464 𝑤 \itw MATHEMATICAL ITALIC SMALL W
+U+1D465 𝑥 \itx MATHEMATICAL ITALIC SMALL X
+U+1D466 𝑦 \ity MATHEMATICAL ITALIC SMALL Y
+U+1D467 𝑧 \itz MATHEMATICAL ITALIC SMALL Z
+U+1D468 𝑨 \biA MATHEMATICAL BOLD ITALIC CAPITAL A
+U+1D469 𝑩 \biB MATHEMATICAL BOLD ITALIC CAPITAL B
+U+1D46A 𝑪 \biC MATHEMATICAL BOLD ITALIC CAPITAL C
+U+1D46B 𝑫 \biD MATHEMATICAL BOLD ITALIC CAPITAL D
+U+1D46C 𝑬 \biE MATHEMATICAL BOLD ITALIC CAPITAL E
+U+1D46D 𝑭 \biF MATHEMATICAL BOLD ITALIC CAPITAL F
+U+1D46E 𝑮 \biG MATHEMATICAL BOLD ITALIC CAPITAL G
+U+1D46F 𝑯 \biH MATHEMATICAL BOLD ITALIC CAPITAL H
+U+1D470 𝑰 \biI MATHEMATICAL BOLD ITALIC CAPITAL I
+U+1D471 𝑱 \biJ MATHEMATICAL BOLD ITALIC CAPITAL J
+U+1D472 𝑲 \biK MATHEMATICAL BOLD ITALIC CAPITAL K
+U+1D473 𝑳 \biL MATHEMATICAL BOLD ITALIC CAPITAL L
+U+1D474 𝑴 \biM MATHEMATICAL BOLD ITALIC CAPITAL M
+U+1D475 𝑵 \biN MATHEMATICAL BOLD ITALIC CAPITAL N
+U+1D476 𝑶 \biO MATHEMATICAL BOLD ITALIC CAPITAL O
+U+1D477 𝑷 \biP MATHEMATICAL BOLD ITALIC CAPITAL P
+U+1D478 𝑸 \biQ MATHEMATICAL BOLD ITALIC CAPITAL Q
+U+1D479 𝑹 \biR MATHEMATICAL BOLD ITALIC CAPITAL R
+U+1D47A 𝑺 \biS MATHEMATICAL BOLD ITALIC CAPITAL S
+U+1D47B 𝑻 \biT MATHEMATICAL BOLD ITALIC CAPITAL T
+U+1D47C 𝑼 \biU MATHEMATICAL BOLD ITALIC CAPITAL U
+U+1D47D 𝑽 \biV MATHEMATICAL BOLD ITALIC CAPITAL V
+U+1D47E 𝑾 \biW MATHEMATICAL BOLD ITALIC CAPITAL W
+U+1D47F 𝑿 \biX MATHEMATICAL BOLD ITALIC CAPITAL X
+U+1D480 𝒀 \biY MATHEMATICAL BOLD ITALIC CAPITAL Y
+U+1D481 𝒁 \biZ MATHEMATICAL BOLD ITALIC CAPITAL Z
+U+1D482 𝒂 \bia MATHEMATICAL BOLD ITALIC SMALL A
+U+1D483 𝒃 \bib MATHEMATICAL BOLD ITALIC SMALL B
+U+1D484 𝒄 \bic MATHEMATICAL BOLD ITALIC SMALL C
+U+1D485 𝒅 \bid MATHEMATICAL BOLD ITALIC SMALL D
+U+1D486 𝒆 \bie MATHEMATICAL BOLD ITALIC SMALL E
+U+1D487 𝒇 \bif MATHEMATICAL BOLD ITALIC SMALL F
+U+1D488 𝒈 \big MATHEMATICAL BOLD ITALIC SMALL G
+U+1D489 𝒉 \bih MATHEMATICAL BOLD ITALIC SMALL H
+U+1D48A 𝒊 \bii MATHEMATICAL BOLD ITALIC SMALL I
+U+1D48B 𝒋 \bij MATHEMATICAL BOLD ITALIC SMALL J
+U+1D48C 𝒌 \bik MATHEMATICAL BOLD ITALIC SMALL K
+U+1D48D 𝒍 \bil MATHEMATICAL BOLD ITALIC SMALL L
+U+1D48E 𝒎 \bim MATHEMATICAL BOLD ITALIC SMALL M
+U+1D48F 𝒏 \bin MATHEMATICAL BOLD ITALIC SMALL N
+U+1D490 𝒐 \bio MATHEMATICAL BOLD ITALIC SMALL O
+U+1D491 𝒑 \bip MATHEMATICAL BOLD ITALIC SMALL P
+U+1D492 𝒒 \biq MATHEMATICAL BOLD ITALIC SMALL Q
+U+1D493 𝒓 \bir MATHEMATICAL BOLD ITALIC SMALL R
+U+1D494 𝒔 \bis MATHEMATICAL BOLD ITALIC SMALL S
+U+1D495 𝒕 \bit MATHEMATICAL BOLD ITALIC SMALL T
+U+1D496 𝒖 \biu MATHEMATICAL BOLD ITALIC SMALL U
+U+1D497 𝒗 \biv MATHEMATICAL BOLD ITALIC SMALL V
+U+1D498 𝒘 \biw MATHEMATICAL BOLD ITALIC SMALL W
+U+1D499 𝒙 \bix MATHEMATICAL BOLD ITALIC SMALL X
+U+1D49A 𝒚 \biy MATHEMATICAL BOLD ITALIC SMALL Y
+U+1D49B 𝒛 \biz MATHEMATICAL BOLD ITALIC SMALL Z
+U+1D49C 𝒜 \scrA MATHEMATICAL SCRIPT CAPITAL A
+U+1D49E 𝒞 \scrC MATHEMATICAL SCRIPT CAPITAL C
+U+1D49F 𝒟 \scrD MATHEMATICAL SCRIPT CAPITAL D
+U+1D4A2 𝒢 \scrG MATHEMATICAL SCRIPT CAPITAL G
+U+1D4A5 𝒥 \scrJ MATHEMATICAL SCRIPT CAPITAL J
+U+1D4A6 𝒦 \scrK MATHEMATICAL SCRIPT CAPITAL K
+U+1D4A9 𝒩 \scrN MATHEMATICAL SCRIPT CAPITAL N
+U+1D4AA 𝒪 \scrO MATHEMATICAL SCRIPT CAPITAL O
+U+1D4AB 𝒫 \scrP MATHEMATICAL SCRIPT CAPITAL P
+U+1D4AC 𝒬 \scrQ MATHEMATICAL SCRIPT CAPITAL Q
+U+1D4AE 𝒮 \scrS MATHEMATICAL SCRIPT CAPITAL S
+U+1D4AF 𝒯 \scrT MATHEMATICAL SCRIPT CAPITAL T
+U+1D4B0 𝒰 \scrU MATHEMATICAL SCRIPT CAPITAL U
+U+1D4B1 𝒱 \scrV MATHEMATICAL SCRIPT CAPITAL V
+U+1D4B2 𝒲 \scrW MATHEMATICAL SCRIPT CAPITAL W
+U+1D4B3 𝒳 \scrX MATHEMATICAL SCRIPT CAPITAL X
+U+1D4B4 𝒴 \scrY MATHEMATICAL SCRIPT CAPITAL Y
+U+1D4B5 𝒵 \scrZ MATHEMATICAL SCRIPT CAPITAL Z
+U+1D4B6 𝒶 \scra MATHEMATICAL SCRIPT SMALL A
+U+1D4B7 𝒷 \scrb MATHEMATICAL SCRIPT SMALL B
+U+1D4B8 𝒸 \scrc MATHEMATICAL SCRIPT SMALL C
+U+1D4B9 𝒹 \scrd MATHEMATICAL SCRIPT SMALL D
+U+1D4BB 𝒻 \scrf MATHEMATICAL SCRIPT SMALL F
+U+1D4BD 𝒽 \scrh MATHEMATICAL SCRIPT SMALL H
+U+1D4BE 𝒾 \scri MATHEMATICAL SCRIPT SMALL I
+U+1D4BF 𝒿 \scrj MATHEMATICAL SCRIPT SMALL J
+U+1D4C0 𝓀 \scrk MATHEMATICAL SCRIPT SMALL K
+U+1D4C1 𝓁 \scrl MATHEMATICAL SCRIPT SMALL L
+U+1D4C2 𝓂 \scrm MATHEMATICAL SCRIPT SMALL M
+U+1D4C3 𝓃 \scrn MATHEMATICAL SCRIPT SMALL N
+U+1D4C5 𝓅 \scrp MATHEMATICAL SCRIPT SMALL P
+U+1D4C6 𝓆 \scrq MATHEMATICAL SCRIPT SMALL Q
+U+1D4C7 𝓇 \scrr MATHEMATICAL SCRIPT SMALL R
+U+1D4C8 𝓈 \scrs MATHEMATICAL SCRIPT SMALL S
+U+1D4C9 𝓉 \scrt MATHEMATICAL SCRIPT SMALL T
+U+1D4CA 𝓊 \scru MATHEMATICAL SCRIPT SMALL U
+U+1D4CB 𝓋 \scrv MATHEMATICAL SCRIPT SMALL V
+U+1D4CC 𝓌 \scrw MATHEMATICAL SCRIPT SMALL W
+U+1D4CD 𝓍 \scrx MATHEMATICAL SCRIPT SMALL X
+U+1D4CE 𝓎 \scry MATHEMATICAL SCRIPT SMALL Y
+U+1D4CF 𝓏 \scrz MATHEMATICAL SCRIPT SMALL Z
+U+1D4D0 𝓐 \bscrA MATHEMATICAL BOLD SCRIPT CAPITAL A
+U+1D4D1 𝓑 \bscrB MATHEMATICAL BOLD SCRIPT CAPITAL B
+U+1D4D2 𝓒 \bscrC MATHEMATICAL BOLD SCRIPT CAPITAL C
+U+1D4D3 𝓓 \bscrD MATHEMATICAL BOLD SCRIPT CAPITAL D
+U+1D4D4 𝓔 \bscrE MATHEMATICAL BOLD SCRIPT CAPITAL E
+U+1D4D5 𝓕 \bscrF MATHEMATICAL BOLD SCRIPT CAPITAL F
+U+1D4D6 𝓖 \bscrG MATHEMATICAL BOLD SCRIPT CAPITAL G
+U+1D4D7 𝓗 \bscrH MATHEMATICAL BOLD SCRIPT CAPITAL H
+U+1D4D8 𝓘 \bscrI MATHEMATICAL BOLD SCRIPT CAPITAL I
+U+1D4D9 𝓙 \bscrJ MATHEMATICAL BOLD SCRIPT CAPITAL J
+U+1D4DA 𝓚 \bscrK MATHEMATICAL BOLD SCRIPT CAPITAL K
+U+1D4DB 𝓛 \bscrL MATHEMATICAL BOLD SCRIPT CAPITAL L
+U+1D4DC 𝓜 \bscrM MATHEMATICAL BOLD SCRIPT CAPITAL M
+U+1D4DD 𝓝 \bscrN MATHEMATICAL BOLD SCRIPT CAPITAL N
+U+1D4DE 𝓞 \bscrO MATHEMATICAL BOLD SCRIPT CAPITAL O
+U+1D4DF 𝓟 \bscrP MATHEMATICAL BOLD SCRIPT CAPITAL P
+U+1D4E0 𝓠 \bscrQ MATHEMATICAL BOLD SCRIPT CAPITAL Q
+U+1D4E1 𝓡 \bscrR MATHEMATICAL BOLD SCRIPT CAPITAL R
+U+1D4E2 𝓢 \bscrS MATHEMATICAL BOLD SCRIPT CAPITAL S
+U+1D4E3 𝓣 \bscrT MATHEMATICAL BOLD SCRIPT CAPITAL T
+U+1D4E4 𝓤 \bscrU MATHEMATICAL BOLD SCRIPT CAPITAL U
+U+1D4E5 𝓥 \bscrV MATHEMATICAL BOLD SCRIPT CAPITAL V
+U+1D4E6 𝓦 \bscrW MATHEMATICAL BOLD SCRIPT CAPITAL W
+U+1D4E7 𝓧 \bscrX MATHEMATICAL BOLD SCRIPT CAPITAL X
+U+1D4E8 𝓨 \bscrY MATHEMATICAL BOLD SCRIPT CAPITAL Y
+U+1D4E9 𝓩 \bscrZ MATHEMATICAL BOLD SCRIPT CAPITAL Z
+U+1D4EA 𝓪 \bscra MATHEMATICAL BOLD SCRIPT SMALL A
+U+1D4EB 𝓫 \bscrb MATHEMATICAL BOLD SCRIPT SMALL B
+U+1D4EC 𝓬 \bscrc MATHEMATICAL BOLD SCRIPT SMALL C
+U+1D4ED 𝓭 \bscrd MATHEMATICAL BOLD SCRIPT SMALL D
+U+1D4EE 𝓮 \bscre MATHEMATICAL BOLD SCRIPT SMALL E
+U+1D4EF 𝓯 \bscrf MATHEMATICAL BOLD SCRIPT SMALL F
+U+1D4F0 𝓰 \bscrg MATHEMATICAL BOLD SCRIPT SMALL G
+U+1D4F1 𝓱 \bscrh MATHEMATICAL BOLD SCRIPT SMALL H
+U+1D4F2 𝓲 \bscri MATHEMATICAL BOLD SCRIPT SMALL I
+U+1D4F3 𝓳 \bscrj MATHEMATICAL BOLD SCRIPT SMALL J
+U+1D4F4 𝓴 \bscrk MATHEMATICAL BOLD SCRIPT SMALL K
+U+1D4F5 𝓵 \bscrl MATHEMATICAL BOLD SCRIPT SMALL L
+U+1D4F6 𝓶 \bscrm MATHEMATICAL BOLD SCRIPT SMALL M
+U+1D4F7 𝓷 \bscrn MATHEMATICAL BOLD SCRIPT SMALL N
+U+1D4F8 𝓸 \bscro MATHEMATICAL BOLD SCRIPT SMALL O
+U+1D4F9 𝓹 \bscrp MATHEMATICAL BOLD SCRIPT SMALL P
+U+1D4FA 𝓺 \bscrq MATHEMATICAL BOLD SCRIPT SMALL Q
+U+1D4FB 𝓻 \bscrr MATHEMATICAL BOLD SCRIPT SMALL R
+U+1D4FC 𝓼 \bscrs MATHEMATICAL BOLD SCRIPT SMALL S
+U+1D4FD 𝓽 \bscrt MATHEMATICAL BOLD SCRIPT SMALL T
+U+1D4FE 𝓾 \bscru MATHEMATICAL BOLD SCRIPT SMALL U
+U+1D4FF 𝓿 \bscrv MATHEMATICAL BOLD SCRIPT SMALL V
+U+1D500 𝔀 \bscrw MATHEMATICAL BOLD SCRIPT SMALL W
+U+1D501 𝔁 \bscrx MATHEMATICAL BOLD SCRIPT SMALL X
+U+1D502 𝔂 \bscry MATHEMATICAL BOLD SCRIPT SMALL Y
+U+1D503 𝔃 \bscrz MATHEMATICAL BOLD SCRIPT SMALL Z
+U+1D504 𝔄 \frakA MATHEMATICAL FRAKTUR CAPITAL A
+U+1D505 𝔅 \frakB MATHEMATICAL FRAKTUR CAPITAL B
+U+1D507 𝔇 \frakD MATHEMATICAL FRAKTUR CAPITAL D
+U+1D508 𝔈 \frakE MATHEMATICAL FRAKTUR CAPITAL E
+U+1D509 𝔉 \frakF MATHEMATICAL FRAKTUR CAPITAL F
+U+1D50A 𝔊 \frakG MATHEMATICAL FRAKTUR CAPITAL G
+U+1D50D 𝔍 \frakJ MATHEMATICAL FRAKTUR CAPITAL J
+U+1D50E 𝔎 \frakK MATHEMATICAL FRAKTUR CAPITAL K
+U+1D50F 𝔏 \frakL MATHEMATICAL FRAKTUR CAPITAL L
+U+1D510 𝔐 \frakM MATHEMATICAL FRAKTUR CAPITAL M
+U+1D511 𝔑 \frakN MATHEMATICAL FRAKTUR CAPITAL N
+U+1D512 𝔒 \frakO MATHEMATICAL FRAKTUR CAPITAL O
+U+1D513 𝔓 \frakP MATHEMATICAL FRAKTUR CAPITAL P
+U+1D514 𝔔 \frakQ MATHEMATICAL FRAKTUR CAPITAL Q
+U+1D516 𝔖 \frakS MATHEMATICAL FRAKTUR CAPITAL S
+U+1D517 𝔗 \frakT MATHEMATICAL FRAKTUR CAPITAL T
+U+1D518 𝔘 \frakU MATHEMATICAL FRAKTUR CAPITAL U
+U+1D519 𝔙 \frakV MATHEMATICAL FRAKTUR CAPITAL V
+U+1D51A 𝔚 \frakW MATHEMATICAL FRAKTUR CAPITAL W
+U+1D51B 𝔛 \frakX MATHEMATICAL FRAKTUR CAPITAL X
+U+1D51C 𝔜 \frakY MATHEMATICAL FRAKTUR CAPITAL Y
+U+1D51E 𝔞 \fraka MATHEMATICAL FRAKTUR SMALL A
+U+1D51F 𝔟 \frakb MATHEMATICAL FRAKTUR SMALL B
+U+1D520 𝔠 \frakc MATHEMATICAL FRAKTUR SMALL C
+U+1D521 𝔡 \frakd MATHEMATICAL FRAKTUR SMALL D
+U+1D522 𝔢 \frake MATHEMATICAL FRAKTUR SMALL E
+U+1D523 𝔣 \frakf MATHEMATICAL FRAKTUR SMALL F
+U+1D524 𝔤 \frakg MATHEMATICAL FRAKTUR SMALL G
+U+1D525 𝔥 \frakh MATHEMATICAL FRAKTUR SMALL H
+U+1D526 𝔦 \fraki MATHEMATICAL FRAKTUR SMALL I
+U+1D527 𝔧 \frakj MATHEMATICAL FRAKTUR SMALL J
+U+1D528 𝔨 \frakk MATHEMATICAL FRAKTUR SMALL K
+U+1D529 𝔩 \frakl MATHEMATICAL FRAKTUR SMALL L
+U+1D52A 𝔪 \frakm MATHEMATICAL FRAKTUR SMALL M
+U+1D52B 𝔫 \frakn MATHEMATICAL FRAKTUR SMALL N
+U+1D52C 𝔬 \frako MATHEMATICAL FRAKTUR SMALL O
+U+1D52D 𝔭 \frakp MATHEMATICAL FRAKTUR SMALL P
+U+1D52E 𝔮 \frakq MATHEMATICAL FRAKTUR SMALL Q
+U+1D52F 𝔯 \frakr MATHEMATICAL FRAKTUR SMALL R
+U+1D530 𝔰 \fraks MATHEMATICAL FRAKTUR SMALL S
+U+1D531 𝔱 \frakt MATHEMATICAL FRAKTUR SMALL T
+U+1D532 𝔲 \fraku MATHEMATICAL FRAKTUR SMALL U
+U+1D533 𝔳 \frakv MATHEMATICAL FRAKTUR SMALL V
+U+1D534 𝔴 \frakw MATHEMATICAL FRAKTUR SMALL W
+U+1D535 𝔵 \frakx MATHEMATICAL FRAKTUR SMALL X
+U+1D536 𝔶 \fraky MATHEMATICAL FRAKTUR SMALL Y
+U+1D537 𝔷 \frakz MATHEMATICAL FRAKTUR SMALL Z
+U+1D538 𝔸 \bbA MATHEMATICAL DOUBLE-STRUCK CAPITAL A
+U+1D539 𝔹 \bbB MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+U+1D53B 𝔻 \bbD MATHEMATICAL DOUBLE-STRUCK CAPITAL D
+U+1D53C 𝔼 \bbE MATHEMATICAL DOUBLE-STRUCK CAPITAL E
+U+1D53D 𝔽 \bbF MATHEMATICAL DOUBLE-STRUCK CAPITAL F
+U+1D53E 𝔾 \bbG MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+U+1D540 𝕀 \bbI MATHEMATICAL DOUBLE-STRUCK CAPITAL I
+U+1D541 𝕁 \bbJ MATHEMATICAL DOUBLE-STRUCK CAPITAL J
+U+1D542 𝕂 \bbK MATHEMATICAL DOUBLE-STRUCK CAPITAL K
+U+1D543 𝕃 \bbL MATHEMATICAL DOUBLE-STRUCK CAPITAL L
+U+1D544 𝕄 \bbM MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+U+1D546 𝕆 \bbO MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+U+1D54A 𝕊 \bbS MATHEMATICAL DOUBLE-STRUCK CAPITAL S
+U+1D54B 𝕋 \bbT MATHEMATICAL DOUBLE-STRUCK CAPITAL T
+U+1D54C 𝕌 \bbU MATHEMATICAL DOUBLE-STRUCK CAPITAL U
+U+1D54D 𝕍 \bbV MATHEMATICAL DOUBLE-STRUCK CAPITAL V
+U+1D54E 𝕎 \bbW MATHEMATICAL DOUBLE-STRUCK CAPITAL W
+U+1D54F 𝕏 \bbX MATHEMATICAL DOUBLE-STRUCK CAPITAL X
+U+1D550 𝕐 \bbY MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+U+1D552 𝕒 \bba MATHEMATICAL DOUBLE-STRUCK SMALL A
+U+1D553 𝕓 \bbb MATHEMATICAL DOUBLE-STRUCK SMALL B
+U+1D554 𝕔 \bbc MATHEMATICAL DOUBLE-STRUCK SMALL C
+U+1D555 𝕕 \bbd MATHEMATICAL DOUBLE-STRUCK SMALL D
+U+1D556 𝕖 \bbe MATHEMATICAL DOUBLE-STRUCK SMALL E
+U+1D557 𝕗 \bbf MATHEMATICAL DOUBLE-STRUCK SMALL F
+U+1D558 𝕘 \bbg MATHEMATICAL DOUBLE-STRUCK SMALL G
+U+1D559 𝕙 \bbh MATHEMATICAL DOUBLE-STRUCK SMALL H
+U+1D55A 𝕚 \bbi MATHEMATICAL DOUBLE-STRUCK SMALL I
+U+1D55B 𝕛 \bbj MATHEMATICAL DOUBLE-STRUCK SMALL J
+U+1D55C 𝕜 \bbk MATHEMATICAL DOUBLE-STRUCK SMALL K
+U+1D55D 𝕝 \bbl MATHEMATICAL DOUBLE-STRUCK SMALL L
+U+1D55E 𝕞 \bbm MATHEMATICAL DOUBLE-STRUCK SMALL M
+U+1D55F 𝕟 \bbn MATHEMATICAL DOUBLE-STRUCK SMALL N
+U+1D560 𝕠 \bbo MATHEMATICAL DOUBLE-STRUCK SMALL O
+U+1D561 𝕡 \bbp MATHEMATICAL DOUBLE-STRUCK SMALL P
+U+1D562 𝕢 \bbq MATHEMATICAL DOUBLE-STRUCK SMALL Q
+U+1D563 𝕣 \bbr MATHEMATICAL DOUBLE-STRUCK SMALL R
+U+1D564 𝕤 \bbs MATHEMATICAL DOUBLE-STRUCK SMALL S
+U+1D565 𝕥 \bbt MATHEMATICAL DOUBLE-STRUCK SMALL T
+U+1D566 𝕦 \bbu MATHEMATICAL DOUBLE-STRUCK SMALL U
+U+1D567 𝕧 \bbv MATHEMATICAL DOUBLE-STRUCK SMALL V
+U+1D568 𝕨 \bbw MATHEMATICAL DOUBLE-STRUCK SMALL W
+U+1D569 𝕩 \bbx MATHEMATICAL DOUBLE-STRUCK SMALL X
+U+1D56A 𝕪 \bby MATHEMATICAL DOUBLE-STRUCK SMALL Y
+U+1D56B 𝕫 \bbz MATHEMATICAL DOUBLE-STRUCK SMALL Z
+U+1D56C 𝕬 \bfrakA MATHEMATICAL BOLD FRAKTUR CAPITAL A
+U+1D56D 𝕭 \bfrakB MATHEMATICAL BOLD FRAKTUR CAPITAL B
+U+1D56E 𝕮 \bfrakC MATHEMATICAL BOLD FRAKTUR CAPITAL C
+U+1D56F 𝕯 \bfrakD MATHEMATICAL BOLD FRAKTUR CAPITAL D
+U+1D570 𝕰 \bfrakE MATHEMATICAL BOLD FRAKTUR CAPITAL E
+U+1D571 𝕱 \bfrakF MATHEMATICAL BOLD FRAKTUR CAPITAL F
+U+1D572 𝕲 \bfrakG MATHEMATICAL BOLD FRAKTUR CAPITAL G
+U+1D573 𝕳 \bfrakH MATHEMATICAL BOLD FRAKTUR CAPITAL H
+U+1D574 𝕴 \bfrakI MATHEMATICAL BOLD FRAKTUR CAPITAL I
+U+1D575 𝕵 \bfrakJ MATHEMATICAL BOLD FRAKTUR CAPITAL J
+U+1D576 𝕶 \bfrakK MATHEMATICAL BOLD FRAKTUR CAPITAL K
+U+1D577 𝕷 \bfrakL MATHEMATICAL BOLD FRAKTUR CAPITAL L
+U+1D578 𝕸 \bfrakM MATHEMATICAL BOLD FRAKTUR CAPITAL M
+U+1D579 𝕹 \bfrakN MATHEMATICAL BOLD FRAKTUR CAPITAL N
+U+1D57A 𝕺 \bfrakO MATHEMATICAL BOLD FRAKTUR CAPITAL O
+U+1D57B 𝕻 \bfrakP MATHEMATICAL BOLD FRAKTUR CAPITAL P
+U+1D57C 𝕼 \bfrakQ MATHEMATICAL BOLD FRAKTUR CAPITAL Q
+U+1D57D 𝕽 \bfrakR MATHEMATICAL BOLD FRAKTUR CAPITAL R
+U+1D57E 𝕾 \bfrakS MATHEMATICAL BOLD FRAKTUR CAPITAL S
+U+1D57F 𝕿 \bfrakT MATHEMATICAL BOLD FRAKTUR CAPITAL T
+U+1D580 𝖀 \bfrakU MATHEMATICAL BOLD FRAKTUR CAPITAL U
+U+1D581 𝖁 \bfrakV MATHEMATICAL BOLD FRAKTUR CAPITAL V
+U+1D582 𝖂 \bfrakW MATHEMATICAL BOLD FRAKTUR CAPITAL W
+U+1D583 𝖃 \bfrakX MATHEMATICAL BOLD FRAKTUR CAPITAL X
+U+1D584 𝖄 \bfrakY MATHEMATICAL BOLD FRAKTUR CAPITAL Y
+U+1D585 𝖅 \bfrakZ MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+U+1D586 𝖆 \bfraka MATHEMATICAL BOLD FRAKTUR SMALL A
+U+1D587 𝖇 \bfrakb MATHEMATICAL BOLD FRAKTUR SMALL B
+U+1D588 𝖈 \bfrakc MATHEMATICAL BOLD FRAKTUR SMALL C
+U+1D589 𝖉 \bfrakd MATHEMATICAL BOLD FRAKTUR SMALL D
+U+1D58A 𝖊 \bfrake MATHEMATICAL BOLD FRAKTUR SMALL E
+U+1D58B 𝖋 \bfrakf MATHEMATICAL BOLD FRAKTUR SMALL F
+U+1D58C 𝖌 \bfrakg MATHEMATICAL BOLD FRAKTUR SMALL G
+U+1D58D 𝖍 \bfrakh MATHEMATICAL BOLD FRAKTUR SMALL H
+U+1D58E 𝖎 \bfraki MATHEMATICAL BOLD FRAKTUR SMALL I
+U+1D58F 𝖏 \bfrakj MATHEMATICAL BOLD FRAKTUR SMALL J
+U+1D590 𝖐 \bfrakk MATHEMATICAL BOLD FRAKTUR SMALL K
+U+1D591 𝖑 \bfrakl MATHEMATICAL BOLD FRAKTUR SMALL L
+U+1D592 𝖒 \bfrakm MATHEMATICAL BOLD FRAKTUR SMALL M
+U+1D593 𝖓 \bfrakn MATHEMATICAL BOLD FRAKTUR SMALL N
+U+1D594 𝖔 \bfrako MATHEMATICAL BOLD FRAKTUR SMALL O
+U+1D595 𝖕 \bfrakp MATHEMATICAL BOLD FRAKTUR SMALL P
+U+1D596 𝖖 \bfrakq MATHEMATICAL BOLD FRAKTUR SMALL Q
+U+1D597 𝖗 \bfrakr MATHEMATICAL BOLD FRAKTUR SMALL R
+U+1D598 𝖘 \bfraks MATHEMATICAL BOLD FRAKTUR SMALL S
+U+1D599 𝖙 \bfrakt MATHEMATICAL BOLD FRAKTUR SMALL T
+U+1D59A 𝖚 \bfraku MATHEMATICAL BOLD FRAKTUR SMALL U
+U+1D59B 𝖛 \bfrakv MATHEMATICAL BOLD FRAKTUR SMALL V
+U+1D59C 𝖜 \bfrakw MATHEMATICAL BOLD FRAKTUR SMALL W
+U+1D59D 𝖝 \bfrakx MATHEMATICAL BOLD FRAKTUR SMALL X
+U+1D59E 𝖞 \bfraky MATHEMATICAL BOLD FRAKTUR SMALL Y
+U+1D59F 𝖟 \bfrakz MATHEMATICAL BOLD FRAKTUR SMALL Z
+U+1D5A0 𝖠 \sansA MATHEMATICAL SANS-SERIF CAPITAL A
+U+1D5A1 𝖡 \sansB MATHEMATICAL SANS-SERIF CAPITAL B
+U+1D5A2 𝖢 \sansC MATHEMATICAL SANS-SERIF CAPITAL C
+U+1D5A3 𝖣 \sansD MATHEMATICAL SANS-SERIF CAPITAL D
+U+1D5A4 𝖤 \sansE MATHEMATICAL SANS-SERIF CAPITAL E
+U+1D5A5 𝖥 \sansF MATHEMATICAL SANS-SERIF CAPITAL F
+U+1D5A6 𝖦 \sansG MATHEMATICAL SANS-SERIF CAPITAL G
+U+1D5A7 𝖧 \sansH MATHEMATICAL SANS-SERIF CAPITAL H
+U+1D5A8 𝖨 \sansI MATHEMATICAL SANS-SERIF CAPITAL I
+U+1D5A9 𝖩 \sansJ MATHEMATICAL SANS-SERIF CAPITAL J
+U+1D5AA 𝖪 \sansK MATHEMATICAL SANS-SERIF CAPITAL K
+U+1D5AB 𝖫 \sansL MATHEMATICAL SANS-SERIF CAPITAL L
+U+1D5AC 𝖬 \sansM MATHEMATICAL SANS-SERIF CAPITAL M
+U+1D5AD 𝖭 \sansN MATHEMATICAL SANS-SERIF CAPITAL N
+U+1D5AE 𝖮 \sansO MATHEMATICAL SANS-SERIF CAPITAL O
+U+1D5AF 𝖯 \sansP MATHEMATICAL SANS-SERIF CAPITAL P
+U+1D5B0 𝖰 \sansQ MATHEMATICAL SANS-SERIF CAPITAL Q
+U+1D5B1 𝖱 \sansR MATHEMATICAL SANS-SERIF CAPITAL R
+U+1D5B2 𝖲 \sansS MATHEMATICAL SANS-SERIF CAPITAL S
+U+1D5B3 𝖳 \sansT MATHEMATICAL SANS-SERIF CAPITAL T
+U+1D5B4 𝖴 \sansU MATHEMATICAL SANS-SERIF CAPITAL U
+U+1D5B5 𝖵 \sansV MATHEMATICAL SANS-SERIF CAPITAL V
+U+1D5B6 𝖶 \sansW MATHEMATICAL SANS-SERIF CAPITAL W
+U+1D5B7 𝖷 \sansX MATHEMATICAL SANS-SERIF CAPITAL X
+U+1D5B8 𝖸 \sansY MATHEMATICAL SANS-SERIF CAPITAL Y
+U+1D5B9 𝖹 \sansZ MATHEMATICAL SANS-SERIF CAPITAL Z
+U+1D5BA 𝖺 \sansa MATHEMATICAL SANS-SERIF SMALL A
+U+1D5BB 𝖻 \sansb MATHEMATICAL SANS-SERIF SMALL B
+U+1D5BC 𝖼 \sansc MATHEMATICAL SANS-SERIF SMALL C
+U+1D5BD 𝖽 \sansd MATHEMATICAL SANS-SERIF SMALL D
+U+1D5BE 𝖾 \sanse MATHEMATICAL SANS-SERIF SMALL E
+U+1D5BF 𝖿 \sansf MATHEMATICAL SANS-SERIF SMALL F
+U+1D5C0 𝗀 \sansg MATHEMATICAL SANS-SERIF SMALL G
+U+1D5C1 𝗁 \sansh MATHEMATICAL SANS-SERIF SMALL H
+U+1D5C2 𝗂 \sansi MATHEMATICAL SANS-SERIF SMALL I
+U+1D5C3 𝗃 \sansj MATHEMATICAL SANS-SERIF SMALL J
+U+1D5C4 𝗄 \sansk MATHEMATICAL SANS-SERIF SMALL K
+U+1D5C5 𝗅 \sansl MATHEMATICAL SANS-SERIF SMALL L
+U+1D5C6 𝗆 \sansm MATHEMATICAL SANS-SERIF SMALL M
+U+1D5C7 𝗇 \sansn MATHEMATICAL SANS-SERIF SMALL N
+U+1D5C8 𝗈 \sanso MATHEMATICAL SANS-SERIF SMALL O
+U+1D5C9 𝗉 \sansp MATHEMATICAL SANS-SERIF SMALL P
+U+1D5CA 𝗊 \sansq MATHEMATICAL SANS-SERIF SMALL Q
+U+1D5CB 𝗋 \sansr MATHEMATICAL SANS-SERIF SMALL R
+U+1D5CC 𝗌 \sanss MATHEMATICAL SANS-SERIF SMALL S
+U+1D5CD 𝗍 \sanst MATHEMATICAL SANS-SERIF SMALL T
+U+1D5CE 𝗎 \sansu MATHEMATICAL SANS-SERIF SMALL U
+U+1D5CF 𝗏 \sansv MATHEMATICAL SANS-SERIF SMALL V
+U+1D5D0 𝗐 \sansw MATHEMATICAL SANS-SERIF SMALL W
+U+1D5D1 𝗑 \sansx MATHEMATICAL SANS-SERIF SMALL X
+U+1D5D2 𝗒 \sansy MATHEMATICAL SANS-SERIF SMALL Y
+U+1D5D3 𝗓 \sansz MATHEMATICAL SANS-SERIF SMALL Z
+U+1D5D4 𝗔 \bsansA MATHEMATICAL SANS-SERIF BOLD CAPITAL A
+U+1D5D5 𝗕 \bsansB MATHEMATICAL SANS-SERIF BOLD CAPITAL B
+U+1D5D6 𝗖 \bsansC MATHEMATICAL SANS-SERIF BOLD CAPITAL C
+U+1D5D7 𝗗 \bsansD MATHEMATICAL SANS-SERIF BOLD CAPITAL D
+U+1D5D8 𝗘 \bsansE MATHEMATICAL SANS-SERIF BOLD CAPITAL E
+U+1D5D9 𝗙 \bsansF MATHEMATICAL SANS-SERIF BOLD CAPITAL F
+U+1D5DA 𝗚 \bsansG MATHEMATICAL SANS-SERIF BOLD CAPITAL G
+U+1D5DB 𝗛 \bsansH MATHEMATICAL SANS-SERIF BOLD CAPITAL H
+U+1D5DC 𝗜 \bsansI MATHEMATICAL SANS-SERIF BOLD CAPITAL I
+U+1D5DD 𝗝 \bsansJ MATHEMATICAL SANS-SERIF BOLD CAPITAL J
+U+1D5DE 𝗞 \bsansK MATHEMATICAL SANS-SERIF BOLD CAPITAL K
+U+1D5DF 𝗟 \bsansL MATHEMATICAL SANS-SERIF BOLD CAPITAL L
+U+1D5E0 𝗠 \bsansM MATHEMATICAL SANS-SERIF BOLD CAPITAL M
+U+1D5E1 𝗡 \bsansN MATHEMATICAL SANS-SERIF BOLD CAPITAL N
+U+1D5E2 𝗢 \bsansO MATHEMATICAL SANS-SERIF BOLD CAPITAL O
+U+1D5E3 𝗣 \bsansP MATHEMATICAL SANS-SERIF BOLD CAPITAL P
+U+1D5E4 𝗤 \bsansQ MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
+U+1D5E5 𝗥 \bsansR MATHEMATICAL SANS-SERIF BOLD CAPITAL R
+U+1D5E6 𝗦 \bsansS MATHEMATICAL SANS-SERIF BOLD CAPITAL S
+U+1D5E7 𝗧 \bsansT MATHEMATICAL SANS-SERIF BOLD CAPITAL T
+U+1D5E8 𝗨 \bsansU MATHEMATICAL SANS-SERIF BOLD CAPITAL U
+U+1D5E9 𝗩 \bsansV MATHEMATICAL SANS-SERIF BOLD CAPITAL V
+U+1D5EA 𝗪 \bsansW MATHEMATICAL SANS-SERIF BOLD CAPITAL W
+U+1D5EB 𝗫 \bsansX MATHEMATICAL SANS-SERIF BOLD CAPITAL X
+U+1D5EC 𝗬 \bsansY MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
+U+1D5ED 𝗭 \bsansZ MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+U+1D5EE 𝗮 \bsansa MATHEMATICAL SANS-SERIF BOLD SMALL A
+U+1D5EF 𝗯 \bsansb MATHEMATICAL SANS-SERIF BOLD SMALL B
+U+1D5F0 𝗰 \bsansc MATHEMATICAL SANS-SERIF BOLD SMALL C
+U+1D5F1 𝗱 \bsansd MATHEMATICAL SANS-SERIF BOLD SMALL D
+U+1D5F2 𝗲 \bsanse MATHEMATICAL SANS-SERIF BOLD SMALL E
+U+1D5F3 𝗳 \bsansf MATHEMATICAL SANS-SERIF BOLD SMALL F
+U+1D5F4 𝗴 \bsansg MATHEMATICAL SANS-SERIF BOLD SMALL G
+U+1D5F5 𝗵 \bsansh MATHEMATICAL SANS-SERIF BOLD SMALL H
+U+1D5F6 𝗶 \bsansi MATHEMATICAL SANS-SERIF BOLD SMALL I
+U+1D5F7 𝗷 \bsansj MATHEMATICAL SANS-SERIF BOLD SMALL J
+U+1D5F8 𝗸 \bsansk MATHEMATICAL SANS-SERIF BOLD SMALL K
+U+1D5F9 𝗹 \bsansl MATHEMATICAL SANS-SERIF BOLD SMALL L
+U+1D5FA 𝗺 \bsansm MATHEMATICAL SANS-SERIF BOLD SMALL M
+U+1D5FB 𝗻 \bsansn MATHEMATICAL SANS-SERIF BOLD SMALL N
+U+1D5FC 𝗼 \bsanso MATHEMATICAL SANS-SERIF BOLD SMALL O
+U+1D5FD 𝗽 \bsansp MATHEMATICAL SANS-SERIF BOLD SMALL P
+U+1D5FE 𝗾 \bsansq MATHEMATICAL SANS-SERIF BOLD SMALL Q
+U+1D5FF 𝗿 \bsansr MATHEMATICAL SANS-SERIF BOLD SMALL R
+U+1D600 𝘀 \bsanss MATHEMATICAL SANS-SERIF BOLD SMALL S
+U+1D601 𝘁 \bsanst MATHEMATICAL SANS-SERIF BOLD SMALL T
+U+1D602 𝘂 \bsansu MATHEMATICAL SANS-SERIF BOLD SMALL U
+U+1D603 𝘃 \bsansv MATHEMATICAL SANS-SERIF BOLD SMALL V
+U+1D604 𝘄 \bsansw MATHEMATICAL SANS-SERIF BOLD SMALL W
+U+1D605 𝘅 \bsansx MATHEMATICAL SANS-SERIF BOLD SMALL X
+U+1D606 𝘆 \bsansy MATHEMATICAL SANS-SERIF BOLD SMALL Y
+U+1D607 𝘇 \bsansz MATHEMATICAL SANS-SERIF BOLD SMALL Z
+U+1D608 𝘈 \isansA MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
+U+1D609 𝘉 \isansB MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
+U+1D60A 𝘊 \isansC MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
+U+1D60B 𝘋 \isansD MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
+U+1D60C 𝘌 \isansE MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
+U+1D60D 𝘍 \isansF MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
+U+1D60E 𝘎 \isansG MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
+U+1D60F 𝘏 \isansH MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
+U+1D610 𝘐 \isansI MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
+U+1D611 𝘑 \isansJ MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
+U+1D612 𝘒 \isansK MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
+U+1D613 𝘓 \isansL MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
+U+1D614 𝘔 \isansM MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
+U+1D615 𝘕 \isansN MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
+U+1D616 𝘖 \isansO MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
+U+1D617 𝘗 \isansP MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
+U+1D618 𝘘 \isansQ MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
+U+1D619 𝘙 \isansR MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
+U+1D61A 𝘚 \isansS MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
+U+1D61B 𝘛 \isansT MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
+U+1D61C 𝘜 \isansU MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
+U+1D61D 𝘝 \isansV MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
+U+1D61E 𝘞 \isansW MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
+U+1D61F 𝘟 \isansX MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
+U+1D620 𝘠 \isansY MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
+U+1D621 𝘡 \isansZ MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+U+1D622 𝘢 \isansa MATHEMATICAL SANS-SERIF ITALIC SMALL A
+U+1D623 𝘣 \isansb MATHEMATICAL SANS-SERIF ITALIC SMALL B
+U+1D624 𝘤 \isansc MATHEMATICAL SANS-SERIF ITALIC SMALL C
+U+1D625 𝘥 \isansd MATHEMATICAL SANS-SERIF ITALIC SMALL D
+U+1D626 𝘦 \isanse MATHEMATICAL SANS-SERIF ITALIC SMALL E
+U+1D627 𝘧 \isansf MATHEMATICAL SANS-SERIF ITALIC SMALL F
+U+1D628 𝘨 \isansg MATHEMATICAL SANS-SERIF ITALIC SMALL G
+U+1D629 𝘩 \isansh MATHEMATICAL SANS-SERIF ITALIC SMALL H
+U+1D62A 𝘪 \isansi MATHEMATICAL SANS-SERIF ITALIC SMALL I
+U+1D62B 𝘫 \isansj MATHEMATICAL SANS-SERIF ITALIC SMALL J
+U+1D62C 𝘬 \isansk MATHEMATICAL SANS-SERIF ITALIC SMALL K
+U+1D62D 𝘭 \isansl MATHEMATICAL SANS-SERIF ITALIC SMALL L
+U+1D62E 𝘮 \isansm MATHEMATICAL SANS-SERIF ITALIC SMALL M
+U+1D62F 𝘯 \isansn MATHEMATICAL SANS-SERIF ITALIC SMALL N
+U+1D630 𝘰 \isanso MATHEMATICAL SANS-SERIF ITALIC SMALL O
+U+1D631 𝘱 \isansp MATHEMATICAL SANS-SERIF ITALIC SMALL P
+U+1D632 𝘲 \isansq MATHEMATICAL SANS-SERIF ITALIC SMALL Q
+U+1D633 𝘳 \isansr MATHEMATICAL SANS-SERIF ITALIC SMALL R
+U+1D634 𝘴 \isanss MATHEMATICAL SANS-SERIF ITALIC SMALL S
+U+1D635 𝘵 \isanst MATHEMATICAL SANS-SERIF ITALIC SMALL T
+U+1D636 𝘶 \isansu MATHEMATICAL SANS-SERIF ITALIC SMALL U
+U+1D637 𝘷 \isansv MATHEMATICAL SANS-SERIF ITALIC SMALL V
+U+1D638 𝘸 \isansw MATHEMATICAL SANS-SERIF ITALIC SMALL W
+U+1D639 𝘹 \isansx MATHEMATICAL SANS-SERIF ITALIC SMALL X
+U+1D63A 𝘺 \isansy MATHEMATICAL SANS-SERIF ITALIC SMALL Y
+U+1D63B 𝘻 \isansz MATHEMATICAL SANS-SERIF ITALIC SMALL Z
+U+1D63C 𝘼 \bisansA MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
+U+1D63D 𝘽 \bisansB MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
+U+1D63E 𝘾 \bisansC MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
+U+1D63F 𝘿 \bisansD MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
+U+1D640 𝙀 \bisansE MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
+U+1D641 𝙁 \bisansF MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
+U+1D642 𝙂 \bisansG MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
+U+1D643 𝙃 \bisansH MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
+U+1D644 𝙄 \bisansI MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
+U+1D645 𝙅 \bisansJ MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
+U+1D646 𝙆 \bisansK MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
+U+1D647 𝙇 \bisansL MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
+U+1D648 𝙈 \bisansM MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
+U+1D649 𝙉 \bisansN MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
+U+1D64A 𝙊 \bisansO MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
+U+1D64B 𝙋 \bisansP MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
+U+1D64C 𝙌 \bisansQ MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
+U+1D64D 𝙍 \bisansR MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
+U+1D64E 𝙎 \bisansS MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
+U+1D64F 𝙏 \bisansT MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
+U+1D650 𝙐 \bisansU MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
+U+1D651 𝙑 \bisansV MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
+U+1D652 𝙒 \bisansW MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
+U+1D653 𝙓 \bisansX MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
+U+1D654 𝙔 \bisansY MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
+U+1D655 𝙕 \bisansZ MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+U+1D656 𝙖 \bisansa MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
+U+1D657 𝙗 \bisansb MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
+U+1D658 𝙘 \bisansc MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
+U+1D659 𝙙 \bisansd MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
+U+1D65A 𝙚 \bisanse MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
+U+1D65B 𝙛 \bisansf MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
+U+1D65C 𝙜 \bisansg MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
+U+1D65D 𝙝 \bisansh MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
+U+1D65E 𝙞 \bisansi MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
+U+1D65F 𝙟 \bisansj MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
+U+1D660 𝙠 \bisansk MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
+U+1D661 𝙡 \bisansl MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
+U+1D662 𝙢 \bisansm MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
+U+1D663 𝙣 \bisansn MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
+U+1D664 𝙤 \bisanso MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
+U+1D665 𝙥 \bisansp MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
+U+1D666 𝙦 \bisansq MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
+U+1D667 𝙧 \bisansr MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
+U+1D668 𝙨 \bisanss MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
+U+1D669 𝙩 \bisanst MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
+U+1D66A 𝙪 \bisansu MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
+U+1D66B 𝙫 \bisansv MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
+U+1D66C 𝙬 \bisansw MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
+U+1D66D 𝙭 \bisansx MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
+U+1D66E 𝙮 \bisansy MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
+U+1D66F 𝙯 \bisansz MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
+U+1D670 𝙰 \ttA MATHEMATICAL MONOSPACE CAPITAL A
+U+1D671 𝙱 \ttB MATHEMATICAL MONOSPACE CAPITAL B
+U+1D672 𝙲 \ttC MATHEMATICAL MONOSPACE CAPITAL C
+U+1D673 𝙳 \ttD MATHEMATICAL MONOSPACE CAPITAL D
+U+1D674 𝙴 \ttE MATHEMATICAL MONOSPACE CAPITAL E
+U+1D675 𝙵 \ttF MATHEMATICAL MONOSPACE CAPITAL F
+U+1D676 𝙶 \ttG MATHEMATICAL MONOSPACE CAPITAL G
+U+1D677 𝙷 \ttH MATHEMATICAL MONOSPACE CAPITAL H
+U+1D678 𝙸 \ttI MATHEMATICAL MONOSPACE CAPITAL I
+U+1D679 𝙹 \ttJ MATHEMATICAL MONOSPACE CAPITAL J
+U+1D67A 𝙺 \ttK MATHEMATICAL MONOSPACE CAPITAL K
+U+1D67B 𝙻 \ttL MATHEMATICAL MONOSPACE CAPITAL L
+U+1D67C 𝙼 \ttM MATHEMATICAL MONOSPACE CAPITAL M
+U+1D67D 𝙽 \ttN MATHEMATICAL MONOSPACE CAPITAL N
+U+1D67E 𝙾 \ttO MATHEMATICAL MONOSPACE CAPITAL O
+U+1D67F 𝙿 \ttP MATHEMATICAL MONOSPACE CAPITAL P
+U+1D680 𝚀 \ttQ MATHEMATICAL MONOSPACE CAPITAL Q
+U+1D681 𝚁 \ttR MATHEMATICAL MONOSPACE CAPITAL R
+U+1D682 𝚂 \ttS MATHEMATICAL MONOSPACE CAPITAL S
+U+1D683 𝚃 \ttT MATHEMATICAL MONOSPACE CAPITAL T
+U+1D684 𝚄 \ttU MATHEMATICAL MONOSPACE CAPITAL U
+U+1D685 𝚅 \ttV MATHEMATICAL MONOSPACE CAPITAL V
+U+1D686 𝚆 \ttW MATHEMATICAL MONOSPACE CAPITAL W
+U+1D687 𝚇 \ttX MATHEMATICAL MONOSPACE CAPITAL X
+U+1D688 𝚈 \ttY MATHEMATICAL MONOSPACE CAPITAL Y
+U+1D689 𝚉 \ttZ MATHEMATICAL MONOSPACE CAPITAL Z
+U+1D68A 𝚊 \tta MATHEMATICAL MONOSPACE SMALL A
+U+1D68B 𝚋 \ttb MATHEMATICAL MONOSPACE SMALL B
+U+1D68C 𝚌 \ttc MATHEMATICAL MONOSPACE SMALL C
+U+1D68D 𝚍 \ttd MATHEMATICAL MONOSPACE SMALL D
+U+1D68E 𝚎 \tte MATHEMATICAL MONOSPACE SMALL E
+U+1D68F 𝚏 \ttf MATHEMATICAL MONOSPACE SMALL F
+U+1D690 𝚐 \ttg MATHEMATICAL MONOSPACE SMALL G
+U+1D691 𝚑 \tth MATHEMATICAL MONOSPACE SMALL H
+U+1D692 𝚒 \tti MATHEMATICAL MONOSPACE SMALL I
+U+1D693 𝚓 \ttj MATHEMATICAL MONOSPACE SMALL J
+U+1D694 𝚔 \ttk MATHEMATICAL MONOSPACE SMALL K
+U+1D695 𝚕 \ttl MATHEMATICAL MONOSPACE SMALL L
+U+1D696 𝚖 \ttm MATHEMATICAL MONOSPACE SMALL M
+U+1D697 𝚗 \ttn MATHEMATICAL MONOSPACE SMALL N
+U+1D698 𝚘 \tto MATHEMATICAL MONOSPACE SMALL O
+U+1D699 𝚙 \ttp MATHEMATICAL MONOSPACE SMALL P
+U+1D69A 𝚚 \ttq MATHEMATICAL MONOSPACE SMALL Q
+U+1D69B 𝚛 \ttr MATHEMATICAL MONOSPACE SMALL R
+U+1D69C 𝚜 \tts MATHEMATICAL MONOSPACE SMALL S
+U+1D69D 𝚝 \ttt MATHEMATICAL MONOSPACE SMALL T
+U+1D69E 𝚞 \ttu MATHEMATICAL MONOSPACE SMALL U
+U+1D69F 𝚟 \ttv MATHEMATICAL MONOSPACE SMALL V
+U+1D6A0 𝚠 \ttw MATHEMATICAL MONOSPACE SMALL W
+U+1D6A1 𝚡 \ttx MATHEMATICAL MONOSPACE SMALL X
+U+1D6A2 𝚢 \tty MATHEMATICAL MONOSPACE SMALL Y
+U+1D6A3 𝚣 \ttz MATHEMATICAL MONOSPACE SMALL Z
+U+1D6A4 𝚤 \itimath MATHEMATICAL ITALIC SMALL DOTLESS I
+U+1D6A5 𝚥 \itjmath MATHEMATICAL ITALIC SMALL DOTLESS J
+U+1D6A8 𝚨 \bfAlpha MATHEMATICAL BOLD CAPITAL ALPHA
+U+1D6A9 𝚩 \bfBeta MATHEMATICAL BOLD CAPITAL BETA
+U+1D6AA 𝚪 \bfGamma MATHEMATICAL BOLD CAPITAL GAMMA
+U+1D6AB 𝚫 \bfDelta MATHEMATICAL BOLD CAPITAL DELTA
+U+1D6AC 𝚬 \bfEpsilon MATHEMATICAL BOLD CAPITAL EPSILON
+U+1D6AD 𝚭 \bfZeta MATHEMATICAL BOLD CAPITAL ZETA
+U+1D6AE 𝚮 \bfEta MATHEMATICAL BOLD CAPITAL ETA
+U+1D6AF 𝚯 \bfTheta MATHEMATICAL BOLD CAPITAL THETA
+U+1D6B0 𝚰 \bfIota MATHEMATICAL BOLD CAPITAL IOTA
+U+1D6B1 𝚱 \bfKappa MATHEMATICAL BOLD CAPITAL KAPPA
+U+1D6B2 𝚲 \bfLambda MATHEMATICAL BOLD CAPITAL LAMDA
+U+1D6B3 𝚳 \bfMu MATHEMATICAL BOLD CAPITAL MU
+U+1D6B4 𝚴 \bfNu MATHEMATICAL BOLD CAPITAL NU
+U+1D6B5 𝚵 \bfXi MATHEMATICAL BOLD CAPITAL XI
+U+1D6B6 𝚶 \bfOmicron MATHEMATICAL BOLD CAPITAL OMICRON
+U+1D6B7 𝚷 \bfPi MATHEMATICAL BOLD CAPITAL PI
+U+1D6B8 𝚸 \bfRho MATHEMATICAL BOLD CAPITAL RHO
+U+1D6B9 𝚹 \bfvarTheta MATHEMATICAL BOLD CAPITAL THETA SYMBOL
+U+1D6BA 𝚺 \bfSigma MATHEMATICAL BOLD CAPITAL SIGMA
+U+1D6BB 𝚻 \bfTau MATHEMATICAL BOLD CAPITAL TAU
+U+1D6BC 𝚼 \bfUpsilon MATHEMATICAL BOLD CAPITAL UPSILON
+U+1D6BD 𝚽 \bfPhi MATHEMATICAL BOLD CAPITAL PHI
+U+1D6BE 𝚾 \bfChi MATHEMATICAL BOLD CAPITAL CHI
+U+1D6BF 𝚿 \bfPsi MATHEMATICAL BOLD CAPITAL PSI
+U+1D6C0 𝛀 \bfOmega MATHEMATICAL BOLD CAPITAL OMEGA
+U+1D6C1 𝛁 \bfnabla MATHEMATICAL BOLD NABLA
+U+1D6C2 𝛂 \bfalpha MATHEMATICAL BOLD SMALL ALPHA
+U+1D6C3 𝛃 \bfbeta MATHEMATICAL BOLD SMALL BETA
+U+1D6C4 𝛄 \bfgamma MATHEMATICAL BOLD SMALL GAMMA
+U+1D6C5 𝛅 \bfdelta MATHEMATICAL BOLD SMALL DELTA
+U+1D6C6 𝛆 \bfepsilon MATHEMATICAL BOLD SMALL EPSILON
+U+1D6C7 𝛇 \bfzeta MATHEMATICAL BOLD SMALL ZETA
+U+1D6C8 𝛈 \bfeta MATHEMATICAL BOLD SMALL ETA
+U+1D6C9 𝛉 \bftheta MATHEMATICAL BOLD SMALL THETA
+U+1D6CA 𝛊 \bfiota MATHEMATICAL BOLD SMALL IOTA
+U+1D6CB 𝛋 \bfkappa MATHEMATICAL BOLD SMALL KAPPA
+U+1D6CC 𝛌 \bflambda MATHEMATICAL BOLD SMALL LAMDA
+U+1D6CD 𝛍 \bfmu MATHEMATICAL BOLD SMALL MU
+U+1D6CE 𝛎 \bfnu MATHEMATICAL BOLD SMALL NU
+U+1D6CF 𝛏 \bfxi MATHEMATICAL BOLD SMALL XI
+U+1D6D0 𝛐 \bfomicron MATHEMATICAL BOLD SMALL OMICRON
+U+1D6D1 𝛑 \bfpi MATHEMATICAL BOLD SMALL PI
+U+1D6D2 𝛒 \bfrho MATHEMATICAL BOLD SMALL RHO
+U+1D6D3 𝛓 \bfvarsigma MATHEMATICAL BOLD SMALL FINAL SIGMA
+U+1D6D4 𝛔 \bfsigma MATHEMATICAL BOLD SMALL SIGMA
+U+1D6D5 𝛕 \bftau MATHEMATICAL BOLD SMALL TAU
+U+1D6D6 𝛖 \bfupsilon MATHEMATICAL BOLD SMALL UPSILON
+U+1D6D7 𝛗 \bfvarphi MATHEMATICAL BOLD SMALL PHI
+U+1D6D8 𝛘 \bfchi MATHEMATICAL BOLD SMALL CHI
+U+1D6D9 𝛙 \bfpsi MATHEMATICAL BOLD SMALL PSI
+U+1D6DA 𝛚 \bfomega MATHEMATICAL BOLD SMALL OMEGA
+U+1D6DB 𝛛 \bfpartial MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+U+1D6DC 𝛜 \bfvarepsilon MATHEMATICAL BOLD EPSILON SYMBOL
+U+1D6DD 𝛝 \bfvartheta MATHEMATICAL BOLD THETA SYMBOL
+U+1D6DE 𝛞 \bfvarkappa MATHEMATICAL BOLD KAPPA SYMBOL
+U+1D6DF 𝛟 \bfphi MATHEMATICAL BOLD PHI SYMBOL
+U+1D6E0 𝛠 \bfvarrho MATHEMATICAL BOLD RHO SYMBOL
+U+1D6E1 𝛡 \bfvarpi MATHEMATICAL BOLD PI SYMBOL
+U+1D6E2 𝛢 \itAlpha MATHEMATICAL ITALIC CAPITAL ALPHA
+U+1D6E3 𝛣 \itBeta MATHEMATICAL ITALIC CAPITAL BETA
+U+1D6E4 𝛤 \itGamma MATHEMATICAL ITALIC CAPITAL GAMMA
+U+1D6E5 𝛥 \itDelta MATHEMATICAL ITALIC CAPITAL DELTA
+U+1D6E6 𝛦 \itEpsilon MATHEMATICAL ITALIC CAPITAL EPSILON
+U+1D6E7 𝛧 \itZeta MATHEMATICAL ITALIC CAPITAL ZETA
+U+1D6E8 𝛨 \itEta MATHEMATICAL ITALIC CAPITAL ETA
+U+1D6E9 𝛩 \itTheta MATHEMATICAL ITALIC CAPITAL THETA
+U+1D6EA 𝛪 \itIota MATHEMATICAL ITALIC CAPITAL IOTA
+U+1D6EB 𝛫 \itKappa MATHEMATICAL ITALIC CAPITAL KAPPA
+U+1D6EC 𝛬 \itLambda MATHEMATICAL ITALIC CAPITAL LAMDA
+U+1D6ED 𝛭 \itMu MATHEMATICAL ITALIC CAPITAL MU
+U+1D6EE 𝛮 \itNu MATHEMATICAL ITALIC CAPITAL NU
+U+1D6EF 𝛯 \itXi MATHEMATICAL ITALIC CAPITAL XI
+U+1D6F0 𝛰 \itOmicron MATHEMATICAL ITALIC CAPITAL OMICRON
+U+1D6F1 𝛱 \itPi MATHEMATICAL ITALIC CAPITAL PI
+U+1D6F2 𝛲 \itRho MATHEMATICAL ITALIC CAPITAL RHO
+U+1D6F3 𝛳 \itvarTheta MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
+U+1D6F4 𝛴 \itSigma MATHEMATICAL ITALIC CAPITAL SIGMA
+U+1D6F5 𝛵 \itTau MATHEMATICAL ITALIC CAPITAL TAU
+U+1D6F6 𝛶 \itUpsilon MATHEMATICAL ITALIC CAPITAL UPSILON
+U+1D6F7 𝛷 \itPhi MATHEMATICAL ITALIC CAPITAL PHI
+U+1D6F8 𝛸 \itChi MATHEMATICAL ITALIC CAPITAL CHI
+U+1D6F9 𝛹 \itPsi MATHEMATICAL ITALIC CAPITAL PSI
+U+1D6FA 𝛺 \itOmega MATHEMATICAL ITALIC CAPITAL OMEGA
+U+1D6FB 𝛻 \itnabla MATHEMATICAL ITALIC NABLA
+U+1D6FC 𝛼 \italpha MATHEMATICAL ITALIC SMALL ALPHA
+U+1D6FD 𝛽 \itbeta MATHEMATICAL ITALIC SMALL BETA
+U+1D6FE 𝛾 \itgamma MATHEMATICAL ITALIC SMALL GAMMA
+U+1D6FF 𝛿 \itdelta MATHEMATICAL ITALIC SMALL DELTA
+U+1D700 𝜀 \itepsilon MATHEMATICAL ITALIC SMALL EPSILON
+U+1D701 𝜁 \itzeta MATHEMATICAL ITALIC SMALL ZETA
+U+1D702 𝜂 \iteta MATHEMATICAL ITALIC SMALL ETA
+U+1D703 𝜃 \ittheta MATHEMATICAL ITALIC SMALL THETA
+U+1D704 𝜄 \itiota MATHEMATICAL ITALIC SMALL IOTA
+U+1D705 𝜅 \itkappa MATHEMATICAL ITALIC SMALL KAPPA
+U+1D706 𝜆 \itlambda MATHEMATICAL ITALIC SMALL LAMDA
+U+1D707 𝜇 \itmu MATHEMATICAL ITALIC SMALL MU
+U+1D708 𝜈 \itnu MATHEMATICAL ITALIC SMALL NU
+U+1D709 𝜉 \itxi MATHEMATICAL ITALIC SMALL XI
+U+1D70A 𝜊 \itomicron MATHEMATICAL ITALIC SMALL OMICRON
+U+1D70B 𝜋 \itpi MATHEMATICAL ITALIC SMALL PI
+U+1D70C 𝜌 \itrho MATHEMATICAL ITALIC SMALL RHO
+U+1D70D 𝜍 \itvarsigma MATHEMATICAL ITALIC SMALL FINAL SIGMA
+U+1D70E 𝜎 \itsigma MATHEMATICAL ITALIC SMALL SIGMA
+U+1D70F 𝜏 \ittau MATHEMATICAL ITALIC SMALL TAU
+U+1D710 𝜐 \itupsilon MATHEMATICAL ITALIC SMALL UPSILON
+U+1D711 𝜑 \itphi MATHEMATICAL ITALIC SMALL PHI
+U+1D712 𝜒 \itchi MATHEMATICAL ITALIC SMALL CHI
+U+1D713 𝜓 \itpsi MATHEMATICAL ITALIC SMALL PSI
+U+1D714 𝜔 \itomega MATHEMATICAL ITALIC SMALL OMEGA
+U+1D715 𝜕 \itpartial MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+U+1D716 𝜖 \itvarepsilon MATHEMATICAL ITALIC EPSILON SYMBOL
+U+1D717 𝜗 \itvartheta MATHEMATICAL ITALIC THETA SYMBOL
+U+1D718 𝜘 \itvarkappa MATHEMATICAL ITALIC KAPPA SYMBOL
+U+1D719 𝜙 \itvarphi MATHEMATICAL ITALIC PHI SYMBOL
+U+1D71A 𝜚 \itvarrho MATHEMATICAL ITALIC RHO SYMBOL
+U+1D71B 𝜛 \itvarpi MATHEMATICAL ITALIC PI SYMBOL
+U+1D71C 𝜜 \biAlpha MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
+U+1D71D 𝜝 \biBeta MATHEMATICAL BOLD ITALIC CAPITAL BETA
+U+1D71E 𝜞 \biGamma MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
+U+1D71F 𝜟 \biDelta MATHEMATICAL BOLD ITALIC CAPITAL DELTA
+U+1D720 𝜠 \biEpsilon MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
+U+1D721 𝜡 \biZeta MATHEMATICAL BOLD ITALIC CAPITAL ZETA
+U+1D722 𝜢 \biEta MATHEMATICAL BOLD ITALIC CAPITAL ETA
+U+1D723 𝜣 \biTheta MATHEMATICAL BOLD ITALIC CAPITAL THETA
+U+1D724 𝜤 \biIota MATHEMATICAL BOLD ITALIC CAPITAL IOTA
+U+1D725 𝜥 \biKappa MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
+U+1D726 𝜦 \biLambda MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
+U+1D727 𝜧 \biMu MATHEMATICAL BOLD ITALIC CAPITAL MU
+U+1D728 𝜨 \biNu MATHEMATICAL BOLD ITALIC CAPITAL NU
+U+1D729 𝜩 \biXi MATHEMATICAL BOLD ITALIC CAPITAL XI
+U+1D72A 𝜪 \biOmicron MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
+U+1D72B 𝜫 \biPi MATHEMATICAL BOLD ITALIC CAPITAL PI
+U+1D72C 𝜬 \biRho MATHEMATICAL BOLD ITALIC CAPITAL RHO
+U+1D72D 𝜭 \bivarTheta MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
+U+1D72E 𝜮 \biSigma MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
+U+1D72F 𝜯 \biTau MATHEMATICAL BOLD ITALIC CAPITAL TAU
+U+1D730 𝜰 \biUpsilon MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
+U+1D731 𝜱 \biPhi MATHEMATICAL BOLD ITALIC CAPITAL PHI
+U+1D732 𝜲 \biChi MATHEMATICAL BOLD ITALIC CAPITAL CHI
+U+1D733 𝜳 \biPsi MATHEMATICAL BOLD ITALIC CAPITAL PSI
+U+1D734 𝜴 \biOmega MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+U+1D735 𝜵 \binabla MATHEMATICAL BOLD ITALIC NABLA
+U+1D736 𝜶 \bialpha MATHEMATICAL BOLD ITALIC SMALL ALPHA
+U+1D737 𝜷 \bibeta MATHEMATICAL BOLD ITALIC SMALL BETA
+U+1D738 𝜸 \bigamma MATHEMATICAL BOLD ITALIC SMALL GAMMA
+U+1D739 𝜹 \bidelta MATHEMATICAL BOLD ITALIC SMALL DELTA
+U+1D73A 𝜺 \biepsilon MATHEMATICAL BOLD ITALIC SMALL EPSILON
+U+1D73B 𝜻 \bizeta MATHEMATICAL BOLD ITALIC SMALL ZETA
+U+1D73C 𝜼 \bieta MATHEMATICAL BOLD ITALIC SMALL ETA
+U+1D73D 𝜽 \bitheta MATHEMATICAL BOLD ITALIC SMALL THETA
+U+1D73E 𝜾 \biiota MATHEMATICAL BOLD ITALIC SMALL IOTA
+U+1D73F 𝜿 \bikappa MATHEMATICAL BOLD ITALIC SMALL KAPPA
+U+1D740 𝝀 \bilambda MATHEMATICAL BOLD ITALIC SMALL LAMDA
+U+1D741 𝝁 \bimu MATHEMATICAL BOLD ITALIC SMALL MU
+U+1D742 𝝂 \binu MATHEMATICAL BOLD ITALIC SMALL NU
+U+1D743 𝝃 \bixi MATHEMATICAL BOLD ITALIC SMALL XI
+U+1D744 𝝄 \biomicron MATHEMATICAL BOLD ITALIC SMALL OMICRON
+U+1D745 𝝅 \bipi MATHEMATICAL BOLD ITALIC SMALL PI
+U+1D746 𝝆 \birho MATHEMATICAL BOLD ITALIC SMALL RHO
+U+1D747 𝝇 \bivarsigma MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
+U+1D748 𝝈 \bisigma MATHEMATICAL BOLD ITALIC SMALL SIGMA
+U+1D749 𝝉 \bitau MATHEMATICAL BOLD ITALIC SMALL TAU
+U+1D74A 𝝊 \biupsilon MATHEMATICAL BOLD ITALIC SMALL UPSILON
+U+1D74B 𝝋 \biphi MATHEMATICAL BOLD ITALIC SMALL PHI
+U+1D74C 𝝌 \bichi MATHEMATICAL BOLD ITALIC SMALL CHI
+U+1D74D 𝝍 \bipsi MATHEMATICAL BOLD ITALIC SMALL PSI
+U+1D74E 𝝎 \biomega MATHEMATICAL BOLD ITALIC SMALL OMEGA
+U+1D74F 𝝏 \bipartial MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+U+1D750 𝝐 \bivarepsilon MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
+U+1D751 𝝑 \bivartheta MATHEMATICAL BOLD ITALIC THETA SYMBOL
+U+1D752 𝝒 \bivarkappa MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
+U+1D753 𝝓 \bivarphi MATHEMATICAL BOLD ITALIC PHI SYMBOL
+U+1D754 𝝔 \bivarrho MATHEMATICAL BOLD ITALIC RHO SYMBOL
+U+1D755 𝝕 \bivarpi MATHEMATICAL BOLD ITALIC PI SYMBOL
+U+1D756 𝝖 \bsansAlpha MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
+U+1D757 𝝗 \bsansBeta MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
+U+1D758 𝝘 \bsansGamma MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
+U+1D759 𝝙 \bsansDelta MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
+U+1D75A 𝝚 \bsansEpsilon MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
+U+1D75B 𝝛 \bsansZeta MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
+U+1D75C 𝝜 \bsansEta MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
+U+1D75D 𝝝 \bsansTheta MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
+U+1D75E 𝝞 \bsansIota MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
+U+1D75F 𝝟 \bsansKappa MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
+U+1D760 𝝠 \bsansLambda MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
+U+1D761 𝝡 \bsansMu MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
+U+1D762 𝝢 \bsansNu MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
+U+1D763 𝝣 \bsansXi MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
+U+1D764 𝝤 \bsansOmicron MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
+U+1D765 𝝥 \bsansPi MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
+U+1D766 𝝦 \bsansRho MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
+U+1D767 𝝧 \bsansvarTheta MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
+U+1D768 𝝨 \bsansSigma MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
+U+1D769 𝝩 \bsansTau MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
+U+1D76A 𝝪 \bsansUpsilon MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
+U+1D76B 𝝫 \bsansPhi MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
+U+1D76C 𝝬 \bsansChi MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
+U+1D76D 𝝭 \bsansPsi MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
+U+1D76E 𝝮 \bsansOmega MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+U+1D76F 𝝯 \bsansnabla MATHEMATICAL SANS-SERIF BOLD NABLA
+U+1D770 𝝰 \bsansalpha MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
+U+1D771 𝝱 \bsansbeta MATHEMATICAL SANS-SERIF BOLD SMALL BETA
+U+1D772 𝝲 \bsansgamma MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
+U+1D773 𝝳 \bsansdelta MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
+U+1D774 𝝴 \bsansepsilon MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
+U+1D775 𝝵 \bsanszeta MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
+U+1D776 𝝶 \bsanseta MATHEMATICAL SANS-SERIF BOLD SMALL ETA
+U+1D777 𝝷 \bsanstheta MATHEMATICAL SANS-SERIF BOLD SMALL THETA
+U+1D778 𝝸 \bsansiota MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
+U+1D779 𝝹 \bsanskappa MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
+U+1D77A 𝝺 \bsanslambda MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
+U+1D77B 𝝻 \bsansmu MATHEMATICAL SANS-SERIF BOLD SMALL MU
+U+1D77C 𝝼 \bsansnu MATHEMATICAL SANS-SERIF BOLD SMALL NU
+U+1D77D 𝝽 \bsansxi MATHEMATICAL SANS-SERIF BOLD SMALL XI
+U+1D77E 𝝾 \bsansomicron MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
+U+1D77F 𝝿 \bsanspi MATHEMATICAL SANS-SERIF BOLD SMALL PI
+U+1D780 𝞀 \bsansrho MATHEMATICAL SANS-SERIF BOLD SMALL RHO
+U+1D781 𝞁 \bsansvarsigma MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
+U+1D782 𝞂 \bsanssigma MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
+U+1D783 𝞃 \bsanstau MATHEMATICAL SANS-SERIF BOLD SMALL TAU
+U+1D784 𝞄 \bsansupsilon MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
+U+1D785 𝞅 \bsansphi MATHEMATICAL SANS-SERIF BOLD SMALL PHI
+U+1D786 𝞆 \bsanschi MATHEMATICAL SANS-SERIF BOLD SMALL CHI
+U+1D787 𝞇 \bsanspsi MATHEMATICAL SANS-SERIF BOLD SMALL PSI
+U+1D788 𝞈 \bsansomega MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+U+1D789 𝞉 \bsanspartial MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+U+1D78A 𝞊 \bsansvarepsilon MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
+U+1D78B 𝞋 \bsansvartheta MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
+U+1D78C 𝞌 \bsansvarkappa MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
+U+1D78D 𝞍 \bsansvarphi MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
+U+1D78E 𝞎 \bsansvarrho MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
+U+1D78F 𝞏 \bsansvarpi MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
+U+1D790 𝞐 \bisansAlpha MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
+U+1D791 𝞑 \bisansBeta MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
+U+1D792 𝞒 \bisansGamma MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
+U+1D793 𝞓 \bisansDelta MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
+U+1D794 𝞔 \bisansEpsilon MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
+U+1D795 𝞕 \bisansZeta MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
+U+1D796 𝞖 \bisansEta MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
+U+1D797 𝞗 \bisansTheta MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
+U+1D798 𝞘 \bisansIota MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
+U+1D799 𝞙 \bisansKappa MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
+U+1D79A 𝞚 \bisansLambda MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
+U+1D79B 𝞛 \bisansMu MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
+U+1D79C 𝞜 \bisansNu MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
+U+1D79D 𝞝 \bisansXi MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
+U+1D79E 𝞞 \bisansOmicron MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
+U+1D79F 𝞟 \bisansPi MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
+U+1D7A0 𝞠 \bisansRho MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
+U+1D7A1 𝞡 \bisansvarTheta MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
+U+1D7A2 𝞢 \bisansSigma MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
+U+1D7A3 𝞣 \bisansTau MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
+U+1D7A4 𝞤 \bisansUpsilon MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
+U+1D7A5 𝞥 \bisansPhi MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
+U+1D7A6 𝞦 \bisansChi MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
+U+1D7A7 𝞧 \bisansPsi MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
+U+1D7A8 𝞨 \bisansOmega MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+U+1D7A9 𝞩 \bisansnabla MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+U+1D7AA 𝞪 \bisansalpha MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
+U+1D7AB 𝞫 \bisansbeta MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
+U+1D7AC 𝞬 \bisansgamma MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
+U+1D7AD 𝞭 \bisansdelta MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
+U+1D7AE 𝞮 \bisansepsilon MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
+U+1D7AF 𝞯 \bisanszeta MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
+U+1D7B0 𝞰 \bisanseta MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
+U+1D7B1 𝞱 \bisanstheta MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
+U+1D7B2 𝞲 \bisansiota MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
+U+1D7B3 𝞳 \bisanskappa MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
+U+1D7B4 𝞴 \bisanslambda MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
+U+1D7B5 𝞵 \bisansmu MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
+U+1D7B6 𝞶 \bisansnu MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
+U+1D7B7 𝞷 \bisansxi MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
+U+1D7B8 𝞸 \bisansomicron MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
+U+1D7B9 𝞹 \bisanspi MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
+U+1D7BA 𝞺 \bisansrho MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
+U+1D7BB 𝞻 \bisansvarsigma MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
+U+1D7BC 𝞼 \bisanssigma MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
+U+1D7BD 𝞽 \bisanstau MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
+U+1D7BE 𝞾 \bisansupsilon MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
+U+1D7BF 𝞿 \bisansphi MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
+U+1D7C0 𝟀 \bisanschi MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
+U+1D7C1 𝟁 \bisanspsi MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
+U+1D7C2 𝟂 \bisansomega MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+U+1D7C3 𝟃 \bisanspartial MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+U+1D7C4 𝟄 \bisansvarepsilon MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
+U+1D7C5 𝟅 \bisansvartheta MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
+U+1D7C6 𝟆 \bisansvarkappa MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
+U+1D7C7 𝟇 \bisansvarphi MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
+U+1D7C8 𝟈 \bisansvarrho MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
+U+1D7C9 𝟉 \bisansvarpi MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
+U+1D7CA 𝟊 \bfDigamma MATHEMATICAL BOLD CAPITAL DIGAMMA
+U+1D7CB 𝟋 \bfdigamma MATHEMATICAL BOLD SMALL DIGAMMA
+U+1D7CE 𝟎 \bfzero MATHEMATICAL BOLD DIGIT ZERO
+U+1D7CF 𝟏 \bfone MATHEMATICAL BOLD DIGIT ONE
+U+1D7D0 𝟐 \bftwo MATHEMATICAL BOLD DIGIT TWO
+U+1D7D1 𝟑 \bfthree MATHEMATICAL BOLD DIGIT THREE
+U+1D7D2 𝟒 \bffour MATHEMATICAL BOLD DIGIT FOUR
+U+1D7D3 𝟓 \bffive MATHEMATICAL BOLD DIGIT FIVE
+U+1D7D4 𝟔 \bfsix MATHEMATICAL BOLD DIGIT SIX
+U+1D7D5 𝟕 \bfseven MATHEMATICAL BOLD DIGIT SEVEN
+U+1D7D6 𝟖 \bfeight MATHEMATICAL BOLD DIGIT EIGHT
+U+1D7D7 𝟗 \bfnine MATHEMATICAL BOLD DIGIT NINE
+U+1D7D8 𝟘 \bbzero MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
+U+1D7D9 𝟙 \bbone MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
+U+1D7DA 𝟚 \bbtwo MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
+U+1D7DB 𝟛 \bbthree MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
+U+1D7DC 𝟜 \bbfour MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
+U+1D7DD 𝟝 \bbfive MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
+U+1D7DE 𝟞 \bbsix MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
+U+1D7DF 𝟟 \bbseven MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
+U+1D7E0 𝟠 \bbeight MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
+U+1D7E1 𝟡 \bbnine MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
+U+1D7E2 𝟢 \sanszero MATHEMATICAL SANS-SERIF DIGIT ZERO
+U+1D7E3 𝟣 \sansone MATHEMATICAL SANS-SERIF DIGIT ONE
+U+1D7E4 𝟤 \sanstwo MATHEMATICAL SANS-SERIF DIGIT TWO
+U+1D7E5 𝟥 \sansthree MATHEMATICAL SANS-SERIF DIGIT THREE
+U+1D7E6 𝟦 \sansfour MATHEMATICAL SANS-SERIF DIGIT FOUR
+U+1D7E7 𝟧 \sansfive MATHEMATICAL SANS-SERIF DIGIT FIVE
+U+1D7E8 𝟨 \sanssix MATHEMATICAL SANS-SERIF DIGIT SIX
+U+1D7E9 𝟩 \sansseven MATHEMATICAL SANS-SERIF DIGIT SEVEN
+U+1D7EA 𝟪 \sanseight MATHEMATICAL SANS-SERIF DIGIT EIGHT
+U+1D7EB 𝟫 \sansnine MATHEMATICAL SANS-SERIF DIGIT NINE
+U+1D7EC 𝟬 \bsanszero MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
+U+1D7ED 𝟭 \bsansone MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
+U+1D7EE 𝟮 \bsanstwo MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
+U+1D7EF 𝟯 \bsansthree MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
+U+1D7F0 𝟰 \bsansfour MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
+U+1D7F1 𝟱 \bsansfive MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
+U+1D7F2 𝟲 \bsanssix MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
+U+1D7F3 𝟳 \bsansseven MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
+U+1D7F4 𝟴 \bsanseight MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
+U+1D7F5 𝟵 \bsansnine MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
+U+1D7F6 𝟶 \ttzero MATHEMATICAL MONOSPACE DIGIT ZERO
+U+1D7F7 𝟷 \ttone MATHEMATICAL MONOSPACE DIGIT ONE
+U+1D7F8 𝟸 \tttwo MATHEMATICAL MONOSPACE DIGIT TWO
+U+1D7F9 𝟹 \ttthree MATHEMATICAL MONOSPACE DIGIT THREE
+U+1D7FA 𝟺 \ttfour MATHEMATICAL MONOSPACE DIGIT FOUR
+U+1D7FB 𝟻 \ttfive MATHEMATICAL MONOSPACE DIGIT FIVE
+U+1D7FC 𝟼 \ttsix MATHEMATICAL MONOSPACE DIGIT SIX
+U+1D7FD 𝟽 \ttseven MATHEMATICAL MONOSPACE DIGIT SEVEN
+U+1D7FE 𝟾 \tteight MATHEMATICAL MONOSPACE DIGIT EIGHT
+U+1D7FF 𝟿 \ttnine MATHEMATICAL MONOSPACE DIGIT NINE
+U+1F004 🀄 \:mahjong: MAHJONG TILE RED DRAGON
+U+1F0CF 🃏 \:black_joker: PLAYING CARD BLACK JOKER
+U+1F170 🅰 \:a: NEGATIVE SQUARED LATIN CAPITAL LETTER A
+U+1F171 🅱 \:b: NEGATIVE SQUARED LATIN CAPITAL LETTER B
+U+1F17E 🅾 \:o2: NEGATIVE SQUARED LATIN CAPITAL LETTER O
+U+1F17F 🅿 \:parking: NEGATIVE SQUARED LATIN CAPITAL LETTER P
+U+1F18E 🆎 \:ab: NEGATIVE SQUARED AB
+U+1F191 🆑 \:cl: SQUARED CL
+U+1F192 🆒 \:cool: SQUARED COOL
+U+1F193 🆓 \:free: SQUARED FREE
+U+1F194 🆔 \:id: SQUARED ID
+U+1F195 🆕 \:new: SQUARED NEW
+U+1F196 🆖 \:ng: SQUARED NG
+U+1F197 🆗 \:ok: SQUARED OK
+U+1F198 🆘 \:sos: SQUARED SOS
+U+1F199 🆙 \:up: SQUARED UP WITH EXCLAMATION MARK
+U+1F19A 🆚 \:vs: SQUARED VS
+U+1F201 🈁 \:koko: SQUARED KATAKANA KOKO
+U+1F202 🈂 \:sa: SQUARED KATAKANA SA
+U+1F21A 🈚 \:u7121: SQUARED CJK UNIFIED IDEOGRAPH-7121
+U+1F22F 🈯 \:u6307: SQUARED CJK UNIFIED IDEOGRAPH-6307
+U+1F232 🈲 \:u7981: SQUARED CJK UNIFIED IDEOGRAPH-7981
+U+1F233 🈳 \:u7a7a: SQUARED CJK UNIFIED IDEOGRAPH-7A7A
+U+1F234 🈴 \:u5408: SQUARED CJK UNIFIED IDEOGRAPH-5408
+U+1F235 🈵 \:u6e80: SQUARED CJK UNIFIED IDEOGRAPH-6E80
+U+1F236 🈶 \:u6709: SQUARED CJK UNIFIED IDEOGRAPH-6709
+U+1F237 🈷 \:u6708: SQUARED CJK UNIFIED IDEOGRAPH-6708
+U+1F238 🈸 \:u7533: SQUARED CJK UNIFIED IDEOGRAPH-7533
+U+1F239 🈹 \:u5272: SQUARED CJK UNIFIED IDEOGRAPH-5272
+U+1F23A 🈺 \:u55b6: SQUARED CJK UNIFIED IDEOGRAPH-55B6
+U+1F250 🉐 \:ideograph_advantage: CIRCLED IDEOGRAPH ADVANTAGE
+U+1F251 🉑 \:accept: CIRCLED IDEOGRAPH ACCEPT
+U+1F300 🌀 \:cyclone: CYCLONE
+U+1F301 🌁 \:foggy: FOGGY
+U+1F302 🌂 \:closed_umbrella: CLOSED UMBRELLA
+U+1F303 🌃 \:night_with_stars: NIGHT WITH STARS
+U+1F304 🌄 \:sunrise_over_mountains: SUNRISE OVER MOUNTAINS
+U+1F305 🌅 \:sunrise: SUNRISE
+U+1F306 🌆 \:city_sunset: CITYSCAPE AT DUSK
+U+1F307 🌇 \:city_sunrise: SUNSET OVER BUILDINGS
+U+1F308 🌈 \:rainbow: RAINBOW
+U+1F309 🌉 \:bridge_at_night: BRIDGE AT NIGHT
+U+1F30A 🌊 \:ocean: WATER WAVE
+U+1F30B 🌋 \:volcano: VOLCANO
+U+1F30C 🌌 \:milky_way: MILKY WAY
+U+1F30D 🌍 \:earth_africa: EARTH GLOBE EUROPE-AFRICA
+U+1F30E 🌎 \:earth_americas: EARTH GLOBE AMERICAS
+U+1F30F 🌏 \:earth_asia: EARTH GLOBE ASIA-AUSTRALIA
+U+1F310 🌐 \:globe_with_meridians: GLOBE WITH MERIDIANS
+U+1F311 🌑 \:new_moon: NEW MOON SYMBOL
+U+1F312 🌒 \:waxing_crescent_moon: WAXING CRESCENT MOON SYMBOL
+U+1F313 🌓 \:first_quarter_moon: FIRST QUARTER MOON SYMBOL
+U+1F314 🌔 \:moon: WAXING GIBBOUS MOON SYMBOL
+U+1F315 🌕 \:full_moon: FULL MOON SYMBOL
+U+1F316 🌖 \:waning_gibbous_moon: WANING GIBBOUS MOON SYMBOL
+U+1F317 🌗 \:last_quarter_moon: LAST QUARTER MOON SYMBOL
+U+1F318 🌘 \:waning_crescent_moon: WANING CRESCENT MOON SYMBOL
+U+1F319 🌙 \:crescent_moon: CRESCENT MOON
+U+1F31A 🌚 \:new_moon_with_face: NEW MOON WITH FACE
+U+1F31B 🌛 \:first_quarter_moon_with_face: FIRST QUARTER MOON WITH FACE
+U+1F31C 🌜 \:last_quarter_moon_with_face: LAST QUARTER MOON WITH FACE
+U+1F31D 🌝 \:full_moon_with_face: FULL MOON WITH FACE
+U+1F31E 🌞 \:sun_with_face: SUN WITH FACE
+U+1F31F 🌟 \:star2: GLOWING STAR
+U+1F320 🌠 \:stars: SHOOTING STAR
+U+1F330 🌰 \:chestnut: CHESTNUT
+U+1F331 🌱 \:seedling: SEEDLING
+U+1F332 🌲 \:evergreen_tree: EVERGREEN TREE
+U+1F333 🌳 \:deciduous_tree: DECIDUOUS TREE
+U+1F334 🌴 \:palm_tree: PALM TREE
+U+1F335 🌵 \:cactus: CACTUS
+U+1F337 🌷 \:tulip: TULIP
+U+1F338 🌸 \:cherry_blossom: CHERRY BLOSSOM
+U+1F339 🌹 \:rose: ROSE
+U+1F33A 🌺 \:hibiscus: HIBISCUS
+U+1F33B 🌻 \:sunflower: SUNFLOWER
+U+1F33C 🌼 \:blossom: BLOSSOM
+U+1F33D 🌽 \:corn: EAR OF MAIZE
+U+1F33E 🌾 \:ear_of_rice: EAR OF RICE
+U+1F33F 🌿 \:herb: HERB
+U+1F340 🍀 \:four_leaf_clover: FOUR LEAF CLOVER
+U+1F341 🍁 \:maple_leaf: MAPLE LEAF
+U+1F342 🍂 \:fallen_leaf: FALLEN LEAF
+U+1F343 🍃 \:leaves: LEAF FLUTTERING IN WIND
+U+1F344 🍄 \:mushroom: MUSHROOM
+U+1F345 🍅 \:tomato: TOMATO
+U+1F346 🍆 \:eggplant: AUBERGINE
+U+1F347 🍇 \:grapes: GRAPES
+U+1F348 🍈 \:melon: MELON
+U+1F349 🍉 \:watermelon: WATERMELON
+U+1F34A 🍊 \:tangerine: TANGERINE
+U+1F34B 🍋 \:lemon: LEMON
+U+1F34C 🍌 \:banana: BANANA
+U+1F34D 🍍 \:pineapple: PINEAPPLE
+U+1F34E 🍎 \:apple: RED APPLE
+U+1F34F 🍏 \:green_apple: GREEN APPLE
+U+1F350 🍐 \:pear: PEAR
+U+1F351 🍑 \:peach: PEACH
+U+1F352 🍒 \:cherries: CHERRIES
+U+1F353 🍓 \:strawberry: STRAWBERRY
+U+1F354 🍔 \:hamburger: HAMBURGER
+U+1F355 🍕 \:pizza: SLICE OF PIZZA
+U+1F356 🍖 \:meat_on_bone: MEAT ON BONE
+U+1F357 🍗 \:poultry_leg: POULTRY LEG
+U+1F358 🍘 \:rice_cracker: RICE CRACKER
+U+1F359 🍙 \:rice_ball: RICE BALL
+U+1F35A 🍚 \:rice: COOKED RICE
+U+1F35B 🍛 \:curry: CURRY AND RICE
+U+1F35C 🍜 \:ramen: STEAMING BOWL
+U+1F35D 🍝 \:spaghetti: SPAGHETTI
+U+1F35E 🍞 \:bread: BREAD
+U+1F35F 🍟 \:fries: FRENCH FRIES
+U+1F360 🍠 \:sweet_potato: ROASTED SWEET POTATO
+U+1F361 🍡 \:dango: DANGO
+U+1F362 🍢 \:oden: ODEN
+U+1F363 🍣 \:sushi: SUSHI
+U+1F364 🍤 \:fried_shrimp: FRIED SHRIMP
+U+1F365 🍥 \:fish_cake: FISH CAKE WITH SWIRL DESIGN
+U+1F366 🍦 \:icecream: SOFT ICE CREAM
+U+1F367 🍧 \:shaved_ice: SHAVED ICE
+U+1F368 🍨 \:ice_cream: ICE CREAM
+U+1F369 🍩 \:doughnut: DOUGHNUT
+U+1F36A 🍪 \:cookie: COOKIE
+U+1F36B 🍫 \:chocolate_bar: CHOCOLATE BAR
+U+1F36C 🍬 \:candy: CANDY
+U+1F36D 🍭 \:lollipop: LOLLIPOP
+U+1F36E 🍮 \:custard: CUSTARD
+U+1F36F 🍯 \:honey_pot: HONEY POT
+U+1F370 🍰 \:cake: SHORTCAKE
+U+1F371 🍱 \:bento: BENTO BOX
+U+1F372 🍲 \:stew: POT OF FOOD
+U+1F373 🍳 \:egg: COOKING
+U+1F374 🍴 \:fork_and_knife: FORK AND KNIFE
+U+1F375 🍵 \:tea: TEACUP WITHOUT HANDLE
+U+1F376 🍶 \:sake: SAKE BOTTLE AND CUP
+U+1F377 🍷 \:wine_glass: WINE GLASS
+U+1F378 🍸 \:cocktail: COCKTAIL GLASS
+U+1F379 🍹 \:tropical_drink: TROPICAL DRINK
+U+1F37A 🍺 \:beer: BEER MUG
+U+1F37B 🍻 \:beers: CLINKING BEER MUGS
+U+1F37C 🍼 \:baby_bottle: BABY BOTTLE
+U+1F380 🎀 \:ribbon: RIBBON
+U+1F381 🎁 \:gift: WRAPPED PRESENT
+U+1F382 🎂 \:birthday: BIRTHDAY CAKE
+U+1F383 🎃 \:jack_o_lantern: JACK-O-LANTERN
+U+1F384 🎄 \:christmas_tree: CHRISTMAS TREE
+U+1F385 🎅 \:santa: FATHER CHRISTMAS
+U+1F386 🎆 \:fireworks: FIREWORKS
+U+1F387 🎇 \:sparkler: FIREWORK SPARKLER
+U+1F388 🎈 \:balloon: BALLOON
+U+1F389 🎉 \:tada: PARTY POPPER
+U+1F38A 🎊 \:confetti_ball: CONFETTI BALL
+U+1F38B 🎋 \:tanabata_tree: TANABATA TREE
+U+1F38C 🎌 \:crossed_flags: CROSSED FLAGS
+U+1F38D 🎍 \:bamboo: PINE DECORATION
+U+1F38E 🎎 \:dolls: JAPANESE DOLLS
+U+1F38F 🎏 \:flags: CARP STREAMER
+U+1F390 🎐 \:wind_chime: WIND CHIME
+U+1F391 🎑 \:rice_scene: MOON VIEWING CEREMONY
+U+1F392 🎒 \:school_satchel: SCHOOL SATCHEL
+U+1F393 🎓 \:mortar_board: GRADUATION CAP
+U+1F3A0 🎠 \:carousel_horse: CAROUSEL HORSE
+U+1F3A1 🎡 \:ferris_wheel: FERRIS WHEEL
+U+1F3A2 🎢 \:roller_coaster: ROLLER COASTER
+U+1F3A3 🎣 \:fishing_pole_and_fish: FISHING POLE AND FISH
+U+1F3A4 🎤 \:microphone: MICROPHONE
+U+1F3A5 🎥 \:movie_camera: MOVIE CAMERA
+U+1F3A6 🎦 \:cinema: CINEMA
+U+1F3A7 🎧 \:headphones: HEADPHONE
+U+1F3A8 🎨 \:art: ARTIST PALETTE
+U+1F3A9 🎩 \:tophat: TOP HAT
+U+1F3AA 🎪 \:circus_tent: CIRCUS TENT
+U+1F3AB 🎫 \:ticket: TICKET
+U+1F3AC 🎬 \:clapper: CLAPPER BOARD
+U+1F3AD 🎭 \:performing_arts: PERFORMING ARTS
+U+1F3AE 🎮 \:video_game: VIDEO GAME
+U+1F3AF 🎯 \:dart: DIRECT HIT
+U+1F3B0 🎰 \:slot_machine: SLOT MACHINE
+U+1F3B1 🎱 \:8ball: BILLIARDS
+U+1F3B2 🎲 \:game_die: GAME DIE
+U+1F3B3 🎳 \:bowling: BOWLING
+U+1F3B4 🎴 \:flower_playing_cards: FLOWER PLAYING CARDS
+U+1F3B5 🎵 \:musical_note: MUSICAL NOTE
+U+1F3B6 🎶 \:notes: MULTIPLE MUSICAL NOTES
+U+1F3B7 🎷 \:saxophone: SAXOPHONE
+U+1F3B8 🎸 \:guitar: GUITAR
+U+1F3B9 🎹 \:musical_keyboard: MUSICAL KEYBOARD
+U+1F3BA 🎺 \:trumpet: TRUMPET
+U+1F3BB 🎻 \:violin: VIOLIN
+U+1F3BC 🎼 \:musical_score: MUSICAL SCORE
+U+1F3BD 🎽 \:running_shirt_with_sash: RUNNING SHIRT WITH SASH
+U+1F3BE 🎾 \:tennis: TENNIS RACQUET AND BALL
+U+1F3BF 🎿 \:ski: SKI AND SKI BOOT
+U+1F3C0 🏀 \:basketball: BASKETBALL AND HOOP
+U+1F3C1 🏁 \:checkered_flag: CHEQUERED FLAG
+U+1F3C2 🏂 \:snowboarder: SNOWBOARDER
+U+1F3C3 🏃 \:runner: RUNNER
+U+1F3C4 🏄 \:surfer: SURFER
+U+1F3C6 🏆 \:trophy: TROPHY
+U+1F3C7 🏇 \:horse_racing: HORSE RACING
+U+1F3C8 🏈 \:football: AMERICAN FOOTBALL
+U+1F3C9 🏉 \:rugby_football: RUGBY FOOTBALL
+U+1F3CA 🏊 \:swimmer: SWIMMER
+U+1F3E0 🏠 \:house: HOUSE BUILDING
+U+1F3E1 🏡 \:house_with_garden: HOUSE WITH GARDEN
+U+1F3E2 🏢 \:office: OFFICE BUILDING
+U+1F3E3 🏣 \:post_office: JAPANESE POST OFFICE
+U+1F3E4 🏤 \:european_post_office: EUROPEAN POST OFFICE
+U+1F3E5 🏥 \:hospital: HOSPITAL
+U+1F3E6 🏦 \:bank: BANK
+U+1F3E7 🏧 \:atm: AUTOMATED TELLER MACHINE
+U+1F3E8 🏨 \:hotel: HOTEL
+U+1F3E9 🏩 \:love_hotel: LOVE HOTEL
+U+1F3EA 🏪 \:convenience_store: CONVENIENCE STORE
+U+1F3EB 🏫 \:school: SCHOOL
+U+1F3EC 🏬 \:department_store: DEPARTMENT STORE
+U+1F3ED 🏭 \:factory: FACTORY
+U+1F3EE 🏮 \:izakaya_lantern: IZAKAYA LANTERN
+U+1F3EF 🏯 \:japanese_castle: JAPANESE CASTLE
+U+1F3F0 🏰 \:european_castle: EUROPEAN CASTLE
+U+1F3FB 🏻 \:skin-tone-2: EMOJI MODIFIER FITZPATRICK TYPE-1-2
+U+1F3FC 🏼 \:skin-tone-3: EMOJI MODIFIER FITZPATRICK TYPE-3
+U+1F3FD 🏽 \:skin-tone-4: EMOJI MODIFIER FITZPATRICK TYPE-4
+U+1F3FE 🏾 \:skin-tone-5: EMOJI MODIFIER FITZPATRICK TYPE-5
+U+1F3FF 🏿 \:skin-tone-6: EMOJI MODIFIER FITZPATRICK TYPE-6
+U+1F400 🐀 \:rat: RAT
+U+1F401 🐁 \:mouse2: MOUSE
+U+1F402 🐂 \:ox: OX
+U+1F403 🐃 \:water_buffalo: WATER BUFFALO
+U+1F404 🐄 \:cow2: COW
+U+1F405 🐅 \:tiger2: TIGER
+U+1F406 🐆 \:leopard: LEOPARD
+U+1F407 🐇 \:rabbit2: RABBIT
+U+1F408 🐈 \:cat2: CAT
+U+1F409 🐉 \:dragon: DRAGON
+U+1F40A 🐊 \:crocodile: CROCODILE
+U+1F40B 🐋 \:whale2: WHALE
+U+1F40C 🐌 \:snail: SNAIL
+U+1F40D 🐍 \:snake: SNAKE
+U+1F40E 🐎 \:racehorse: HORSE
+U+1F40F 🐏 \:ram: RAM
+U+1F410 🐐 \:goat: GOAT
+U+1F411 🐑 \:sheep: SHEEP
+U+1F412 🐒 \:monkey: MONKEY
+U+1F413 🐓 \:rooster: ROOSTER
+U+1F414 🐔 \:chicken: CHICKEN
+U+1F415 🐕 \:dog2: DOG
+U+1F416 🐖 \:pig2: PIG
+U+1F417 🐗 \:boar: BOAR
+U+1F418 🐘 \:elephant: ELEPHANT
+U+1F419 🐙 \:octopus: OCTOPUS
+U+1F41A 🐚 \:shell: SPIRAL SHELL
+U+1F41B 🐛 \:bug: BUG
+U+1F41C 🐜 \:ant: ANT
+U+1F41D 🐝 \:bee: HONEYBEE
+U+1F41E 🐞 \:beetle: LADY BEETLE
+U+1F41F 🐟 \:fish: FISH
+U+1F420 🐠 \:tropical_fish: TROPICAL FISH
+U+1F421 🐡 \:blowfish: BLOWFISH
+U+1F422 🐢 \:turtle: TURTLE
+U+1F423 🐣 \:hatching_chick: HATCHING CHICK
+U+1F424 🐤 \:baby_chick: BABY CHICK
+U+1F425 🐥 \:hatched_chick: FRONT-FACING BABY CHICK
+U+1F426 🐦 \:bird: BIRD
+U+1F427 🐧 \:penguin: PENGUIN
+U+1F428 🐨 \:koala: KOALA
+U+1F429 🐩 \:poodle: POODLE
+U+1F42A 🐪 \:dromedary_camel: DROMEDARY CAMEL
+U+1F42B 🐫 \:camel: BACTRIAN CAMEL
+U+1F42C 🐬 \:dolphin: DOLPHIN
+U+1F42D 🐭 \:mouse: MOUSE FACE
+U+1F42E 🐮 \:cow: COW FACE
+U+1F42F 🐯 \:tiger: TIGER FACE
+U+1F430 🐰 \:rabbit: RABBIT FACE
+U+1F431 🐱 \:cat: CAT FACE
+U+1F432 🐲 \:dragon_face: DRAGON FACE
+U+1F433 🐳 \:whale: SPOUTING WHALE
+U+1F434 🐴 \:horse: HORSE FACE
+U+1F435 🐵 \:monkey_face: MONKEY FACE
+U+1F436 🐶 \:dog: DOG FACE
+U+1F437 🐷 \:pig: PIG FACE
+U+1F438 🐸 \:frog: FROG FACE
+U+1F439 🐹 \:hamster: HAMSTER FACE
+U+1F43A 🐺 \:wolf: WOLF FACE
+U+1F43B 🐻 \:bear: BEAR FACE
+U+1F43C 🐼 \:panda_face: PANDA FACE
+U+1F43D 🐽 \:pig_nose: PIG NOSE
+U+1F43E 🐾 \:feet: PAW PRINTS
+U+1F440 👀 \:eyes: EYES
+U+1F442 👂 \:ear: EAR
+U+1F443 👃 \:nose: NOSE
+U+1F444 👄 \:lips: MOUTH
+U+1F445 👅 \:tongue: TONGUE
+U+1F446 👆 \:point_up_2: WHITE UP POINTING BACKHAND INDEX
+U+1F447 👇 \:point_down: WHITE DOWN POINTING BACKHAND INDEX
+U+1F448 👈 \:point_left: WHITE LEFT POINTING BACKHAND INDEX
+U+1F449 👉 \:point_right: WHITE RIGHT POINTING BACKHAND INDEX
+U+1F44A 👊 \:facepunch: FISTED HAND SIGN
+U+1F44B 👋 \:wave: WAVING HAND SIGN
+U+1F44C 👌 \:ok_hand: OK HAND SIGN
+U+1F44D 👍 \:+1: THUMBS UP SIGN
+U+1F44E 👎 \:-1: THUMBS DOWN SIGN
+U+1F44F 👏 \:clap: CLAPPING HANDS SIGN
+U+1F450 👐 \:open_hands: OPEN HANDS SIGN
+U+1F451 👑 \:crown: CROWN
+U+1F452 👒 \:womans_hat: WOMANS HAT
+U+1F453 👓 \:eyeglasses: EYEGLASSES
+U+1F454 👔 \:necktie: NECKTIE
+U+1F455 👕 \:shirt: T-SHIRT
+U+1F456 👖 \:jeans: JEANS
+U+1F457 👗 \:dress: DRESS
+U+1F458 👘 \:kimono: KIMONO
+U+1F459 👙 \:bikini: BIKINI
+U+1F45A 👚 \:womans_clothes: WOMANS CLOTHES
+U+1F45B 👛 \:purse: PURSE
+U+1F45C 👜 \:handbag: HANDBAG
+U+1F45D 👝 \:pouch: POUCH
+U+1F45E 👞 \:mans_shoe: MANS SHOE
+U+1F45F 👟 \:athletic_shoe: ATHLETIC SHOE
+U+1F460 👠 \:high_heel: HIGH-HEELED SHOE
+U+1F461 👡 \:sandal: WOMANS SANDAL
+U+1F462 👢 \:boot: WOMANS BOOTS
+U+1F463 👣 \:footprints: FOOTPRINTS
+U+1F464 👤 \:bust_in_silhouette: BUST IN SILHOUETTE
+U+1F465 👥 \:busts_in_silhouette: BUSTS IN SILHOUETTE
+U+1F466 👦 \:boy: BOY
+U+1F467 👧 \:girl: GIRL
+U+1F468 👨 \:man: MAN
+U+1F469 👩 \:woman: WOMAN
+U+1F46A 👪 \:family: FAMILY
+U+1F46B 👫 \:couple: MAN AND WOMAN HOLDING HANDS
+U+1F46C 👬 \:two_men_holding_hands: TWO MEN HOLDING HANDS
+U+1F46D 👭 \:two_women_holding_hands: TWO WOMEN HOLDING HANDS
+U+1F46E 👮 \:cop: POLICE OFFICER
+U+1F46F 👯 \:dancers: WOMAN WITH BUNNY EARS
+U+1F470 👰 \:bride_with_veil: BRIDE WITH VEIL
+U+1F471 👱 \:person_with_blond_hair: PERSON WITH BLOND HAIR
+U+1F472 👲 \:man_with_gua_pi_mao: MAN WITH GUA PI MAO
+U+1F473 👳 \:man_with_turban: MAN WITH TURBAN
+U+1F474 👴 \:older_man: OLDER MAN
+U+1F475 👵 \:older_woman: OLDER WOMAN
+U+1F476 👶 \:baby: BABY
+U+1F477 👷 \:construction_worker: CONSTRUCTION WORKER
+U+1F478 👸 \:princess: PRINCESS
+U+1F479 👹 \:japanese_ogre: JAPANESE OGRE
+U+1F47A 👺 \:japanese_goblin: JAPANESE GOBLIN
+U+1F47B 👻 \:ghost: GHOST
+U+1F47C 👼 \:angel: BABY ANGEL
+U+1F47D 👽 \:alien: EXTRATERRESTRIAL ALIEN
+U+1F47E 👾 \:space_invader: ALIEN MONSTER
+U+1F47F 👿 \:imp: IMP
+U+1F480 💀 \:skull: SKULL
+U+1F481 💁 \:information_desk_person: INFORMATION DESK PERSON
+U+1F482 💂 \:guardsman: GUARDSMAN
+U+1F483 💃 \:dancer: DANCER
+U+1F484 💄 \:lipstick: LIPSTICK
+U+1F485 💅 \:nail_care: NAIL POLISH
+U+1F486 💆 \:massage: FACE MASSAGE
+U+1F487 💇 \:haircut: HAIRCUT
+U+1F488 💈 \:barber: BARBER POLE
+U+1F489 💉 \:syringe: SYRINGE
+U+1F48A 💊 \:pill: PILL
+U+1F48B 💋 \:kiss: KISS MARK
+U+1F48C 💌 \:love_letter: LOVE LETTER
+U+1F48D 💍 \:ring: RING
+U+1F48E 💎 \:gem: GEM STONE
+U+1F48F 💏 \:couplekiss: KISS
+U+1F490 💐 \:bouquet: BOUQUET
+U+1F491 💑 \:couple_with_heart: COUPLE WITH HEART
+U+1F492 💒 \:wedding: WEDDING
+U+1F493 💓 \:heartbeat: BEATING HEART
+U+1F494 💔 \:broken_heart: BROKEN HEART
+U+1F495 💕 \:two_hearts: TWO HEARTS
+U+1F496 💖 \:sparkling_heart: SPARKLING HEART
+U+1F497 💗 \:heartpulse: GROWING HEART
+U+1F498 💘 \:cupid: HEART WITH ARROW
+U+1F499 💙 \:blue_heart: BLUE HEART
+U+1F49A 💚 \:green_heart: GREEN HEART
+U+1F49B 💛 \:yellow_heart: YELLOW HEART
+U+1F49C 💜 \:purple_heart: PURPLE HEART
+U+1F49D 💝 \:gift_heart: HEART WITH RIBBON
+U+1F49E 💞 \:revolving_hearts: REVOLVING HEARTS
+U+1F49F 💟 \:heart_decoration: HEART DECORATION
+U+1F4A0 💠 \:diamond_shape_with_a_dot_inside: DIAMOND SHAPE WITH A DOT INSIDE
+U+1F4A1 💡 \:bulb: ELECTRIC LIGHT BULB
+U+1F4A2 💢 \:anger: ANGER SYMBOL
+U+1F4A3 💣 \:bomb: BOMB
+U+1F4A4 💤 \:zzz: SLEEPING SYMBOL
+U+1F4A5 💥 \:boom: COLLISION SYMBOL
+U+1F4A6 💦 \:sweat_drops: SPLASHING SWEAT SYMBOL
+U+1F4A7 💧 \:droplet: DROPLET
+U+1F4A8 💨 \:dash: DASH SYMBOL
+U+1F4A9 💩 \:hankey: PILE OF POO
+U+1F4AA 💪 \:muscle: FLEXED BICEPS
+U+1F4AB 💫 \:dizzy: DIZZY SYMBOL
+U+1F4AC 💬 \:speech_balloon: SPEECH BALLOON
+U+1F4AD 💭 \:thought_balloon: THOUGHT BALLOON
+U+1F4AE 💮 \:white_flower: WHITE FLOWER
+U+1F4AF 💯 \:100: HUNDRED POINTS SYMBOL
+U+1F4B0 💰 \:moneybag: MONEY BAG
+U+1F4B1 💱 \:currency_exchange: CURRENCY EXCHANGE
+U+1F4B2 💲 \:heavy_dollar_sign: HEAVY DOLLAR SIGN
+U+1F4B3 💳 \:credit_card: CREDIT CARD
+U+1F4B4 💴 \:yen: BANKNOTE WITH YEN SIGN
+U+1F4B5 💵 \:dollar: BANKNOTE WITH DOLLAR SIGN
+U+1F4B6 💶 \:euro: BANKNOTE WITH EURO SIGN
+U+1F4B7 💷 \:pound: BANKNOTE WITH POUND SIGN
+U+1F4B8 💸 \:money_with_wings: MONEY WITH WINGS
+U+1F4B9 💹 \:chart: CHART WITH UPWARDS TREND AND YEN SIGN
+U+1F4BA 💺 \:seat: SEAT
+U+1F4BB 💻 \:computer: PERSONAL COMPUTER
+U+1F4BC 💼 \:briefcase: BRIEFCASE
+U+1F4BD 💽 \:minidisc: MINIDISC
+U+1F4BE 💾 \:floppy_disk: FLOPPY DISK
+U+1F4BF 💿 \:cd: OPTICAL DISC
+U+1F4C0 📀 \:dvd: DVD
+U+1F4C1 📁 \:file_folder: FILE FOLDER
+U+1F4C2 📂 \:open_file_folder: OPEN FILE FOLDER
+U+1F4C3 📃 \:page_with_curl: PAGE WITH CURL
+U+1F4C4 📄 \:page_facing_up: PAGE FACING UP
+U+1F4C5 📅 \:date: CALENDAR
+U+1F4C6 📆 \:calendar: TEAR-OFF CALENDAR
+U+1F4C7 📇 \:card_index: CARD INDEX
+U+1F4C8 📈 \:chart_with_upwards_trend: CHART WITH UPWARDS TREND
+U+1F4C9 📉 \:chart_with_downwards_trend: CHART WITH DOWNWARDS TREND
+U+1F4CA 📊 \:bar_chart: BAR CHART
+U+1F4CB 📋 \:clipboard: CLIPBOARD
+U+1F4CC 📌 \:pushpin: PUSHPIN
+U+1F4CD 📍 \:round_pushpin: ROUND PUSHPIN
+U+1F4CE 📎 \:paperclip: PAPERCLIP
+U+1F4CF 📏 \:straight_ruler: STRAIGHT RULER
+U+1F4D0 📐 \:triangular_ruler: TRIANGULAR RULER
+U+1F4D1 📑 \:bookmark_tabs: BOOKMARK TABS
+U+1F4D2 📒 \:ledger: LEDGER
+U+1F4D3 📓 \:notebook: NOTEBOOK
+U+1F4D4 📔 \:notebook_with_decorative_cover: NOTEBOOK WITH DECORATIVE COVER
+U+1F4D5 📕 \:closed_book: CLOSED BOOK
+U+1F4D6 📖 \:book: OPEN BOOK
+U+1F4D7 📗 \:green_book: GREEN BOOK
+U+1F4D8 📘 \:blue_book: BLUE BOOK
+U+1F4D9 📙 \:orange_book: ORANGE BOOK
+U+1F4DA 📚 \:books: BOOKS
+U+1F4DB 📛 \:name_badge: NAME BADGE
+U+1F4DC 📜 \:scroll: SCROLL
+U+1F4DD 📝 \:memo: MEMO
+U+1F4DE 📞 \:telephone_receiver: TELEPHONE RECEIVER
+U+1F4DF 📟 \:pager: PAGER
+U+1F4E0 📠 \:fax: FAX MACHINE
+U+1F4E1 📡 \:satellite: SATELLITE ANTENNA
+U+1F4E2 📢 \:loudspeaker: PUBLIC ADDRESS LOUDSPEAKER
+U+1F4E3 📣 \:mega: CHEERING MEGAPHONE
+U+1F4E4 📤 \:outbox_tray: OUTBOX TRAY
+U+1F4E5 📥 \:inbox_tray: INBOX TRAY
+U+1F4E6 📦 \:package: PACKAGE
+U+1F4E7 📧 \:e-mail: E-MAIL SYMBOL
+U+1F4E8 📨 \:incoming_envelope: INCOMING ENVELOPE
+U+1F4E9 📩 \:envelope_with_arrow: ENVELOPE WITH DOWNWARDS ARROW ABOVE
+U+1F4EA 📪 \:mailbox_closed: CLOSED MAILBOX WITH LOWERED FLAG
+U+1F4EB 📫 \:mailbox: CLOSED MAILBOX WITH RAISED FLAG
+U+1F4EC 📬 \:mailbox_with_mail: OPEN MAILBOX WITH RAISED FLAG
+U+1F4ED 📭 \:mailbox_with_no_mail: OPEN MAILBOX WITH LOWERED FLAG
+U+1F4EE 📮 \:postbox: POSTBOX
+U+1F4EF 📯 \:postal_horn: POSTAL HORN
+U+1F4F0 📰 \:newspaper: NEWSPAPER
+U+1F4F1 📱 \:iphone: MOBILE PHONE
+U+1F4F2 📲 \:calling: MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
+U+1F4F3 📳 \:vibration_mode: VIBRATION MODE
+U+1F4F4 📴 \:mobile_phone_off: MOBILE PHONE OFF
+U+1F4F5 📵 \:no_mobile_phones: NO MOBILE PHONES
+U+1F4F6 📶 \:signal_strength: ANTENNA WITH BARS
+U+1F4F7 📷 \:camera: CAMERA
+U+1F4F9 📹 \:video_camera: VIDEO CAMERA
+U+1F4FA 📺 \:tv: TELEVISION
+U+1F4FB 📻 \:radio: RADIO
+U+1F4FC 📼 \:vhs: VIDEOCASSETTE
+U+1F500 🔀 \:twisted_rightwards_arrows: TWISTED RIGHTWARDS ARROWS
+U+1F501 🔁 \:repeat: CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
+U+1F502 🔂 \:repeat_one: CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
+U+1F503 🔃 \:arrows_clockwise: CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
+U+1F504 🔄 \:arrows_counterclockwise: ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
+U+1F505 🔅 \:low_brightness: LOW BRIGHTNESS SYMBOL
+U+1F506 🔆 \:high_brightness: HIGH BRIGHTNESS SYMBOL
+U+1F507 🔇 \:mute: SPEAKER WITH CANCELLATION STROKE
+U+1F508 🔈 \:speaker: SPEAKER
+U+1F509 🔉 \:sound: SPEAKER WITH ONE SOUND WAVE
+U+1F50A 🔊 \:loud_sound: SPEAKER WITH THREE SOUND WAVES
+U+1F50B 🔋 \:battery: BATTERY
+U+1F50C 🔌 \:electric_plug: ELECTRIC PLUG
+U+1F50D 🔍 \:mag: LEFT-POINTING MAGNIFYING GLASS
+U+1F50E 🔎 \:mag_right: RIGHT-POINTING MAGNIFYING GLASS
+U+1F50F 🔏 \:lock_with_ink_pen: LOCK WITH INK PEN
+U+1F510 🔐 \:closed_lock_with_key: CLOSED LOCK WITH KEY
+U+1F511 🔑 \:key: KEY
+U+1F512 🔒 \:lock: LOCK
+U+1F513 🔓 \:unlock: OPEN LOCK
+U+1F514 🔔 \:bell: BELL
+U+1F515 🔕 \:no_bell: BELL WITH CANCELLATION STROKE
+U+1F516 🔖 \:bookmark: BOOKMARK
+U+1F517 🔗 \:link: LINK SYMBOL
+U+1F518 🔘 \:radio_button: RADIO BUTTON
+U+1F519 🔙 \:back: BACK WITH LEFTWARDS ARROW ABOVE
+U+1F51A 🔚 \:end: END WITH LEFTWARDS ARROW ABOVE
+U+1F51B 🔛 \:on: ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
+U+1F51C 🔜 \:soon: SOON WITH RIGHTWARDS ARROW ABOVE
+U+1F51D 🔝 \:top: TOP WITH UPWARDS ARROW ABOVE
+U+1F51E 🔞 \:underage: NO ONE UNDER EIGHTEEN SYMBOL
+U+1F51F 🔟 \:keycap_ten: KEYCAP TEN
+U+1F520 🔠 \:capital_abcd: INPUT SYMBOL FOR LATIN CAPITAL LETTERS
+U+1F521 🔡 \:abcd: INPUT SYMBOL FOR LATIN SMALL LETTERS
+U+1F522 🔢 \:1234: INPUT SYMBOL FOR NUMBERS
+U+1F523 🔣 \:symbols: INPUT SYMBOL FOR SYMBOLS
+U+1F524 🔤 \:abc: INPUT SYMBOL FOR LATIN LETTERS
+U+1F525 🔥 \:fire: FIRE
+U+1F526 🔦 \:flashlight: ELECTRIC TORCH
+U+1F527 🔧 \:wrench: WRENCH
+U+1F528 🔨 \:hammer: HAMMER
+U+1F529 🔩 \:nut_and_bolt: NUT AND BOLT
+U+1F52A 🔪 \:hocho: HOCHO
+U+1F52B 🔫 \:gun: PISTOL
+U+1F52C 🔬 \:microscope: MICROSCOPE
+U+1F52D 🔭 \:telescope: TELESCOPE
+U+1F52E 🔮 \:crystal_ball: CRYSTAL BALL
+U+1F52F 🔯 \:six_pointed_star: SIX POINTED STAR WITH MIDDLE DOT
+U+1F530 🔰 \:beginner: JAPANESE SYMBOL FOR BEGINNER
+U+1F531 🔱 \:trident: TRIDENT EMBLEM
+U+1F532 🔲 \:black_square_button: BLACK SQUARE BUTTON
+U+1F533 🔳 \:white_square_button: WHITE SQUARE BUTTON
+U+1F534 🔴 \:red_circle: LARGE RED CIRCLE
+U+1F535 🔵 \:large_blue_circle: LARGE BLUE CIRCLE
+U+1F536 🔶 \:large_orange_diamond: LARGE ORANGE DIAMOND
+U+1F537 🔷 \:large_blue_diamond: LARGE BLUE DIAMOND
+U+1F538 🔸 \:small_orange_diamond: SMALL ORANGE DIAMOND
+U+1F539 🔹 \:small_blue_diamond: SMALL BLUE DIAMOND
+U+1F53A 🔺 \:small_red_triangle: UP-POINTING RED TRIANGLE
+U+1F53B 🔻 \:small_red_triangle_down: DOWN-POINTING RED TRIANGLE
+U+1F53C 🔼 \:arrow_up_small: UP-POINTING SMALL RED TRIANGLE
+U+1F53D 🔽 \:arrow_down_small: DOWN-POINTING SMALL RED TRIANGLE
+U+1F550 🕐 \:clock1: CLOCK FACE ONE OCLOCK
+U+1F551 🕑 \:clock2: CLOCK FACE TWO OCLOCK
+U+1F552 🕒 \:clock3: CLOCK FACE THREE OCLOCK
+U+1F553 🕓 \:clock4: CLOCK FACE FOUR OCLOCK
+U+1F554 🕔 \:clock5: CLOCK FACE FIVE OCLOCK
+U+1F555 🕕 \:clock6: CLOCK FACE SIX OCLOCK
+U+1F556 🕖 \:clock7: CLOCK FACE SEVEN OCLOCK
+U+1F557 🕗 \:clock8: CLOCK FACE EIGHT OCLOCK
+U+1F558 🕘 \:clock9: CLOCK FACE NINE OCLOCK
+U+1F559 🕙 \:clock10: CLOCK FACE TEN OCLOCK
+U+1F55A 🕚 \:clock11: CLOCK FACE ELEVEN OCLOCK
+U+1F55B 🕛 \:clock12: CLOCK FACE TWELVE OCLOCK
+U+1F55C 🕜 \:clock130: CLOCK FACE ONE-THIRTY
+U+1F55D 🕝 \:clock230: CLOCK FACE TWO-THIRTY
+U+1F55E 🕞 \:clock330: CLOCK FACE THREE-THIRTY
+U+1F55F 🕟 \:clock430: CLOCK FACE FOUR-THIRTY
+U+1F560 🕠 \:clock530: CLOCK FACE FIVE-THIRTY
+U+1F561 🕡 \:clock630: CLOCK FACE SIX-THIRTY
+U+1F562 🕢 \:clock730: CLOCK FACE SEVEN-THIRTY
+U+1F563 🕣 \:clock830: CLOCK FACE EIGHT-THIRTY
+U+1F564 🕤 \:clock930: CLOCK FACE NINE-THIRTY
+U+1F565 🕥 \:clock1030: CLOCK FACE TEN-THIRTY
+U+1F566 🕦 \:clock1130: CLOCK FACE ELEVEN-THIRTY
+U+1F567 🕧 \:clock1230: CLOCK FACE TWELVE-THIRTY
+U+1F5FB 🗻 \:mount_fuji: MOUNT FUJI
+U+1F5FC 🗼 \:tokyo_tower: TOKYO TOWER
+U+1F5FD 🗽 \:statue_of_liberty: STATUE OF LIBERTY
+U+1F5FE 🗾 \:japan: SILHOUETTE OF JAPAN
+U+1F5FF 🗿 \:moyai: MOYAI
+U+1F600 😀 \:grinning: GRINNING FACE
+U+1F601 😁 \:grin: GRINNING FACE WITH SMILING EYES
+U+1F602 😂 \:joy: FACE WITH TEARS OF JOY
+U+1F603 😃 \:smiley: SMILING FACE WITH OPEN MOUTH
+U+1F604 😄 \:smile: SMILING FACE WITH OPEN MOUTH AND SMILING EYES
+U+1F605 😅 \:sweat_smile: SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
+U+1F606 😆 \:laughing: SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
+U+1F607 😇 \:innocent: SMILING FACE WITH HALO
+U+1F608 😈 \:smiling_imp: SMILING FACE WITH HORNS
+U+1F609 😉 \:wink: WINKING FACE
+U+1F60A 😊 \:blush: SMILING FACE WITH SMILING EYES
+U+1F60B 😋 \:yum: FACE SAVOURING DELICIOUS FOOD
+U+1F60C 😌 \:relieved: RELIEVED FACE
+U+1F60D 😍 \:heart_eyes: SMILING FACE WITH HEART-SHAPED EYES
+U+1F60E 😎 \:sunglasses: SMILING FACE WITH SUNGLASSES
+U+1F60F 😏 \:smirk: SMIRKING FACE
+U+1F610 😐 \:neutral_face: NEUTRAL FACE
+U+1F611 😑 \:expressionless: EXPRESSIONLESS FACE
+U+1F612 😒 \:unamused: UNAMUSED FACE
+U+1F613 😓 \:sweat: FACE WITH COLD SWEAT
+U+1F614 😔 \:pensive: PENSIVE FACE
+U+1F615 😕 \:confused: CONFUSED FACE
+U+1F616 😖 \:confounded: CONFOUNDED FACE
+U+1F617 😗 \:kissing: KISSING FACE
+U+1F618 😘 \:kissing_heart: FACE THROWING A KISS
+U+1F619 😙 \:kissing_smiling_eyes: KISSING FACE WITH SMILING EYES
+U+1F61A 😚 \:kissing_closed_eyes: KISSING FACE WITH CLOSED EYES
+U+1F61B 😛 \:stuck_out_tongue: FACE WITH STUCK-OUT TONGUE
+U+1F61C 😜 \:stuck_out_tongue_winking_eye: FACE WITH STUCK-OUT TONGUE AND WINKING EYE
+U+1F61D 😝 \:stuck_out_tongue_closed_eyes: FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
+U+1F61E 😞 \:disappointed: DISAPPOINTED FACE
+U+1F61F 😟 \:worried: WORRIED FACE
+U+1F620 😠 \:angry: ANGRY FACE
+U+1F621 😡 \:rage: POUTING FACE
+U+1F622 😢 \:cry: CRYING FACE
+U+1F623 😣 \:persevere: PERSEVERING FACE
+U+1F624 😤 \:triumph: FACE WITH LOOK OF TRIUMPH
+U+1F625 😥 \:disappointed_relieved: DISAPPOINTED BUT RELIEVED FACE
+U+1F626 😦 \:frowning: FROWNING FACE WITH OPEN MOUTH
+U+1F627 😧 \:anguished: ANGUISHED FACE
+U+1F628 😨 \:fearful: FEARFUL FACE
+U+1F629 😩 \:weary: WEARY FACE
+U+1F62A 😪 \:sleepy: SLEEPY FACE
+U+1F62B 😫 \:tired_face: TIRED FACE
+U+1F62C 😬 \:grimacing: GRIMACING FACE
+U+1F62D 😭 \:sob: LOUDLY CRYING FACE
+U+1F62E 😮 \:open_mouth: FACE WITH OPEN MOUTH
+U+1F62F 😯 \:hushed: HUSHED FACE
+U+1F630 😰 \:cold_sweat: FACE WITH OPEN MOUTH AND COLD SWEAT
+U+1F631 😱 \:scream: FACE SCREAMING IN FEAR
+U+1F632 😲 \:astonished: ASTONISHED FACE
+U+1F633 😳 \:flushed: FLUSHED FACE
+U+1F634 😴 \:sleeping: SLEEPING FACE
+U+1F635 😵 \:dizzy_face: DIZZY FACE
+U+1F636 😶 \:no_mouth: FACE WITHOUT MOUTH
+U+1F637 😷 \:mask: FACE WITH MEDICAL MASK
+U+1F638 😸 \:smile_cat: GRINNING CAT FACE WITH SMILING EYES
+U+1F639 😹 \:joy_cat: CAT FACE WITH TEARS OF JOY
+U+1F63A 😺 \:smiley_cat: SMILING CAT FACE WITH OPEN MOUTH
+U+1F63B 😻 \:heart_eyes_cat: SMILING CAT FACE WITH HEART-SHAPED EYES
+U+1F63C 😼 \:smirk_cat: CAT FACE WITH WRY SMILE
+U+1F63D 😽 \:kissing_cat: KISSING CAT FACE WITH CLOSED EYES
+U+1F63E 😾 \:pouting_cat: POUTING CAT FACE
+U+1F63F 😿 \:crying_cat_face: CRYING CAT FACE
+U+1F640 🙀 \:scream_cat: WEARY CAT FACE
+U+1F645 🙅 \:no_good: FACE WITH NO GOOD GESTURE
+U+1F646 🙆 \:ok_woman: FACE WITH OK GESTURE
+U+1F647 🙇 \:bow: PERSON BOWING DEEPLY
+U+1F648 🙈 \:see_no_evil: SEE-NO-EVIL MONKEY
+U+1F649 🙉 \:hear_no_evil: HEAR-NO-EVIL MONKEY
+U+1F64A 🙊 \:speak_no_evil: SPEAK-NO-EVIL MONKEY
+U+1F64B 🙋 \:raising_hand: HAPPY PERSON RAISING ONE HAND
+U+1F64C 🙌 \:raised_hands: PERSON RAISING BOTH HANDS IN CELEBRATION
+U+1F64D 🙍 \:person_frowning: PERSON FROWNING
+U+1F64E 🙎 \:person_with_pouting_face: PERSON WITH POUTING FACE
+U+1F64F 🙏 \:pray: PERSON WITH FOLDED HANDS
+U+1F680 🚀 \:rocket: ROCKET
+U+1F681 🚁 \:helicopter: HELICOPTER
+U+1F682 🚂 \:steam_locomotive: STEAM LOCOMOTIVE
+U+1F683 🚃 \:railway_car: RAILWAY CAR
+U+1F684 🚄 \:bullettrain_side: HIGH-SPEED TRAIN
+U+1F685 🚅 \:bullettrain_front: HIGH-SPEED TRAIN WITH BULLET NOSE
+U+1F686 🚆 \:train2: TRAIN
+U+1F687 🚇 \:metro: METRO
+U+1F688 🚈 \:light_rail: LIGHT RAIL
+U+1F689 🚉 \:station: STATION
+U+1F68A 🚊 \:tram: TRAM
+U+1F68B 🚋 \:train: TRAM CAR
+U+1F68C 🚌 \:bus: BUS
+U+1F68D 🚍 \:oncoming_bus: ONCOMING BUS
+U+1F68E 🚎 \:trolleybus: TROLLEYBUS
+U+1F68F 🚏 \:busstop: BUS STOP
+U+1F690 🚐 \:minibus: MINIBUS
+U+1F691 🚑 \:ambulance: AMBULANCE
+U+1F692 🚒 \:fire_engine: FIRE ENGINE
+U+1F693 🚓 \:police_car: POLICE CAR
+U+1F694 🚔 \:oncoming_police_car: ONCOMING POLICE CAR
+U+1F695 🚕 \:taxi: TAXI
+U+1F696 🚖 \:oncoming_taxi: ONCOMING TAXI
+U+1F697 🚗 \:car: AUTOMOBILE
+U+1F698 🚘 \:oncoming_automobile: ONCOMING AUTOMOBILE
+U+1F699 🚙 \:blue_car: RECREATIONAL VEHICLE
+U+1F69A 🚚 \:truck: DELIVERY TRUCK
+U+1F69B 🚛 \:articulated_lorry: ARTICULATED LORRY
+U+1F69C 🚜 \:tractor: TRACTOR
+U+1F69D 🚝 \:monorail: MONORAIL
+U+1F69E 🚞 \:mountain_railway: MOUNTAIN RAILWAY
+U+1F69F 🚟 \:suspension_railway: SUSPENSION RAILWAY
+U+1F6A0 🚠 \:mountain_cableway: MOUNTAIN CABLEWAY
+U+1F6A1 🚡 \:aerial_tramway: AERIAL TRAMWAY
+U+1F6A2 🚢 \:ship: SHIP
+U+1F6A3 🚣 \:rowboat: ROWBOAT
+U+1F6A4 🚤 \:speedboat: SPEEDBOAT
+U+1F6A5 🚥 \:traffic_light: HORIZONTAL TRAFFIC LIGHT
+U+1F6A6 🚦 \:vertical_traffic_light: VERTICAL TRAFFIC LIGHT
+U+1F6A7 🚧 \:construction: CONSTRUCTION SIGN
+U+1F6A8 🚨 \:rotating_light: POLICE CARS REVOLVING LIGHT
+U+1F6A9 🚩 \:triangular_flag_on_post: TRIANGULAR FLAG ON POST
+U+1F6AA 🚪 \:door: DOOR
+U+1F6AB 🚫 \:no_entry_sign: NO ENTRY SIGN
+U+1F6AC 🚬 \:smoking: SMOKING SYMBOL
+U+1F6AD 🚭 \:no_smoking: NO SMOKING SYMBOL
+U+1F6AE 🚮 \:put_litter_in_its_place: PUT LITTER IN ITS PLACE SYMBOL
+U+1F6AF 🚯 \:do_not_litter: DO NOT LITTER SYMBOL
+U+1F6B0 🚰 \:potable_water: POTABLE WATER SYMBOL
+U+1F6B1 🚱 \:non-potable_water: NON-POTABLE WATER SYMBOL
+U+1F6B2 🚲 \:bike: BICYCLE
+U+1F6B3 🚳 \:no_bicycles: NO BICYCLES
+U+1F6B4 🚴 \:bicyclist: BICYCLIST
+U+1F6B5 🚵 \:mountain_bicyclist: MOUNTAIN BICYCLIST
+U+1F6B6 🚶 \:walking: PEDESTRIAN
+U+1F6B7 🚷 \:no_pedestrians: NO PEDESTRIANS
+U+1F6B8 🚸 \:children_crossing: CHILDREN CROSSING
+U+1F6B9 🚹 \:mens: MENS SYMBOL
+U+1F6BA 🚺 \:womens: WOMENS SYMBOL
+U+1F6BB 🚻 \:restroom: RESTROOM
+U+1F6BC 🚼 \:baby_symbol: BABY SYMBOL
+U+1F6BD 🚽 \:toilet: TOILET
+U+1F6BE 🚾 \:wc: WATER CLOSET
+U+1F6BF 🚿 \:shower: SHOWER
+U+1F6C0 🛀 \:bath: BATH
+U+1F6C1 🛁 \:bathtub: BATHTUB
+U+1F6C2 🛂 \:passport_control: PASSPORT CONTROL
+U+1F6C3 🛃 \:customs: CUSTOMS
+U+1F6C4 🛄 \:baggage_claim: BAGGAGE CLAIM
+U+1F6C5 🛅 \:left_luggage: LEFT LUGGAGE
+----------------- ------------ -------------------------------------------- --------------------------------------------------------------------------------------------------------
+
+ vim:tw=180:et:ft=help:norl:
+
+endif
diff --git a/doc/julia-vim-L2U.txt b/doc/julia-vim-L2U.txt
new file mode 100644
index 00000000..8f3a852c
--- /dev/null
+++ b/doc/julia-vim-L2U.txt
@@ -0,0 +1,405 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
+
+*julia-vim-L2U.txt* Support for LaTeX-to-Unicode substitutions
+
+Author: Carlo Baldassi <carlobaldassi@gmail.com>
+License: MIT license {{{
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+}}}
+CONTENTS *julia-vim-L2U*
+
+LaTeX-to-Unicode substitutions |julia-vim-L2U-introdction|
+ Via Tab key |julia-vim-L2U-tab|
+ As you type |julia-vim-L2U-as-you-type|
+ Via Keymap |julia-vim-L2U-keymap|
+ On different file types |julia-vim-L2U-file-types|
+ Enabling and disabling |julia-vim-L2U-enable-disable|
+Variables |julia-vim-L2U-variables|
+Functions |julia-vim-L2U-functions|
+
+==============================================================================
+LATEX TO UNICODE *julia-vim-L2U-introduction*
+
+In the Julia REPL, entering a LaTeX-like sequence such as `\alpha` and pressing
+the <Tab> key substitutes it with a Unicode character such as `α`. The Julia
+REPL also provides partial completions, and suggestions for possible
+completions upon repeated pressing of the <Tab> key. Emojis are also
+available, with their names written between colons, e.g. `\:interrobang:`
+produces `⁉`.
+
+See |julia-vim-L2U-reference| for the complete table of substitutions.
+
+This Vim plug-in also provides the functionality needed to convert LaTeX
+input sequences into Unicode characters. There are 3 different methods
+available:
+
+ 1. The default one is the most similar to the Julia one: substitutions are
+ triggered by pressing the <Tab> key; if a partial match is found a list
+ of suggested completions is presented in a menu together with their
+ Unicode counterpart. The exact behaviour of this feature can be
+ customized, see |julia-vim-L2U-tab|.
+
+ 2. The second one substitutes symbols on the fly as you type, but only in
+ |Insert| mode. See |julia-vim-L2U-as-you-type|.
+
+ 3. The third is based on |keymap|. It also substitutes as-you-type, but it
+ doesn't show you the full LaTeX sequence as you're typing it, and there
+ is a time-out. Its main advantage over the previous one is that can be
+ used in more circumstances, e.g. in |Command-line| mode or when searching
+ for a character with |f| or |t|, as explained in |language-mapping|. See
+ |julia-vim-L2U-keymap|.
+
+All of these methods are independent and can be used together without issues.
+
+The default configuration is to use the first method, and it's only active
+when editing Julia files. It only works in |Insert| and |Command-line| modes.
+
+It is possible to enable it with other file types, see
+|julia-vim-L2U-file-types|, and it can be even turned on/off on the fly
+regardless of the file type, see |julia-vim-L2U-enable-disable|.
+
+In |Command-line| mode, e.g. when searching with the |/| or |?| commands, the
+default behavior is very similar to the default |Insert| mode behavior, but
+slightly more limited, see |julia-vim-L2U-cmdmode|.
+
+These features only work as described with Vim version 7.4 or higher. Tab
+completion can still be made available on lower Vim versions, see
+|julia-vim-L2U-workaround|. The keymap mode might work but it hasn't been
+tested.
+
+See |julia-vim| for the general reference about the other features of the
+julia-vim plug-in.
+
+------------------------------------------------------------------------------
+LATEX TO UNICODE VIA TAB KEY *julia-vim-L2U-tab*
+
+Substitution of LaTeX sequences when pressing the <Tab> key (in |Insert| mode or
+in |Command-line| modes) is active by default. Use |g:latex_to_unicode_tab| to
+control it.
+
+When this feature is active, the julia-vim plug-in creates a mapping for the
+<Tab> key (in |Insert| mode) which takes precedence on any previously defined
+mapping assigned to it, such that when the <Tab> key is pressed the plug-in
+looks for potential LaTeX symbol matches before the cursor, and if it fails to
+find anything of interest it will fall-back to the previous mapping for <Tab>
+(with default Vim settings, this means it will insert a literal <Tab>; but if
+you have defined some other behavior for that key, e.g. by installing another
+plug-in such as supertab (https://github.com/ervandew/supertab) than that will
+be used).
+
+For example, entering this text in a file:
+>
+ 1 + \alpha
+<
+and then pressing <Tab>, results in:
+>
+ 1 + α
+<
+
+This feature is associated with 'omnifunc' completion, and therefore can
+always be accessed via CTRL-X CTRL-O, even when |g:latex_to_unicode_tab| is 0.
+
+A literal <Tab> key can always be entered by using CTRL-V before <Tab> (see
+|i_CTRL-V|).
+
+Partial sequence recognition triggers auto-completion (performed as if the
+`longest` setting was used in 'completeopt') and shows a menu of suggestions
+together with their corresponding Unicode symbol (provided the `menu` setting
+is included in 'completeopt', and more then one match is found). So for
+example, entering `\al` and pressing <Tab> will result in the following list:
+>
+ +-------------+
+ | \aleph ℵ |
+ | \allequal ≌ |
+ | \alpha α |
+ +-------------+
+>
+Then, pressing `p` will reduce the list to `\alpha`, pressing <Tab> will
+complete it and pressing <Tab> again will perform the substitution.
+
+The completion menu can be disbled, and this will happen automatically if a
+plug-in which is known to be incompatible with this feature is detected: see
+|g:latex_to_unicode_suggestions|.
+
+Some LaTeX sequences can be valid both as they are and as partial matches for
+other sequences, e.g. `\ne` is associated with `≠`, but it is also a partial
+match for `\nequiv` (`≢`). By default, if <Tab> finds an exact match performs
+the substitution, but this can be controlled by the |g:latex_to_unicode_eager|
+setting.
+
+Command-line mode *julia-vim-L2U-cmdmode*
+
+In |Command-line| mode, the behavior is largely the same except that both
+<Tab> and <S-Tab> are mapped by default, and the functionality is slightly
+more limited. No suggestions are shown for partial completions. Pre-existing
+user-defined mappings of <Tab> are overridden. In order to avoid that, the
+completion can be mapped onto a defferent key combination, see
+|g:latex_to_unicode_cmd_mapping|. When using <Tab>, if no matches are found
+the behavior falls back to the standard Vim command-line completion.
+
+Vim versions lower than 7.4 *julia-vim-L2U-workaround*
+
+The <Tab> key remapping is not performed by default with Vim versions lower
+than 7.4. However, the functionality is still available via onmicompletion,
+which is accessible by the CTRL-X CTRL-O key combination. You can map some
+other key combination to this by adding something like
+>
+ inoremap <C-Tab> <C-X><C-O>
+<
+in your |.vimrc| file. If you'd map <Tab> directly, then you'd need to use
+CTRL-V <Tab> to insert a literal <Tab>.
+
+The settings |g:latex_to_unicode_eager| and |g:latex_to_unicode_suggestions|
+are still meaningful in this case.
+
+------------------------------------------------------------------------------
+LATEX TO UNICODE AS YOU TYPE *julia-vim-L2U-as-you-type*
+
+This feature is disabled by default, see |g:latex_to_unicode_auto|, and it is
+only available with Vim version 7.4 or higher. It consists in substituting
+valid LaTeX sequences with Unicode symbols automatically as the typing
+progresses, as soon as the sequences is unambiguously complete. For example,
+when typing:
+>
+ \chi\^2 = 1
+<
+The result is
+>
+ χ² = 1
+<
+The `\chi` is substituted right when the second backslash is entered, and the
+`\^2` is substituted when the following space is entered, before the equal
+sign.
+
+This feature does not currently work with emojis.
+
+This feature does not interfere with the <Tab> based substitution.
+
+------------------------------------------------------------------------------
+LATEX TO UNICODE VIA KEYMAP *julia-vim-L2U-keymap*
+
+This method is somewhat similar to the as-you-type one described above, but it
+uses |keymap| to generate the mappings. This has the advantage that it works
+in more circumstances, e.g. in |Command-line| mode or when searching within a
+line with |f| or |t| (since it uses |language-mapping| underneath). It can
+also be easily turned on or off like any other keymap (see |i_CTRL-^| and
+|c_CTRL-^|). Like the as-you-type fature, it doesn't work with emojis.
+The disadvantage is that you don't see the whole sequence as you're typing
+it, and you can't fix mistakes with backspace, for example.
+Another difference is that there is a |timeout| like for any other mapping.
+
+In order to use this method, set |g:latex_to_unicode_keymap| to `1`.
+You can use it in parallel with the other methods, they don't interfere. For
+example, typing a partial sequence and pressing <Tab> still triggers
+completions and suggestions if |g:latex_to_unicode_tab| is active.
+
+If you use this feature, it's also useful to set |lCursor|.
+
+------------------------------------------------------------------------------
+LATEX TO UNICODE ON DIFFERENT FILE TYPES *julia-vim-L2U-file-types*
+
+By default, the LaTeX-to-Unicode substitutions are only active when editing
+Julia files. However, you can use the variable |g:latex_to_unicode_file_types|
+to specify for which file types this feature is active by default. The
+variable must be set to a string containing a |pattern| (a regular expression)
+which matches the desired file types, or to a list of such patterns. For
+example, to activate the feature on all file types by default, you could put
+this in your |.vimrc| file:
+>
+ let g:latex_to_unicode_file_types = ".*"
+<
+To make it active only on, say, Julia and Lisp files, you could use:
+>
+ let g:latex_to_unicode_file_types = ["julia", "lisp"]
+<
+
+Another option, |g:latex_to_unicode_file_types_blacklist|, can be used to
+exclude certain file types. For example, if you'd wish to enable the feature
+in all cases except for Python and untyped files, you would use:
+>
+ let g:latex_to_unicode_file_types = ".*"
+ let g:latex_to_unicode_file_types_blacklist = ["python", ""]
+<
+
+NOTE: enabling the functionality will override the |'omnifunc'| setting, which
+can be undesirable, and interfere with plug-ins for different file types. In
+any case, the previous |'omnifunc'| setting is restored when the functionality
+is disabled, see |julia-vim-L2U-enable-disable|.
+
+------------------------------------------------------------------------------
+ENABLING AND DISABLING LATEX TO UNICODE *julia-vim-L2U-enable-disable*
+
+The LaTeX-to-Unicode functionality can be enabled or disabled at any time,
+regardless of the |'filetype'| of the file you're editing, using the functions
+|LaTeXtoUnicode#Enable()|, |LaTeXtoUnicode#Disable()|, |LaTeXtoUnicode#Toggle()|.
+For example, you could use a mapping like:
+>
+ noremap <expr> <F7> LaTeXtoUnicode#Toggle()
+ noremap! <expr> <F7> LaTeXtoUnicode#Toggle()
+<
+and then use the <F7> key to quickly switch the functionality on and off as
+needed (see |noremap| and |noremap!|).
+
+NOTE: these functions are different from the variables |g:latex_to_unicode_tab|,
+|g:latex_to_unicode_auto| and |g:latex_to_unicode_keymap|: the functions
+enable/disable the functionality as a whole, while the variables control
+individual features (tab, auto and keymap substitution).
+
+==============================================================================
+VARIABLES *julia-vim-L2U-variables*
+
+ *g:latex_to_unicode_tab*
+g:latex_to_unicode_tab
+
+ Determines whether to map LaTeX-to-Unicode substitution to the
+ <Tab> key while in |Insert| and |Command-line| modes, see
+ |julia-vim-L2U-tab|. If unspecified, it is on. You can disable
+ the feature by default by inserting the line
+>
+ let g:latex_to_unicode_tab = 0
+<
+ in your |.vimrc| file. You can change this setting at any moment
+ while editing, but you need to invoke |LaTeXtoUnicode#Init()|
+ for the change to take effect.
+
+ *g:latex_to_unicode_suggestions*
+g:latex_to_unicode_suggestions
+
+ Determines whether the <Tab> key mapping produces suggestions
+ for partial matches. By default, this is set to 1 (active),
+ unless a plug-in which is known to be incompatible with it is
+ detected. Currently, known incompatible plug-ins are
+ YouCompleteMe (https://github.com/Valloric/YouCompleteMe),
+ neocomplcache (https://github.com/Shougo/neocomplcache.vim),
+ neocomplete (https://github.com/Shougo/neocomplete.vim) and
+ deoplete (https://github.com/Shougo/deoplete.nvim),
+
+ This variable can be set at any time, changes will immediately
+ take effect.
+
+ *g:latex_to_unicode_eager*
+g:latex_to_unicode_eager
+
+ Determines whether the <Tab> key mapping performs the
+ substitution immediately upon finding an exact match. By
+ default this setting is set to 1 (active), so that e.g. typing
+ `\ne` and pressing the <Tab> key triggers the substitution. If
+ this variable is set to 0, an exact match which is also a
+ possible partial match to some other sequence triggers the
+ suggestions menu first, but another <Tab> forces the
+ substitution, so that e.g. typing `\ne` and then <Tab>
+ produces a list with `\ne`, `\neg`, `\nequiv` etc., and
+ pressing <Tab> again performs the substitution.
+
+ This variable can be set at any time, changes will immediately
+ take effect. When |g:latex_to_unicode_suggestions| is `0`,
+ this setting has no effect (it's like if it was always on).
+
+ *g:latex_to_unicode_auto*
+g:latex_to_unicode_auto
+
+ Determines whether to activate LaTeX-to-Unicode substitution
+ on the fly as you type (in |Insert| mode), see
+ |julia-vim-L2U-as-you-type|. If unspecified, it is `0` (off).
+ You can enable the feature by default by inserting the line
+>
+ let g:latex_to_unicode_auto = 1
+<
+ in your |.vimrc| file. You can change this setting at any
+ moment while editing, but you need to invoke
+ |LaTeXtoUnicode#Init()| for the change to take effect.
+
+
+ *g:latex_to_unicode_keymap*
+g:latex_to_unicode_keymap
+
+ Determines whether to activate the |keymap|-based
+ LaTeX-to-Unicode substitutions, see |julia-vim-L2U-keymap|.
+ If unspecified, it is `0` (off). You can enable the feature by
+ default by inserting the line
+>
+ let g:latex_to_unicode_keymap = 1
+<
+ in your |.vimrc| file. You can change this setting at any
+ moment while editing, but you need to invoke
+ |LaTeXtoUnicode#Init()| for the change to take effect.
+
+ *g:latex_to_unicode_file_types*
+g:latex_to_unicode_file_types
+
+ Contains a |pattern|, or a list of patterns, which are matched
+ against the |'filetype'| to determine when to enable the
+ LaTeX-to-Unicode functionality, see |julia-vim-L2U-file-types|.
+ By default, its value is `"julia"`. The patterns provided must
+ match the whole filetype name. See also
+ |g:latex_to_unicode_file_types_blacklist|.
+
+ *g:latex_to_unicode_file_types_blacklist*
+g:latex_to_unicode_file_types_blacklist
+
+ Same as |g:latex_to_unicode_file_types|, but acts in reverse:
+ it disables the LaTeX-to-Unicode functionality when the
+ |'filetype'| matches the provided pattern (or any of the
+ patterns if a list is provided). By default, it contains an
+ unmatchable pattern, i.e. it is effectively disabled.
+
+ *g:latex_to_unicode_cmd_mapping*
+g:latex_to_unicode_cmd_mapping
+
+ Specifies the mapping (or list of mappings) for the
+ substitution in |Command-line| mode. By default, it is
+ `['<Tab>', '<S-Tab>']`, but it can be changed to avoid
+ overriding other user-defined mapping, e.g. to `'<S-Tab>'`
+ (if your terminal suppoorts it) or `'<C-\><Tab>'`.
+ The `'<Tab>'` (or to be more precise the |wildchar| key) and
+ `'<S-Tab>'` mappings are special in that they fall back to
+ performing default Vim completions in case no suitable
+ substitutions are found.
+
+==============================================================================
+FUNCTIONS *julia-vim-L2U-functions*
+
+ *LaTeXtoUnicode#Init()*
+LaTeXtoUnicode#Init()
+
+ Initialize or re-initialize the LaTeX-to-Unicode substitutions
+ (see |julia-vim-L2U-introduction|). Must be invoked after
+ changing |g:latex_to_unicode_tab| or |g:latex_to_unicode_auto|
+ to make the changes take effect.
+
+ *LaTeXtoUnicode#Enable()*
+ *LaTeXtoUnicode#Disable()*
+ *LaTeXtoUnicode#Toggle()*
+LaTeXtoUnicode#Enable()
+LaTeXtoUnicode#Disable()
+LaTeXtoUnicode#Toggle()
+
+ These functions enable/disable/toggle the LaTeX-to-Unicode
+ functionality, regardless of the |'filetype'| specified in
+ |g:latex_to_unicode_file_types| and
+ |g:latex_to_unicode_file_types_blacklist|. See
+ |julia-vim-L2U-enable-disable|. Note that LaTeXtoUnicode#Enable()
+ will override the |'omnifunc'| definition, if present. However,
+ LaTeXtoUnicode#Disable() will restore it.
+ These functions implicitly invoke |LaTeXtoUnicode#Init()|.
+
+
+ vim:tw=78:et:ft=help:norl:
+
+endif
diff --git a/doc/julia-vim.txt b/doc/julia-vim.txt
new file mode 100644
index 00000000..3f09e3bd
--- /dev/null
+++ b/doc/julia-vim.txt
@@ -0,0 +1,399 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
+
+*julia-vim.txt* Support for Julia in Vim
+
+Author: Carlo Baldassi <carlobaldassi@gmail.com>
+License: MIT license {{{
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+}}}
+
+CONTENTS *julia-vim*
+
+Introduction |julia-vim-introduction|
+Block-wise movements/objects |julia-vim-blocks|
+ Keyword-oriented movements |julia-vim-blocks-move|
+ Block-oriented movements |julia-vim-blocks-moveblock|
+ Block text objects |julia-vim-blocks-objects|
+ Variables |julia-vim-blocks-variables|
+Referring to documents |julia-vim-doc|
+Extras |julia-vim-extras|
+Customizations |julia-vim-options|
+About |julia-vim-about|
+
+==============================================================================
+INTRODUCTION *julia-vim-introduction*
+
+The julia-vim plug-in provides:
+ - basic support for editing Julia files (automatic filetype detection,
+ indentation, syntax highlighting)
+ - support for the |matchit| plugin
+ - support for Julia block-wise movements (i.e. jumping around between
+ Julia blocks like if/end, function/end etc.) and block text-objects
+ - facilities for conversion of LaTeX entries to Unicode symbols which mimic
+ and extend what the Julia REPL and the IJulia notebook interface do.
+ Optionally, this functionality can be used with all file types, not
+ just Julia files. See |julia-vim-L2U|.
+ - a keymapping |K| to refer julia documents.
+
+This help file documents: 1) the block-wise movements and objects, how they
+work and what variables can be used to enable/disable/tweak them; 2) The
+documentation lookup facility; 3) Some extra functions and customization
+options.
+The LaTeX-to-Unicode facilities are documented in |julia-vim-L2U|.
+
+==============================================================================
+BLOCK-WISE MOVEMENTS AND BLOCK TEXT OBJECTS *julia-vim-blocks*
+
+In Julia, all blocks start with a keyword (`module`, `function`, `if`, `for`,
+`while`, `type`, etc.) and end with the `end` keyword.
+
+This plug-in adds support for the |matchit| plugin, such that pressing |%| while
+on a block keyword will jump to the other keywords pertaining to the same
+block. For example, if the cursor is at the beginning of the following code:
+>
+ if a == 1
+ if b > 0
+ println("yes")
+ end
+ else
+ println("no")
+ end
+<
+then pressing |%| will jump to the `else` keyword, pressing it again will jump
+to `end`, and pressing it again will go back to the first `if`.
+
+Note that the matchit plugin is normally distributed with ViM, but it is
+disabled by default. To enable it, add this line to your |.vimrc| file:
+>
+ runtime macros/matchit.vim
+<
+The julia-vim plug-in also adds commands to jump around block keywords in
+normal, operator-pending and visual modes (see |vim-modes|). These are somehow
+similar to the |]]| and |]m| mappings when used in C and Java files,
+respectively, but are more powerful. These commands also require that the
+matchit plugin is enabled.
+
+There are two families of block movements, keyword-oriented (see
+|julia-vim-blocks-move|) and block-oriented (see
+|julia-vim-blocks-blockmove|).
+
+Finally, this plug-in also adds block |text-objects| special mappings, so that
+whole blocks can be manipulated as a whole when in visual mode or
+operator-pending mode, see |julia-vim-block-objects|.
+
+The block movements and block objects mappings can be collectively disabled,
+see |g:julia_blocks|, and customized, see |g:julia_blocks_mappings|.
+
+NOTE: in all cases, macros at the beginning of a block are considered as part
+of the block itself. For example, in this code:
+>
+ @inbounds for i = 1:5
+ s += v[i]
+ end
+<
+the block begins at `@inbounds`.
+
+------------------------------------------------------------------------------
+KEYWORD-ORIENTED MOVEMENTS *julia-vim-blocks-move*
+
+These movements jump to the following/preceding block keyword, and they
+differentiate between begin keywords and end keywords. Some block keywords can
+also be used outside blocks (e.g. `for` in comprehensions, or `end` within
+indexing expressions): these instances are ignored by these commands.
+
+The following movements are provided:
+
+ *julia_]j* *julia_]J* *julia_[j* *julia_[J*
+move_n : jumps to the next begin keyword. By default, it is mapped to `]j`.
+move_N : jumps to the next end keyword. By default, it is mapped to `]J`.
+move_p : jumps to the preceding begin keyword. By default, it is mapped to `[j`.
+move_P : jumps to the preceding end keyword. By default, it is mapped to `[J`.
+
+Use |g:julia_blocks_mappings| to customize the mappings.
+
+------------------------------------------------------------------------------
+BLOCK-ORIENTED MOVEMENTS *julia-vim-blocks-moveblock*
+
+These movements are like keyword-oriented movements (|julia-vim-blocks-move|),
+except that they ignore nested blocks within the block where the cursor is.
+For example, given the following code (with line annotations):
+>
+ 1 while true
+ 2 a += 1
+ 3 if a > 5
+ 4 break
+ 5 end
+ 6 end
+ 7 if b == 2
+ 8 return
+ 9 end
+<
+if the cursor is on line 2, these movements will ignore the inner
+`if/end` block (lines 3 to 5). You would then be able to jump directly
+to lines 1 (with `[[`), 6 (with `][`), 7 (with `]]`), or 9 (with `2][`).
+
+The following movements are provided:
+
+ *julia_]]* *julia_][* *julia_[[* *julia_[]*
+moveblock_n : gets out from the current block (if any) and jumps to the next
+ begin keyword. (Similar to |w| for word movements.) By default,
+ it is mapped to `]]`.
+moveblock_N : jumps to the end of the current block, if any. If the cursor is
+ already at the end of a block, jumps to the end of the following
+ block at the same level of the current one, or at the end of the
+ enclosing block. (Similar to |e| for word movements.) By
+ default, it is mapped to `][`.
+moveblock_p : jumps to the beginning of the current block, if any. If the
+ cursor is already at the beginning of a block, jumps to the
+ beginning of the preceding block at the same level of the
+ current one, or at the beginning of the enclosing block.
+ (Similar to |b| for word movements.) By default, it is mapped to
+ `[[`.
+moveblock_P : gets out from the current block (if any) and jumps to the
+ preceding end keyword. (Similar to |ge| for word movements.)
+ By default, it is mapped to `[]`.
+
+Use |g:julia_blocks_mappings| to customize the mappings.
+
+------------------------------------------------------------------------------
+BLOCK TEXT OBJECTS *julia-vim-blocks-objects*
+
+The julia-vim plug-in extends the ViM |text-objects| by defining special
+mappings which allow to operate on blocks as a whole when in visual mode
+or operator-pending mode. The default mappings use `aj` and `ij` to refer to
+these objects.
+For example, given the following code (with line annotations):
+>
+ 1 while true
+ 2 a += 1
+ 3 if a > 5
+ 4 break
+ 5 end
+ 6 end
+<
+if the cursor is on `break` on line 4, pressing `vaj` will select the whole
+inner `if` block (lines 3 to 5), and pressing `aj` again will select the whole
+`while` block (lines 1 to 6). The same effect could have been obtained with a
+counter, i.e. using `v2aj`. If the cursor were initially on line 2, the whole
+`while` block would have been selected with the first `vaj`. Using `daj` would
+delete a block, `caj` would delete it and leave ViM in insert mode, `=aj`
+would indent it, etc.
+Starting from line 2, pressing `vij` wuold only select the inner part of the
+`while` block (lines 2 to 5).
+
+The following mappings are provided:
+
+ *julia_aj* *julia_ij*
+select_a : the block which contains the cursor, including its delimiters.
+ By default, this is mapped to `aj`. Repeated application (e.g.
+ `vajaj`) selects the enclosing blocks. A counter can be used to
+ the same effect as repetition (e.g. `v2aj`).
+select_i : same as select_a, but only selects the lines included between the
+ delimiters. Thus, this does not work with single-line blocks.
+ By default, this is mapped to `ij`. Repeated application (e.g.
+ `vijij`) has no effect, but using a counter has the same effect as
+ using "select_a" and then selecting the inner part of the outermost
+ block. For example, with the default mappings, `v3ij` is the same as
+ `v3ajij`, or `vajajajij`.
+
+Use |g:julia_blocks_mappings| to customize the mappings.
+
+The following auxiliary function is only mapped to normal mode:
+
+ *julia_whereami*
+whereami : this mapping prints the first line of the current block on the
+ command line. If invoked repeatedly, or if given a count, it prints
+ the first line of the enclosing blocks, like `select_a`. If followed
+ by `select_a`, the selection, or operation, will refer to the last
+ block printed. By default, it is not mapped to any key, but a
+ mapping can be easily provided in |g:julia_blocks_mappings|. It is
+ possible to obtain the string, instead of having it printed, by
+ calling the function `julia_blocks#whereami()`. In such case, use
+ the function `julia_blocks#select_reset()` to reset the block
+ nesting level.
+
+------------------------------------------------------------------------------
+VARIABLES *julia-vim-blocks-variables*
+
+ *g:julia_blocks*
+g:julia_blocks
+
+ Determines whether to map block-wise movements and objects. If
+ unspecified, it is on. You can disable the feature by default
+ by inserting the line
+>
+ let g:julia_blocks = 0
+<
+ in your |.vimrc| file.
+
+ *g:julia_blocks_mappings*
+g:julia_blocks_mappings
+
+ Custom mapping for block-wise movements. This must be a |dict|
+ associating movements to key combinations. Use empty strings
+ to disable individual mappings. The following is equivalent
+ to the default mappings (see |julia-vim-blocks-moveblock|,
+ |julia-vim-blocks-move| and |julia-vim-blocks-objects|):
+>
+ let g:julia_blocks_mappings = {
+ \ "move_n" : "]j",
+ \ "move_N" : "]J",
+ \ "move_p" : "[j",
+ \ "move_P" : "[J",
+ \
+ \ "moveblock_n" : "]]",
+ \ "moveblock_N" : "][",
+ \ "moveblock_p" : "[[",
+ \ "moveblock_P" : "[]",
+ \
+ \ "select_a" : "aj",
+ \ "select_i" : "ij",
+ \
+ \ "whereami" : "",
+ \ }
+<
+ You can change individual mappings by writing something like
+ this in your |.vimrc| file:
+>
+ let g:julia_blocks_mappings = {
+ \ "move_N" : "]n",
+ \ "move_P" : "[n",
+ \ "whereami" : "<Leader>j",
+ \ }
+<
+ Or you can disable individual mappings by writing something like
+ this in your |.vimrc| file:
+>
+ let g:julia_blocks_mappings = {
+ \ "moveblock_n" : "",
+ \ "moveblock_p" : "",
+ \ }
+<
+ All unspecified entries keep their default value.
+
+
+==============================================================================
+REFERRING TO DOCUMENTATION *julia-vim-doc*
+
+ *julia-vim-K*
+K
+ Look up documentation for the keyword under the cursor. If found,
+ a preview window with the documentation is opened.
+
+ This also works for keywords within the opened preview window,
+ allowing effortless browsing of the documentation.
+
+ (This is not really a key mapping, but uses the built-in
+ |keywordprg|-mechanism in vim; see |K| if you're curious).
+
+
+ *<Plug>(JuliaDocPrompt)*
+<Plug>(JuliaDocPrompt)
+ Open a prompt for keyword documentation lookup. If you don't use |?|
+ for backward search, you can use the following to make `?` work like
+ in the Julia REPL:
+>
+ autocmd FileType julia nmap <buffer> ? <Plug>(JuliaDocPrompt)
+<
+ Apply |:augroup| as needed.
+
+
+ *:JuliaDoc*
+:JuliaDoc {keyword}
+ Look up documentation for {keyword}.
+
+
+==============================================================================
+EXTRAS *julia-vim-extras*
+
+
+ *julia#toggle_function_blockassign*
+ *julia#function_block2assign*
+ *julia#function_assign2block*
+julia#toggle_function_blockassign()
+julia#function_block2assign()
+julia#function_assign2block()
+
+ These functions allow to transform function definitions
+ between block format and assignment format. For example,
+ these two definitions are equivalent:
+>
+ function test(x, y)
+ x + 2y
+ end
+
+ test(x, y) = x + 2y
+<
+ You can use the function `julia#toggle_function_blockassign()`
+ to switch between the two forms (the cursor needs to be on the
+ first line of the block form). This functionality requires
+ that the |matchit| plugin is loaded. Only three-line function
+ blocks like the one in the example are recognized. When
+ changing the block form into the assignment form, `return`
+ statements are removed; if the result is empty, `nothing` is
+ substituted. Leading macros (e.g. `@inline` or `@compat`) are
+ recognized and preserved by the transformation.
+
+ In order to make this functionality practical, it is advisable
+ to map it to some key combination, e.g.:
+>
+ noremap <Leader>fb :call julia#toggle_function_blockassign()<CR>
+<
+
+==============================================================================
+CUSTOMIZATIONS *julia-vim-options*
+
+The following options allows customizing some aspects of the plugin.
+
+ *g:julia_spellcheck_docstrings*
+g:julia_spellcheck_docstrings
+
+ Determines whether to enable spell-checking for docstrings,
+ i.e. triple quoted strings that start in the first column. See
+ |spell|. Default: on (set to `1`).
+
+ *g:julia_spellcheck_strings*
+g:julia_spellcheck_strings
+
+ Determines whether to enable spell-checking for all strings.
+ See |spell|. Default: off (set to `0`).
+
+ *g:julia_spellcheck_comments*
+g:julia_spellcheck_comments
+
+ Determines whether to enable spell-checking for comments. See
+ |spell|. Default: on (set to `1`).
+
+ *g:julia_highlight_operators*
+g:julia_highlight_operators
+
+ Determines whether to apply syntax highlighting to operators.
+ Default: on (set to `1`).
+
+
+==============================================================================
+ABOUT *julia-vim-about*
+
+Grab the latest version or report a bug on GitHub:
+
+http://github.com/JuliaEditorSupport/julia-vim
+
+ vim:tw=78:et:ft=help:norl:
+
+endif
diff --git a/doc/ledger.txt b/doc/ledger.txt
new file mode 100644
index 00000000..1cb2f65c
--- /dev/null
+++ b/doc/ledger.txt
@@ -0,0 +1,443 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ledger') == -1
+
+*ledger.txt* Plugin for the ledger filetype.
+
+
+ *ledger* *ledger-plugin*
+
+Contents:
+
+ Commands............|ledger-invoking|
+ Source................|ledger-source|
+ Usage..................|ledger-usage|
+ Tips....................|ledger-tips|
+ Reports..............|ledger-reports|
+ Settings............|ledger-settings|
+ Completion........|ledger-completion|
+ License..............|ledger-license|
+
+
+==============================================================================
+USAGE *ledger-usage*
+
+Copy each file to the corresponding directory in your ~/.vim directory or
+install using Pathogen.
+
+You can also use a modeline like this in every ledger file:
+
+ vim:filetype=ledger
+
+==============================================================================
+TIPS *ledger-tips*
+
+Tips and useful commands
+
+* vim-ledger can do syntax-sensitive folding when you set `foldmethod=syntax`
+ in the |modeline| of your ledger file. This way transactions can shrink down
+ to just one line.
+
+* Try account-completion (as explained below). If you use YouCompleteMe, you
+ should disable it for Ledger files. Put this in your .vimrc:
+
+ if exists('g:ycm_filetype_blacklist')
+ call extend(g:ycm_filetype_blacklist, { 'ledger': 1 })
+ endif
+
+* You may use `:make` for syntax checking. It may be convenient to define a
+ mapping for the following command:
+
+ :silent make | redraw! | cwindow
+
+ It is recommended to set the value of `g:ledger_extra_options` (see below)
+ as follows:
+
+ let g:ledger_extra_options = '--pedantic --explicit --check-payees'
+
+ to catch most potential problems in your source file.
+
+* Remap vim paragraph motion to move by transaction.
+
+ In vim, the "{" and "}" keystrokes move the cursor up and down by whole
+ paragraphs. They can be redefined in ledger files to move by transaction
+ instead. Add these lines to .vimrc:
+
+ au FileType ledger noremap { ?^\d<CR>
+ au FileType ledger noremap } /^\d<CR>
+
+ The default definitions already work in ledger files that separate
+ transactions with blank lines.
+
+* `:call ledger#transaction_date_set(line('.'), "auxiliary")`
+
+ will set today's date as the auxiliary date of the current transaction. You
+ can use also "primary" or "unshift" in place of "auxiliary". When you pass
+ "unshift" the old primary date will be set as the auxiliary date and today's
+ date will be set as the new primary date.
+ To use a different date pass a date measured in seconds since 1st Jan 1970
+ as the third argument.
+
+* `:call ledger#transaction_state_set(line('.'), '*')`
+
+ sets the state of the current transaction to '*'. You can use this in custom
+ mappings.
+
+* `:call ledger#transaction_state_toggle(line('.'), ' *?!')`
+
+ will toggle through the provided transaction states. You can map this to
+ double-clicking for example:
+
+ noremap <silent><buffer> <2-LeftMouse>\
+ :call ledger#transaction_state_toggle(line('.'), ' *?!')<CR>
+
+* `:LedgerAlign`
+
+ moves the amount expression of a posting so that the decimal separator is
+ aligned at the column specified by g:ledger_align_at. If an amount has no
+ decimal point, the imaginary decimal point to the right of the least
+ significant digit will align. The command acts on a range, with the default
+ being the current line.
+
+ The decimal separator can be set using `g:ledger_decimal_sep`. The default
+ value of `g:ledger_decimal_sep` is `'.'`.
+
+ See below for the recommended mappings.
+
+* `:call ledger#align_amount_at_cursor()`
+
+ aligns the amount under the cursor and append/prepend the default currency.
+ The default currency can be set using `g:ledger_default_commodity`. Whether
+ the commodity should be inserted before the amount or appended to it can be
+ configured with the boolean flag `g:ledger_commodity_before` (the default
+ value is 1). A separator between the commodity and the amount may be set
+ using `g:ledger_commodity_sep`.
+
+ See below for the recommended mappings.
+
+* `:call ledger#autocomplete_and_align()`
+
+ when the cursor is on a number or immediately after it, invokes
+ `ledger#align_amount_at_cursor()` to align it and add the default currency;
+ otherwise, performs autocompletion. If you define the following mappings in
+ your `.vimrc` then you may perform both autocompletion and alignment using
+ the <Tab> key:
+
+ au FileType ledger inoremap <silent> <Tab> \
+ <C-r>=ledger#autocomplete_and_align()<CR>
+ au FileType ledger vnoremap <silent> <Tab> :LedgerAlign<CR>
+
+ Alternatively, you may create a file `.vim/after/ftplugin/ledger.vim`
+ containing the following definitions:
+
+ inoremap <silent> <buffer> <Tab> \
+ <C-r>=ledger#autocomplete_and_align()<CR>
+ vnoremap <silent> <buffer> <Tab> :LedgerAlign<CR>
+
+ Now, you may type `asset:check<Tab><Space>123.45<Tab>`, and have the
+ account name autocompleted and `$123.45` properly aligned (assuming your
+ default commodity is set to `'$'`). Or you may press <Tab> in Visual mode
+ to align a number of transactions at once.
+
+* `:call ledger#entry()`
+
+ enters a new transaction based on the text in the current line.
+ The text in the current line is replaced by the new transaction.
+ This is a front end to `ledger entry`.
+
+==============================================================================
+REPORTS *ledger-reports*
+
+* `:Ledger`
+
+ Executes an arbitrary Ledger command and sends the output to a new buffer.
+ For example:
+
+ :Ledger bal ^assets ^liab
+
+ Errors are displayed in a quickfix window. The command offers account and
+ payee autocompletion (by pressing <Tab>): every name starting with `@` is
+ autocompleted as a payee; any other name is autocompleted as an account.
+
+ In a report buffer or in the quickfix window, you may press <Tab> to switch
+ back to your source file, and you may press `q` to dismiss the current window.
+
+ There are three highlight groups that are used to color the report:
+
+ * `LedgerNumber`
+
+ This is used to color nonnegative numbers.
+
+ * `LedgerNegativeNumber`
+
+ This is used to color negative numbers.
+
+ * `LedgerImproperPerc`
+
+ This is used to color improper percentages.
+
+* `:Balance`
+
+ Show the pending and cleared balance of a given account below the status
+ line. For example:
+
+ :Balance checking:savings
+
+ The command offers payee and account autocompletion (see `:Ledger`). The
+ account argument is optional: if no argument is given, the first account
+ name found in the current line is used.
+
+ Two highlight groups can be used to customize the colors of the line:
+
+ * `LedgerCleared`
+
+ This is used to color the cleared balance.
+
+ * `LedgerPending`
+
+ This is used to color the pending balance.
+
+* `:Register`
+
+ Opens an arbitrary register report in the quickfix window. For example:
+
+ :Register groceries -p 'this month'
+
+ The command offers account and payee autocompletion (see |:Ledger|). You
+ may use the standard quickfix commands to jump from an entry in the register
+ report to the corresponding location in the source file. If you use GUI Vim
+ or if your terminal has support for the mouse (e.g., iTerm2, or even
+ Terminal.app in OS X 10.11 or later), you may also double-click on a line
+ number in the quickfix window to jump to the corresponding posting.
+
+ It is strongly recommended that you add mappings for common quickfix
+ commands like `:cprev` and `:cnext`, or that you use T. Pope's Unimpaired
+ plugin.
+
+* :`Reconcile`
+
+ Reconcile an account. For example:
+
+ :Reconcile checking
+
+ After you press Enter, you will be asked to enter a target amount (use
+ Vim's syntax for numbers, not your ledger's format). For example, for a
+ checking account, the target amount may be the balance of your latest bank
+ statement. The list of uncleared postings appears in the quickfix window.
+ The current balance of the account, together with the difference between the
+ target amount and the cleared balance, is shown at the bottom of the screen.
+ You may use standard quickfix commands to navigate through the postings. You
+ may use |ledger#transaction_state_set()| to update a transaction's state.
+ Every time you save your file, the balance and the difference from the
+ target amount are updated at the bottom of the screen. The goal, of course,
+ is to get such difference to zero. You may press `<C-l>` to refresh the
+ Reconcile buffer. To finish reconciling an account, simply close the
+ quickfix window.
+
+ There is a highlight group to customize the color of the difference from
+ target:
+
+ * `LedgerTarget`
+
+ This is used to color the difference between the target amount and the
+ cleared balance.
+
+==============================================================================
+SETTINGS *ledger-settings*
+
+Configuration
+
+Include the following let-statements somewhere in your `.vimrc` to modify the
+behaviour of the ledger filetype.
+
+* Path to the `ledger` executable:
+
+ let g:ledger_bin = 'ledger'
+
+* Additional default options for the `ledger` executable:
+
+ let g:ledger_extra_options = ''
+
+* To use a custom external system command to generate a list of account names
+ for completion, set the following. If g:ledger_bin is set, this will default
+ to running that command with arguments to parse the current file using the
+ accounts subcommand (works with ledger or hledger), otherwise it will parse
+ the postings in the current file itself.
+
+ let g:ledger_accounts_cmd = 'your_command args'
+
+* To use a custom external system command to generate a list of descriptions
+ for completion, set the following. If g:ledger_bin is set, this will default
+ to running that command with arguments to parse the current file using the
+ descriptions subcommand (works with ledger or hledger), otherwise it will
+ parse the transactions in the current file itself.
+
+ let g:ledger_descriptions_cmd = 'your_command args'
+
+* Number of columns that will be used to display the foldtext. Set this when
+ you think that the amount is too far off to the right.
+
+ let g:ledger_maxwidth = 80
+
+* String that will be used to fill the space between account name and amount in
+ the foldtext. Set this to get some kind of lines or visual aid.
+
+ let g:ledger_fillstring = ' -'
+
+* If you want the account completion to be sorted by level of detail/depth
+ instead of alphabetical, include the following line:
+
+ let g:ledger_detailed_first = 1
+
+* By default vim will fold ledger transactions, leaving surrounding blank lines
+ unfolded. You can use 'g:ledger_fold_blanks' to hide blank lines following a
+ transaction.
+
+ let g:ledger_fold_blanks = 0
+
+ A value of 0 will disable folding of blank lines, 1 will allow folding of a
+ single blank line between transactions; any larger value will enable folding
+ unconditionally.
+
+ Note that only lines containing no trailing spaces are considered for
+ folding. You can take advantage of this to disable this feature on a
+ case-by-case basis.
+
+* Decimal separator:
+
+ let g:ledger_decimal_sep = '.'
+
+* Specify at which column decimal separators should be aligned:
+
+ let g:ledger_align_at = 60
+
+* Default commodity used by `ledger#align_amount_at_cursor()`:
+
+ let g:ledger_default_commodity = ''
+
+* Flag that tells whether the commodity should be prepended or appended to the
+ amount:
+
+ let g:ledger_commodity_before = 1
+
+* String to be put between the commodity and the amount:
+
+ let g:ledger_commodity_sep = ''
+
+* Flag that enable the spelling of the amount:
+
+ let g:ledger_commodity_spell = 1
+
+* Format of transaction date:
+
+ let g:ledger_date_format = '%Y/%m/%d'
+
+* The file to be used to generate reports:
+
+ let g:ledger_main = '%'
+
+ The default is to use the current file.
+
+* Position of a report buffer:
+
+ let g:ledger_winpos = 'B'
+
+ Use `b` for bottom, `t` for top, `l` for left, `r` for right. Use uppercase letters
+ if you want the window to always occupy the full width or height.
+
+* Format of quickfix register reports (see |:Register|):
+
+ let g:ledger_qf_register_format = \
+ '%(date) %-50(payee) %-30(account) %15(amount) %15(total)\n'
+
+ The format is specified using the standard Ledger syntax for --format.
+
+* Format of the reconcile quickfix window (see |:Reconcile|):
+
+ let g:ledger_qf_reconcile_format = \
+ '%(date) %-4(code) %-50(payee) %-30(account) %15(amount)\n'
+
+ The format is specified using the standard Ledger syntax for --format.
+
+* Flag that tells whether a location list or a quickfix list should be used:
+
+ let g:ledger_use_location_list = 0
+
+ The default is to use the quickfix window. Set to 1 to use a location list.
+
+* Position of the quickfix/location list:
+
+ let g:ledger_qf_vertical = 0
+
+ Set to 1 to open the quickfix window in a vertical split.
+
+* Size of the quickfix window:
+
+ let g:ledger_qf_size = 10
+
+ This is the number of lines of a horizontal quickfix window, or the number
+ of columns of a vertical quickfix window.
+
+* Flag to show or hide filenames in the quickfix window:
+
+ let g:ledger_qf_hide_file = 1
+
+ Filenames in the quickfix window are hidden by default. Set this to 1 is
+ you want filenames to be visible.
+
+* Text of the output of the |:Balance| command:
+
+ let g:ledger_cleared_string = 'Cleared: '
+ let g:ledger_pending_string = 'Cleared or pending: '
+ let g:ledger_target_string = 'Difference from target: '
+
+==============================================================================
+COMPLETION *ledger-completion*
+
+Omni completion is currently implemented for account names only.
+
+### Accounts
+
+Account names are matched by the start of every sub-level. When you
+insert an account name like this:
+
+ Asse<C-X><C-O>
+
+You will get a list of top-level accounts that start like this.
+
+Go ahead and try something like:
+
+ As:Ban:Che<C-X><C-O>
+
+When you have an account like this, 'Assets:Bank:Checking' should show up.
+
+When you want to complete on a virtual transaction, it's currently best
+to keep the cursor in front of the closing bracket. Of course you can
+insert the closing bracket after calling the completion, too.
+
+==============================================================================
+LICENSE *ledger-license*
+
+https://github.com/ledger/vim-ledger
+
+Copyright 2019 Caleb Maclennan
+Copyright 2009–2017 Johann Klähn
+Copyright 2009 Stefan Karrmann
+Copyright 2005 Wolfgang Oertl
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation, either version 2 of the License, or (at your
+option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program. If not, see <https://www.gnu.org/licenses/>.
+
+
+vim:ts=8 sw=8 noexpandtab tw=78 ft=help:
+
+
+endif
diff --git a/doc/ocaml.txt b/doc/ocaml.txt
new file mode 100644
index 00000000..83c5418d
--- /dev/null
+++ b/doc/ocaml.txt
@@ -0,0 +1,16 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
+
+*ocaml.txt* Filetype plugin for OCaml
+
+CONFIGURATION *ocaml-configuration*
+
+ *g:ocaml_highlight_operators*
+
+By default operators are not linked to the Operator group and thus not
+highlighted. You can turn on highlighting of operators by defining:
+
+ let g:ocaml_highlight_operators = 1
+
+ vim:tw=78:et:ft=help:norl:
+
+endif
diff --git a/doc/opam.txt b/doc/opam.txt
new file mode 100644
index 00000000..6669bb2b
--- /dev/null
+++ b/doc/opam.txt
@@ -0,0 +1,22 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
+
+*opam.txt* Switch OCaml versions from inside Vim using OPAM
+
+Author: Rudi Grinberg <http://rgrinberg.com>
+License: Same terms as Vim itself (see |license|)
+
+This plugin is only available if 'compatible' is not set.
+
+COMMANDS *:opam*
+
+:Opam {version} Set the current OCaml version to {version}.
+
+ABOUT *opam-about*
+
+Grab the latest version or report a bug on GitHub:
+
+https://github.com/ocaml/vim-ocaml
+
+ vim:tw=78:et:ft=help:norl:
+
+endif
diff --git a/doc/pgsql.txt b/doc/pgsql.txt
new file mode 100644
index 00000000..7ccd03d0
--- /dev/null
+++ b/doc/pgsql.txt
@@ -0,0 +1,143 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'pgsql') == -1
+
+*pgsql.txt* Syntax highlighting for PostgreSQL files
+ _ ~
+ | | ~
+ ____ ____ ___ ____| | ~
+ | _ \ / _ |/___)/ _ | | ~
+ | |_| ( (_| |___ | |_| | | ~
+ | __/ \___ (___/ \__ |\_) ~
+ |_| (_____| |_| ~
+
+ The best PostgreSQL plugin for Vim!
+
+Author: Lifepillar <https://github.com/lifepillar>
+License: Public Domain
+
+==============================================================================
+CONTENTS *pgsql-contents*
+
+ 1. Syntax highlighting ................... |pgsql-syntax|
+ 2. Customization ......................... |pgsql-customization|
+ 3. Autocompletion ........................ |pgsql-autocompletion|
+ 4. Contributing .......................... |pgsql-contributing|
+ 5. Credits ............................... |pgsql-credits|
+
+==============================================================================
+Syntax highlighting *pgsql-syntax*
+
+Files with a .`pgsql` suffix are highlighted out of the box. If you want to
+highlight `.sql` files using this plugin by default, add this to your `.vimrc`
+(see |ft_sql.txt| for more details):
+>
+ let g:sql_type_default = 'pgsql'
+<
+Alternatively, after loading a `.sql` file use this command:
+>
+ SQLSetType pgsql.vim
+<
+To set the file type in new buffers use:
+>
+ let b:sql_type_override='pgsql' | set ft=sql
+<
+Identifiers starting with an underscore are highlighted as variables. It is
+recommended to adopt the convention of prefixing function parameters and local
+variables with `_`.
+
+Code between `$pgsql$`, `$body$`, or `$$` pairs is interpreted as PL/pgSQL and
+highlighted accordingly (the delimiters are case-insensitive). If you prefer
+to use `$$` to highlight strings instead, you may set |g:pgsql_dollar_strings|
+to 1.
+
+Text enclosed between `$anyword$` pairs, where `anyword` is any non-empty
+sequence of word characters different from those with a special meaning (such
+as `$pgsql$`) is treated as a multi-line string.
+
+Finally, the plugin supports syntax highlighting of arbitrary languages within
+procedure and function blocks. This feature needs to be configured: see
+|g:pgsql_pl|.
+
+==============================================================================
+Customization *pgsql-customization*
+
+ *'g:pgsql_backslash_quote'*
+Set to 1 to recognize `\'` as an escape sequence in all strings. By default,
+`\'` is treated as an escape sequence only in "escape" strings constants,
+i.e., strings enclosed in `E''`.
+>
+ let g:pgsql_backslash_quote = 0
+<
+ *'g:pgsql_disabled_extensions'*
+Support for the most common PostgreSQL extensions is enabled by default. Set
+this to a List of names of extensions whose keywords you do not want to be
+highlighted.
+>
+ let g:pgsql_disabled_extensions = []
+<
+ *'g:pgsql_dollar_strings'*
+Set to 1 if you want double-dollar enclosed text highlighted as a SQL string.
+By default, text quoted with `$$` is highlighted as PL/pgSQL.
+>
+ let g:pgsql_dollar_strings = 0
+<
+ *'g:pgsql_pl'*
+ *'b:pgsql_pl'*
+A List of the filetypes that should be highlighted inside the body of
+user-defined functions and procedures.
+>
+ let g:pgsql_pl = []
+<
+For example, to use PL/Python and PL/R, you should define:
+>
+ let g:pgsql_pl = ['python', 'r']
+<
+Then, code between `$python$` pairs will be highlighted as Python, and code
+between `$r$` pairs will be highlighted as R.
+
+The buffer-local version of this setting can be used to override the global
+setting in a single buffer.
+
+Note: changes to any of these variables take effect after the SQL filetype is
+reloaded.
+
+==============================================================================
+Autocompletion *pgsql-autocompletion*
+
+This plugin just defines a new dialect for Vim's SQL plugin. As such, it
+inherits the static and dynamic completion methods already offered by Vim (see
+|sql-completion|). So, for example, by default you may use `<C-c>f` to
+complete function names, `<C-c>T` to complete types, and so on. See
+|ft_sql.txt| for thorough documentation about SQL support in Vim.
+
+As far as I know, YouCompleteMe does not support SQL. If you use YouCompleteMe
+you may want to disable it for SQL buffers. Add this to
+`.vim/after/ftplugin/sql.vim`:
+>
+ if exists('g:ycm_filetype_blacklist')
+ call extend(g:ycm_filetype_blacklist, { 'sql': 1 })
+ endif
+<
+Of course, I recommend using my own MUcomplete plugin over YCM ;)
+
+==============================================================================
+Contributing *pgsql-contributing*
+
+For bug reports and feature requests please use:
+
+ https://github.com/lifepillar/pgsql.vim/issues
+
+Pull requests are welcome, too!
+
+==============================================================================
+Credits *pgsql-credits*
+
+This plugin was originally a fork of space::tekk's
+
+ https://github.com/spacetekk/pgsql.vim
+
+and completely rewritten.
+
+ vim:tw=78:ts=8:noet:ft=help:norl:
+
+
+endif
diff --git a/doc/ps1.txt b/doc/ps1.txt
new file mode 100644
index 00000000..660f2c1a
--- /dev/null
+++ b/doc/ps1.txt
@@ -0,0 +1,68 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'powershell') == -1
+
+*ps1.txt* A Windows PowerShell syntax plugin for Vim
+
+Maintainer: Peter Provost <https://www.github.com/PProvost>
+License: Apache 2.0
+Version: 2.10
+
+INTRODUCTION *ps1-syntax*
+
+This plugin provides Vim syntax, indent and filetype detection for Windows
+PowerShell scripts, modules, and XML configuration files.
+
+
+ABOUT *ps1-about*
+
+Grab the latest version or report a bug on GitHub:
+
+https://github.com/PProvost/vim-ps1
+
+
+FOLDING *ps1-folding*
+
+The ps1 syntax file provides syntax folding (see |:syn-fold|) for script blocks
+and digital signatures in scripts.
+
+When 'foldmethod' is set to "syntax" then function script blocks will be
+folded unless you use the following in your .vimrc or before opening a script: >
+
+ :let g:ps1_nofold_blocks = 1
+<
+Digital signatures in scripts will also be folded unless you use: >
+
+ :let g:ps1_nofold_sig = 1
+<
+Note: syntax folding might slow down syntax highlighting significantly,
+especially for large files.
+
+
+COMPILER *ps1-compiler*
+
+The powershell |compiler| script configures |:make| to execute the script in
+PowerShell.
+
+It tries to pick a smart default PowerShell command: `pwsh` if available and
+`powershell` otherwise, but you can customize the command: >
+
+ :let g:ps1_makeprg_cmd = '/path/to/pwsh'
+<
+To configure whether to show the exception type information: >
+
+ :let g:ps1_efm_show_error_categories = 1
+<
+
+KEYWORD LOOKUP *ps1-keyword*
+
+To look up keywords using PowerShell's Get-Help, press the |K| key. For more
+convenient paging, the pager `less` should be installed, which is included in
+many Linux distributions and in macOS.
+
+Many other distributions are available for Windows like
+https://chocolatey.org/packages/less/. Make sure `less` is in a directory
+listed in the `PATH` environment variable, which chocolatey above does.
+
+------------------------------------------------------------------------------
+ vim:ft=help:
+
+endif
diff --git a/doc/python-syntax.txt b/doc/python-syntax.txt
new file mode 100644
index 00000000..d5391ff7
--- /dev/null
+++ b/doc/python-syntax.txt
@@ -0,0 +1,124 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'python') == -1
+
+*python-syntax.txt* Python syntax highlighting
+
+==============================================================================
+Introduction *python-syntax* *ft-python-syntax* *python.vim*
+
+This is an enhanced version of the original Vim 6.1 Python syntax highlighting
+`python.vim` by Neil Schemenauer.
+
+Features
+--------
+
+* Enhanced highlighting for:
+ * Strings
+ * Special symbols inside strings
+ * Numeric constants
+* Added support for:
+ * Python 3
+ * Numbers with underscores
+ * String %-formatting and f-strings
+ * Magic comments: source code encoding and shebangs
+ * New exceptions and builtins
+ * Doctests
+ * `@decorator` syntax
+ * Class variables such as `self` and `cls`
+ * Operators
+* Highlighting of the following errors:
+ * Invalid symbols in source file
+ * Invalid numeric constants
+ * Invalid %-formatting inside strings
+ * Invalid variable names
+ * Invalid operators
+ * Mixing spaces and tabs
+ * Trailing spaces (Enabled with `g:python_highlight_space_errors`)
+* Commands for easy switching between versions
+
+Folding is done by the plugin SimpylFold
+(https://github.com/tmhedberg/SimpylFold).
+
+==============================================================================
+Configuration *python-syntax-configuration*
+
+Option variables
+----------------
+
+Set variable to `1` to enable or `0` to disable.
+
+For example to enable all syntax highlighting features you can add the
+following command to your `~/.config/nvim/init.vim` or `~/.vimrc`: >
+
+ let g:python_highlight_all = 1
+<
+
+`g:python_version_2` (default `0`)
+ Python 2 mode
+
+`b:python_version_2` (default `0`)
+ Python 2 mode (buffer local)
+
+`g:python_highlight_builtins` (default `0`)
+ Highlight builtin objects, types, and functions
+
+`g:python_highlight_builtin_objs` (default `0`)
+ Highlight builtin objects only
+
+`g:python_highlight_builtin_types` (default `0`)
+ Highlight builtin types only
+
+`g:python_highlight_builtin_funcs` (default `0`)
+ Highlight builtin functions only
+
+`g:python_highlight_builtin_funcs_kwarg` (default `1`)
+ Highlight builtin functions when used as kwarg
+
+`g:python_highlight_exceptions` (default `0`)
+ Highlight standard exceptions
+
+`g:python_highlight_string_formatting` (default `0`)
+ Highlight `%` string formatting
+
+`g:python_highlight_string_format` (default `0`)
+ Highlight syntax of `str.format` syntax
+
+`g:python_highlight_string_templates` (default `0`)
+ Highlight syntax of `string.Template`
+
+`g:python_highlight_indent_errors` (default `0`)
+ Highlight indentation errors
+
+`g:python_highlight_space_errors` (default `0`)
+ Highlight trailing spaces
+
+`g:python_highlight_doctests` (default `0`)
+ Highlight doc-tests
+
+`g:python_highlight_func_calls` (default `0`)
+ Highlight functions calls
+
+`g:python_highlight_class_vars` (default `0`)
+ Highlight class variables `self` and `cls`
+
+`g:python_highlight_operators` (default `0`)
+ Highlight all operators
+
+`g:python_highlight_all` (default `0`)
+ Enable all highlight options above, except for previously set.
+
+`g:python_highlight_file_headers_as_comments` (default `0`)
+ Highlight shebang and coding headers as comments
+
+`g:python_slow_sync` (default `1`)
+ Disable for slow machines
+
+Commands
+--------
+
+`Python2Syntax`
+ Switch to Python 2
+
+`Python3Syntax`
+ Switch to Python 3
+
+endif
diff --git a/doc/reason.txt b/doc/reason.txt
new file mode 100644
index 00000000..ad2cd1d9
--- /dev/null
+++ b/doc/reason.txt
@@ -0,0 +1,24 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'reason') == -1
+
+*reason.txt* Filetype plugin for Reason
+
+==============================================================================
+CONTENTS *reason* *ft-reason*
+
+
+==============================================================================
+INTRODUCTION *reason-intro*
+
+
+==============================================================================
+SETTINGS *reason-settings*
+
+
+==============================================================================
+MAPPINGS *reason-mappings*
+
+
+==============================================================================
+ vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
+
+endif
diff --git a/doc/rust.txt b/doc/rust.txt
new file mode 100644
index 00000000..6dbb1a2c
--- /dev/null
+++ b/doc/rust.txt
@@ -0,0 +1,490 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
+
+*ft_rust.txt* Filetype plugin for Rust
+
+==============================================================================
+CONTENTS *rust*
+
+1. Introduction |rust-intro|
+2. Settings |rust-settings|
+3. Commands |rust-commands|
+4. Mappings |rust-mappings|
+
+==============================================================================
+INTRODUCTION *rust-intro*
+
+This plugin provides syntax and supporting functionality for the Rust
+filetype. It requires Vim 8 or higher for full functionality. Some commands
+will not work on earlier versions.
+
+==============================================================================
+SETTINGS *rust-settings*
+
+This plugin has a few variables you can define in your vimrc that change the
+behavior of the plugin.
+
+Some variables can be set buffer local (`:b` prefix), and the buffer local
+will take precedence over the global `g:` counterpart.
+
+ *g:rustc_path*
+g:rustc_path~
+ Set this option to the path to rustc for use in the |:RustRun| and
+ |:RustExpand| commands. If unset, "rustc" will be located in $PATH: >
+ let g:rustc_path = $HOME."/bin/rustc"
+<
+
+ *g:rustc_makeprg_no_percent*
+g:rustc_makeprg_no_percent~
+ Set this option to 1 to have 'makeprg' default to "rustc" instead of
+ "rustc %": >
+ let g:rustc_makeprg_no_percent = 1
+<
+
+ *g:rust_conceal*
+g:rust_conceal~
+ Set this option to turn on the basic |conceal| support: >
+ let g:rust_conceal = 1
+<
+
+ *g:rust_conceal_mod_path*
+g:rust_conceal_mod_path~
+ Set this option to turn on |conceal| for the path connecting token
+ "::": >
+ let g:rust_conceal_mod_path = 1
+<
+
+ *g:rust_conceal_pub*
+g:rust_conceal_pub~
+ Set this option to turn on |conceal| for the "pub" token: >
+ let g:rust_conceal_pub = 1
+<
+
+ *g:rust_recommended_style*
+g:rust_recommended_style~
+ Set this option to enable vim indentation and textwidth settings to
+ conform to style conventions of the rust standard library (i.e. use 4
+ spaces for indents and sets 'textwidth' to 99). This option is enabled
+ by default. To disable it: >
+ let g:rust_recommended_style = 0
+<
+
+ *g:rust_fold*
+g:rust_fold~
+ Set this option to turn on |folding|: >
+ let g:rust_fold = 1
+<
+ Value Effect ~
+ 0 No folding
+ 1 Braced blocks are folded. All folds are open by
+ default.
+ 2 Braced blocks are folded. 'foldlevel' is left at the
+ global value (all folds are closed by default).
+
+ *g:rust_bang_comment_leader*
+g:rust_bang_comment_leader~
+ Set this option to 1 to preserve the leader on multi-line doc comments
+ using the /*! syntax: >
+ let g:rust_bang_comment_leader = 1
+<
+
+ *g:rust_use_custom_ctags_defs*
+g:rust_use_custom_ctags_defs~
+ Set this option to 1 if you have customized ctags definitions for Rust
+ and do not wish for those included with rust.vim to be used: >
+ let g:rust_use_custom_ctags_defs = 1
+<
+
+ NOTE: rust.vim's built-in definitions are only used for the Tagbar Vim
+ plugin, if you have it installed, AND if Universal Ctags is not
+ detected. This is because Universal Ctags already has built-in
+ support for Rust when used with Tagbar.
+
+ Also, note that when using ctags other than Universal Ctags, it is not
+ automatically used when generating |tags| files that Vim can use to
+ navigate to definitions across different source files. Feel free to
+ copy `rust.vim/ctags/rust.ctags` into your own `~/.ctags` if you wish
+ to generate |tags| files.
+
+
+ *g:ftplugin_rust_source_path*
+g:ftplugin_rust_source_path~
+ Set this option to a path that should be prepended to 'path' for Rust
+ source files: >
+ let g:ftplugin_rust_source_path = $HOME.'/dev/rust'
+<
+
+ *g:rustfmt_command*
+g:rustfmt_command~
+ Set this option to the name of the 'rustfmt' executable in your $PATH. If
+ not specified it defaults to 'rustfmt' : >
+ let g:rustfmt_command = 'rustfmt'
+<
+ *g:rustfmt_autosave*
+g:rustfmt_autosave~
+ Set this option to 1 to run |:RustFmt| automatically when saving a
+ buffer. If not specified it defaults to 0 : >
+ let g:rustfmt_autosave = 0
+<
+ There is also a buffer-local b:rustfmt_autosave that can be set for
+ the same purpose, and can override the global setting.
+
+ *g:rustfmt_autosave_if_config_present*
+g:rustfmt_autosave_if_config_present~
+ Set this option to 1 to have *b:rustfmt_autosave* be set automatically
+ if a `rustfmt.toml` file is present in any parent directly leading to
+ the file being edited. If not set, default to 0: >
+ let g:rustfmt_autosave_if_config_present = 0
+<
+ This is useful to have `rustfmt` only execute on save, on projects
+ that have `rustfmt.toml` configuration.
+
+ There is also a buffer-local b:rustfmt_autosave_if_config_present
+ that can be set for the same purpose, which can overrides the global
+ setting.
+ *g:rustfmt_fail_silently*
+g:rustfmt_fail_silently~
+ Set this option to 1 to prevent 'rustfmt' from populating the
+ |location-list| with errors. If not specified it defaults to 0: >
+ let g:rustfmt_fail_silently = 0
+<
+ *g:rustfmt_options*
+g:rustfmt_options~
+ Set this option to a string of options to pass to 'rustfmt'. The
+ write-mode is already set to 'overwrite'. If not specified it
+ defaults to '' : >
+ let g:rustfmt_options = ''
+<
+ *g:rustfmt_emit_files*
+g:rustfmt_emit_files~
+ If not specified rust.vim tries to detect the right parameter to
+ pass to rustfmt based on its reported version. Otherwise, it
+ determines whether to run rustfmt with '--emit=files' (when 1 is
+ provided) instead of '--write-mode=overwrite'. >
+ let g:rustfmt_emit_files = 0
+
+
+ *g:rust_playpen_url*
+g:rust_playpen_url~
+ Set this option to override the url for the playpen to use: >
+ let g:rust_playpen_url = 'https://play.rust-lang.org/'
+<
+
+ *g:rust_shortener_url*
+g:rust_shortener_url~
+ Set this option to override the url for the url shortener: >
+ let g:rust_shortener_url = 'https://is.gd/'
+<
+
+ *g:rust_clip_command*
+g:rust_clip_command~
+ Set this option to the command used in your OS to copy the Rust Play
+ url to the clipboard: >
+ let g:rust_clip_command = 'xclip -selection clipboard'
+<
+
+ *g:cargo_makeprg_params*
+g:cargo_makeprg_params~
+ Set this option to the string of parameters to pass to cargo. If not
+ specified it defaults to '$*' : >
+ let g:cargo_makeprg_params = 'build'
+<
+
+ *g:cargo_shell_command_runner*
+g:cargo_shell_command_runner~
+ Set this option to change how to run shell commands for cargo commands
+ |:Cargo|, |:Cbuild|, |:Crun|, ...
+ By default, |:terminal| is used to run shell command in terminal window
+ asynchronously. But if you prefer |:!| for running the commands, it can
+ be specified: >
+ let g:cargo_shell_command_runner = '!'
+<
+
+
+Integration with Syntastic *rust-syntastic*
+--------------------------
+
+This plugin automatically integrates with the Syntastic checker. There are two
+checkers provided: 'rustc', and 'cargo'. The latter invokes 'Cargo' in order to
+build code, and the former delivers a single edited '.rs' file as a compilation
+target directly to the Rust compiler, `rustc`.
+
+Because Cargo is almost exclusively being used for building Rust code these
+days, 'cargo' is the default checker. >
+
+ let g:syntastic_rust_checkers = ['cargo']
+<
+If you would like to change it, you can set `g:syntastic_rust_checkers` to a
+different value.
+ *g:rust_cargo_avoid_whole_workspace*
+ *b:rust_cargo_avoid_whole_workspace*
+g:rust_cargo_avoid_whole_workspace~
+ When editing a crate that is part of a Cargo workspace, and this
+ option is set to 1 (the default), then 'cargo' will be executed
+ directly in that crate directory instead of in the workspace
+ directory. Setting 0 prevents this behavior - however be aware that if
+ you are working in large workspace, Cargo commands may take more time,
+ plus the Syntastic error list may include all the crates in the
+ workspace. >
+ let g:rust_cargo_avoid_whole_workspace = 0
+<
+ *g:rust_cargo_check_all_targets*
+ *b:rust_cargo_check_all_targets*
+g:rust_cargo_check_all_targets~
+ When set to 1, the `--all-targets` option will be passed to cargo when
+ Syntastic executes it, allowing the linting of all targets under the
+ package.
+ The default is 0.
+
+ *g:rust_cargo_check_all_features*
+ *b:rust_cargo_check_all_features*
+g:rust_cargo_check_all_features~
+ When set to 1, the `--all-features` option will be passed to cargo when
+ Syntastic executes it, allowing the linting of all features of the
+ package.
+ The default is 0.
+
+ *g:rust_cargo_check_examples*
+ *b:rust_cargo_check_examples*
+g:rust_cargo_check_examples~
+ When set to 1, the `--examples` option will be passed to cargo when
+ Syntastic executes it, to prevent the exclusion of examples from
+ linting. The examples are normally under the `examples/` directory of
+ the crate.
+ The default is 0.
+
+ *g:rust_cargo_check_tests*
+ *b:rust_cargo_check_tests*
+g:rust_cargo_check_tests~
+ When set to 1, the `--tests` option will be passed to cargo when
+ Syntastic executes it, to prevent the exclusion of tests from linting.
+ The tests are normally under the `tests/` directory of the crate.
+ The default is 0.
+
+ *g:rust_cargo_check_benches*
+ *b:rust_cargo_check_benches*
+g:rust_cargo_check_benches~
+ When set to 1, the `--benches` option will be passed to cargo when
+ Syntastic executes it. The benches are normally under the `benches/`
+ directory of the crate.
+ The default is 0.
+
+Integration with auto-pairs *rust-auto-pairs*
+---------------------------
+
+This plugin automatically configures the auto-pairs plugin not to duplicate
+single quotes, which are used more often for lifetime annotations than for
+single character literals.
+
+ *g:rust_keep_autopairs_default*
+g:rust_keep_autopairs_default~
+
+ Don't override auto-pairs default for the Rust filetype. The default
+ is 0.
+
+==============================================================================
+COMMANDS *rust-commands*
+
+Invoking Cargo
+--------------
+
+This plug defines very simple shortcuts for invoking Cargo from with Vim.
+
+:Cargo <args> *:Cargo*
+ Runs 'cargo' with the provided arguments.
+
+:Cbuild <args> *:Cbuild*
+ Shortcut for 'cargo build`.
+
+:Cclean <args> *:Cclean*
+ Shortcut for 'cargo clean`.
+
+:Cdoc <args> *:Cdoc*
+ Shortcut for 'cargo doc`.
+
+:Cinit <args> *:Cinit*
+ Shortcut for 'cargo init`.
+
+:Crun <args> *:Crun*
+ Shortcut for 'cargo run`.
+
+:Ctest <args> *:Ctest*
+ Shortcut for 'cargo test`.
+
+:Cupdate <args> *:Cupdate*
+ Shortcut for 'cargo update`.
+
+:Cbench <args> *:Cbench*
+ Shortcut for 'cargo bench`.
+
+:Csearch <args> *:Csearch*
+ Shortcut for 'cargo search`.
+
+:Cpublish <args> *:Cpublish*
+ Shortcut for 'cargo publish`.
+
+:Cinstall <args> *:Cinstall*
+ Shortcut for 'cargo install`.
+
+:Cruntarget <args> *:Cruntarget*
+ Shortcut for 'cargo run --bin' or 'cargo run --example',
+ depending on the currently open buffer.
+
+Formatting
+----------
+
+:RustFmt *:RustFmt*
+ Runs |g:rustfmt_command| on the current buffer. If
+ |g:rustfmt_options| is set then those will be passed to the
+ executable.
+
+ If |g:rustfmt_fail_silently| is 0 (the default) then it
+ will populate the |location-list| with the errors from
+ |g:rustfmt_command|. If |g:rustfmt_fail_silently| is set to 1
+ then it will not populate the |location-list|.
+
+:RustFmtRange *:RustFmtRange*
+ Runs |g:rustfmt_command| with selected range. See
+ |:RustFmt| for any other information.
+
+
+Playpen integration
+-------------------
+
+:RustPlay *:RustPlay*
+ This command will only work if you have web-api.vim installed
+ (available at https://github.com/mattn/webapi-vim). It sends the
+ current selection, or if nothing is selected, the entirety of the
+ current buffer to the Rust playpen, and emits a message with the
+ shortened URL to the playpen.
+
+ |g:rust_playpen_url| is the base URL to the playpen, by default
+ "https://play.rust-lang.org/".
+
+ |g:rust_shortener_url| is the base url for the shorterner, by
+ default "https://is.gd/"
+
+ |g:rust_clip_command| is the command to run to copy the
+ playpen url to the clipboard of your system.
+
+
+Evaluation of a single Rust file
+--------------------------------
+
+NOTE: These commands are useful only when working with standalone Rust files,
+which is usually not the case for common Rust development. If you wish to
+building Rust crates from with Vim can should use Vim's make, Syntastic, or
+functionality from other plugins.
+
+
+:RustRun [args] *:RustRun*
+:RustRun! [rustc-args] [--] [args]
+ Compiles and runs the current file. If it has unsaved changes,
+ it will be saved first using |:update|. If the current file is
+ an unnamed buffer, it will be written to a temporary file
+ first. The compiled binary is always placed in a temporary
+ directory, but is run from the current directory.
+
+ The arguments given to |:RustRun| will be passed to the
+ compiled binary.
+
+ If ! is specified, the arguments are passed to rustc instead.
+ A "--" argument will separate the rustc arguments from the
+ arguments passed to the binary.
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustExpand [args] *:RustExpand*
+:RustExpand! [TYPE] [args]
+ Expands the current file using --pretty and displays the
+ results in a new split. If the current file has unsaved
+ changes, it will be saved first using |:update|. If the
+ current file is an unnamed buffer, it will be written to a
+ temporary file first.
+
+ The arguments given to |:RustExpand| will be passed to rustc.
+ This is largely intended for specifying various --cfg
+ configurations.
+
+ If ! is specified, the first argument is the expansion type to
+ pass to rustc --pretty. Otherwise it will default to
+ "expanded".
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustEmitIr [args] *:RustEmitIr*
+ Compiles the current file to LLVM IR and displays the results
+ in a new split. If the current file has unsaved changes, it
+ will be saved first using |:update|. If the current file is an
+ unnamed buffer, it will be written to a temporary file first.
+
+ The arguments given to |:RustEmitIr| will be passed to rustc.
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustEmitAsm [args] *:RustEmitAsm*
+ Compiles the current file to assembly and displays the results
+ in a new split. If the current file has unsaved changes, it
+ will be saved first using |:update|. If the current file is an
+ unnamed buffer, it will be written to a temporary file first.
+
+ The arguments given to |:RustEmitAsm| will be passed to rustc.
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+
+Running test(s)
+---------------
+
+:[N]RustTest[!] [options] *:RustTest*
+ Runs a test under the cursor when the current buffer is in a
+ cargo project with "cargo test" command. If the command did
+ not find any test function under the cursor, it stops with an
+ error message.
+
+ When N is given, adjust the size of the new window to N lines
+ or columns.
+
+ When ! is given, runs all tests regardless of current cursor
+ position.
+
+ When [options] is given, it is passed to "cargo" command
+ arguments.
+
+ When the current buffer is outside cargo project, the command
+ runs "rustc --test" command instead of "cargo test" as
+ fallback. All tests are run regardless of adding ! since there
+ is no way to run specific test function with rustc. [options]
+ is passed to "rustc" command arguments in the case.
+
+ Takes optional modifiers (see |<mods>|): >
+ :tab RustTest
+ :belowright 16RustTest
+ :leftabove vert 80RustTest
+<
+rust.vim Debugging
+------------------
+
+:RustInfo *:RustInfo*
+ Emits debugging info of the Vim Rust plugin.
+
+:RustInfoToClipboard *:RustInfoClipboard*
+ Saves debugging info of the Vim Rust plugin to the default
+ register.
+
+:RustInfoToFile [filename] *:RustInfoToFile*
+ Saves debugging info of the Vim Rust plugin to the the given
+ file, overwritting it.
+
+==============================================================================
+MAPPINGS *rust-mappings*
+
+This plugin defines mappings for |[[| and |]]| to support hanging indents.
+
+==============================================================================
+ vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
+
+endif
diff --git a/doc/scala.txt b/doc/scala.txt
new file mode 100644
index 00000000..b9fe2cf7
--- /dev/null
+++ b/doc/scala.txt
@@ -0,0 +1,137 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'scala') == -1
+
+*scala.txt* Syntax highlighting and helper functions for the Scala language.
+
+This plugin is only available if 'compatible' is not set.
+{Vi does not have any of this}
+
+==============================================================================
+INTRODUCTION *scala*
+
+Syntax highlighting and helper functions for the scala language. Extras
+include:
+
+ - Sorting of import statements, configurable to your conventions.
+ - Tagbar support to navigate definitions within a file in the plugin's
+ sidebar window.
+ - ...and probably more that we've forgotten to update in this doc.
+
+==============================================================================
+OPTIONS *scala-options*
+
+Use these options to control behavior of the plugin. Default values are
+indicated in the examples.
+
+ *'g:scala_use_builtin_tagbar_defs'*
+If you are using the Tagbar Vim plugin, vim-scala includes a Tagbar type
+definition and ctags definition for Scala, so you can use Tagbar immediately.
+If you have your own ctags definition in `~/.ctags` and prefer to use it, set
+this option to 0 (we would appreciate contributions if you've improved the
+ctags definition!).
+
+Note that Tagbar's ctags definition for Scala is not used to generate a
+|tags| file that Vim can use to navigate to definitions in other files, only
+for the plugin sidebar. Feel free to copy `vim-scala/ctags/scala.ctags` into
+your own `~/.ctags` if you wish to generate |tags| files.
+>
+ let g:scala_use_builtin_tagbar_defs = 1
+<
+ *'g:scala_use_default_keymappings'*
+Set this option to disable definition of all mappings provided by vim-scala.
+See |scala-mappings|.
+>
+ let g:scala_use_default_keymappings = 1
+<
+
+ *'g:scala_scaladoc_indent'*
+By default, the plugin indents documentation comments according to the
+standard Javadoc format.
+ /**
+ * This is a doc comment using Javadoc-style indentation.
+ */
+Set this option to enable the indentation standard as recommended for Scaladoc
+comments.
+ /** This is a Scaladoc comment using
+ * the recommended indentation.
+ */
+>
+ let g:scala_scaladoc_indent = 1
+<
+
+==============================================================================
+COMMANDS *scala-commands*
+
+ *:SortScalaImports*
+:SortScalaImports There are two modes in which this command can operate.
+ By default it walks all import groups at the top of
+ the Scala file and orders their lines alphabetically.
+ A group is a series of lines starting with the
+ import keyword separated by one or more blank lines.
+
+ The second, more advanced mode, can be activated by
+ setting
+
+ let g:scala_sort_across_groups=1
+
+ This makes this command include all imports in the
+ sorting regardless of blank lines in between them and
+ puts them in three predefined groups instead.
+ The three groups in which the imports can fall are:
+
+ 1. Scala and Java core
+ 2. Third party libraries
+ 3. First party code (ie. your own)
+
+ Java and Scala core imports are identified by the
+ java(x) and scala namespaces.
+ Everything else that isn't a first party namespace
+ will be a third party import.
+ You can define a regex that matches first party
+ namespaces by setting
+
+ g:scala_first_party_namespaces
+
+ For example in a standard Play app this would be
+ set to
+ g:scala_first_party_namespaces=
+ \ '\(controllers\|views\|models\)'
+
+==============================================================================
+MAPPINGS *scala-mappings*
+
+Currently the only mappings defined are for FuzzyFinder users--these will
+only be enabled if FuzzyFinder is detected.
+
+ *scala-leader-fs*
+<Leader>fs "Find src". Primes |:FufFile| with `src/main/scala`,
+ and goes deeper still if only a single directory
+ exists below that. Helpful for package namespacing
+ like `src/main/scala/com/myorg`.
+
+ *scala-leader-ft*
+<Leader>ft "Find test". Like |scala-leader-fs|, but with
+ `src/test/scala`.
+
+ *scala-leader-fr*
+<Leader>fr "Find from root". For the rarer cases when you want to
+ start FuzzyFinder at project root (parent of `src/`).
+
+Disabling Mappings~
+
+If you wish to disable the default key mappings, write the following line in
+your ~/.vimrc: >
+
+ let g:scala_use_default_keymappings = 0
+
+==============================================================================
+CREDITS *scala-credits*
+
+Developed by Derek Wyatt, building on initial work by Stefan Matthias Aust.
+Distributed under the Apache 2 license.
+
+Project's home and Git repository: https://github.com/derekwyatt/vim-scala
+
+------------------------------------------------------------------------------
+ vim:tw=78:ts=8:ft=help:norl:
+
+endif
diff --git a/doc/terraform.txt b/doc/terraform.txt
new file mode 100644
index 00000000..b609f584
--- /dev/null
+++ b/doc/terraform.txt
@@ -0,0 +1,18 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'terraform') == -1
+
+*terraform.txt* basic vim/terraform integration
+
+Author: HashiVim <https://github.com/hashivim>
+License: ISC license
+Repo: https://github.com/hashivim/vim-terraform
+
+COMMANDS *terraform*
+
+This command is only available if terraform is in your PATH.
+
+ *terraform-:terraform*
+:Terraform [args] Invoke an arbitrary terraform command.
+
+ vim:tw=78:et:ft=help:norl:
+
+endif
diff --git a/doc/textile.txt b/doc/textile.txt
new file mode 100644
index 00000000..2b28186a
--- /dev/null
+++ b/doc/textile.txt
@@ -0,0 +1,70 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'textile') == -1
+
+*textile.txt* Textile for Vim Last Change: November 3, 2008
+
+==============================================================================
+REQUIREMENTS *textile-requirements*
+
+- ruby - http://ruby-lang.org/ (seperate executable, not compiled in)
+- RedCloth - http://redcloth.org/
+
+Files with the extension *.textile will auto-detected. If editing a new file,
+or otherwise, run ":setf textile" to enable textile commands.
+
+
+==============================================================================
+CHANGELOG *textile-changelog*
+
+0.3 - Fixed keymappings in the documentation
+0.2 - Added multiple colors for headers, and alternating colors for list
+ items
+ - Fixed error in the vim script for TextileRenderBufferToFile
+ - Changed shortcut keys from \tp to \rp (render preview instead of
+ textile preview, since it's file-type specific anyways)
+0.1 - Initial Release
+
+==============================================================================
+COMMANDS *textile-commands*
+
+:TextilePreview - Render the current buffer to a temp file, and open it in
+ your web browser (OSX only)
+
+ <Leader>rp
+
+:TextileRenderTab - ... to a new tab
+
+ <Leader>rt
+
+:TextileRenderFile - ... to a file
+
+ <Leader>rf
+
+<Leader> is \ by default, so <Leader>rp == \rp
+
+==============================================================================
+CONFIG *textile-config*
+
+MAC OS X:
+
+ Optional:
+ let g:TextileBrowser="Google Chrome" - Open preview in "Google Chrome"
+ rather than Safari (optional)
+
+Other:
+
+ Mandatory:
+ let g:TextileOS="Linux"
+ let g:TextileBrowser="/path/to/browser_bin"
+
+
+==============================================================================
+CREDITS *textile-credits*
+
+- "Dominic Mitchell":http://happygiraffe.net/: initial syntax highlighting
+- "Aaron Bieber":http://blog.aaronbieber.com/: improved syntax highlighting
+- "Tim Harper":http://tim.theenchanter.com/ : improved syntax highlighting,
+ plugin
+
+vim:tw=78:noet:wrap:ts=2:expandtab:ft=help:norl:
+
+endif
diff --git a/doc/vim-fsharp.txt b/doc/vim-fsharp.txt
new file mode 100644
index 00000000..bc2a4657
--- /dev/null
+++ b/doc/vim-fsharp.txt
@@ -0,0 +1,210 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fsharp') == -1
+
+*vim-fsharp.txt* F# support for Vim
+*FSharp* *F#* *fsharp* *vim-fsharp*
+===============================================================================
+# #
+# ███████╗███████╗██╗ ██╗ █████╗ ██████╗ ██████╗ #
+# ██╔════╝██╔════╝██║ ██║██╔══██╗██╔══██╗██╔══██╗ #
+# █████╗ ███████╗███████║███████║██████╔╝██████╔╝ #
+# ██╔══╝ ╚════██║██╔══██║██╔══██║██╔══██╗██╔═══╝ #
+# ██║ ███████║██║ ██║██║ ██║██║ ██║██║ #
+# ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ #
+# #
+===============================================================================
+CONTENTS *fsharp-contents*
+
+ 1. Dependencies.................................|fsharp-dependencies|
+ 2. Usage........................................|fsharp-usage|
+ 3. Options......................................|fsharp-options|
+ 4. Commands.....................................|fsharp-commands|
+ 5. Mappings.....................................|fsharp-mappings|
+ 6. Credits......................................|fsharp-credits|
+
+===============================================================================
+DEPENDENCIES *fsharp-dependencies*
+
+Required:~
+ - Vim 7.3 or higher with Python 2 or 3 support
+ - Mono OR .NET Framework
+ - F#
+
+Optional:~
+ - Syntastic plugin (for syntax and type checking)
+ NOTE: Must be enabled (see |'g:syntastic_fsharp_checkers'|)
+
+===============================================================================
+USAGE *fsharp-usage*
+
+Syntax highlighting and linting will trigger upon opening a `*.fs`, `*.fsi`,
+or `*.fsx` file. Using omni completion will begin the fsautocomplete process.
+
+Suggestion: Install a completer such as NeoComplete or SuperTab
+
+===============================================================================
+OPTIONS *fsharp-options*
+
+ *'g:syntastic_fsharp_checkers'*
+Use this option to enable syntastic integration >
+ let g:syntastic_fsharp_checkers=['syntax']
+<
+ *'g:fsharp_only_check_errors_on_write'*
+Use this option to disable "on the fly" syntax checking >
+ let g:fsharp_only_check_errors_on_write = 1
+<
+ *'g:fsharpbinding_debug'*
+Use this option to enable debug-mode and inspect fsautocomplete behavior: >
+ let g:fsharpbinding_debug = 1
+<
+This will create two log files `log.txt` and `log2.txt` in your temporary folder
+(i.e. `/tmp/`)
+
+ *'g:fsharp_xbuild_path'*
+Use this option set the msbuild/xbuild path >
+ let g:fsharp_xbuild_path = "/path/to/xbuild/or/msbuild"
+<
+
+ *'g:fsharp_test_runner'*
+Use this option to point to a suitable test runner (such as nunit-console.exe) >
+ let g:fsharp_test_runner = "/path/to/test/runner"
+<
+
+ *'g:fsharp_completion_helptext'*
+Use this option to disable helptext during auto completion. Turn off if
+completion is too slow >
+ let g:fsharp_completion_helptext = 0
+<
+
+ *'g:fsharp_map_keys'*
+Use this option to disable default bindings >
+ let g:fsharp_map_keys = 0
+<
+
+ *'g:fsharp_map_prefix'*
+Use this option to override the default prefix of `<leader>` >
+ let g:fsharp_map_prefix = 'cp'
+<
+Set to `cp` in this example
+
+ *'g:fsharp_map_fsisendline'*
+Use this option to override the default mapping to send the current line to
+fsharp interactive >
+ let g:fsharp_map_fsisendline = 'p'
+<
+Set to `p` in this example
+
+ *'g:fsharp_map_fsisendsel'*
+Use this option to override the default mapping to send the current selection
+to fsharp interactive >
+ let g:fsharp_map_fsisendsel = 'p'
+<
+Set to `p` in this example
+
+ *'g:fsharp_map_gotodecl'*
+Use this option to override the default mapping to go to declaration in the
+current window >
+ let g:fsharp_map_gotodecl = 'g'
+<
+Set to `g` in this example
+
+ *'g:fsharp_map_gobackfromdecl'*
+Use this option to override the default mapping to go back to where go to
+declaration was triggered >
+ let g:fsharp_map_gobackfromdecl = 'b'
+<
+Set to `b` in this example
+
+ *'g:fsharp_map_fsiinput'*
+Override the default mapping to evaluate an fsharp expression in the fsi >
+ let g:fsharp_map_fsiinput = 'i'
+<
+
+===============================================================================
+COMMANDS *fsharp-commands*
+
+General commands:~
+ *:make*
+:make
+ Calls xbuild on the fsproj for the current file (if any).
+
+ *:FSharpParseProject*
+:FSharpParseProject
+ Reparses all the project files and dependencies (this is done automatically
+ when opening a .fs or .fsi file).
+
+ *:FSharpBuildProject*
+:FSharpBuildProject
+ Calls xbuild on the fsproj for the current file (if any). Can also take a
+ path to the proj file to build.
+
+ *:FSharpRunProject*
+:FSharpRunProject
+ Runs the project for the current file (if any).
+
+ *:FSharpRunTests*
+:FSharpRunTests
+ If `g:fsharp_test_runner` is set it will build the current project and run
+ any tests. (Currently only tested with nunit-console.exe)
+
+ *:FSharpToggleHelptext*
+:FSharpToggleHelptext
+ toggles g:fsharp_completion_helptext. (See below for details)
+
+FSharp interaction commands:~
+
+ `:FsiEval`
+:FsiEval
+ Evaluates an fsharp expression in the fsi
+
+ `:FsiEvalBuffer`
+:FsiEvalBuffer
+ Evaluates the entire buffer in the fsi
+
+ `:FsiReset`
+:FsiReset
+ Resets the current fsharp interactive
+
+ `:FsiRead`
+:FsiRead
+ Outputs any lines written by the fsi but not yet output as vim messages
+
+ `:FsiClear`
+:FsiClear
+ Deletes all text from the fsi output buffer but doesn't reset the fsi
+ session.
+
+ `:FsiShow`
+:FsiShow
+ Opens the _fsi-out_ buffer in a split window
+
+===============================================================================
+MAPPINGS *fsharp-mappings*
+
+General:~
+
+ <leader>t
+ Echoes the type of the expression currently pointed to by the cursor
+ <leader>d
+ Go to declaration in current window
+ <leader>s
+ Takes you back from where go to declaration was triggered. Experimental
+
+FSharp Interactive:~
+ <A-CR> OR
+ <leader>i
+ Send either the current selection or the current line to the fsharp
+ interactive and echoes the output the first line of the output. All
+ output will be written to the fsi-out buffer.
+
+===============================================================================
+CREDITS *fsharp-credits*
+
+Syntax and indent files by kongo2002 <github.com/kongo2002>:
+ http://github.com/kongo2002/fsharp-vim
+
+Adapted from Tim Robinson <github.com/timrobinson>:
+ http://github.com/timrobinson/fsharp-vim
+>
+===============================================================================
+
+endif
diff --git a/doc/vim-go.txt b/doc/vim-go.txt
new file mode 100644
index 00000000..480b4848
--- /dev/null
+++ b/doc/vim-go.txt
@@ -0,0 +1,2706 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'go') == -1
+
+*vim-go.txt* Go development plugin
+*vim-go*
+
+==============================================================================
+# #
+# ## ## #### ## ## ###### ####### #
+# ## ## ## ### ### ## ## ## ## #
+# ## ## ## #### #### ## ## ## #
+# ## ## ## ## ### ## ####### ## #### ## ## #
+# ## ## ## ## ## ## ## ## ## #
+# ## ## ## ## ## ## ## ## ## #
+# ### #### ## ## ###### ####### #
+# #
+==============================================================================
+CONTENTS *go-contents*
+
+ 1. Intro........................................|go-intro|
+ 2. Install......................................|go-install|
+ 3. Commands.....................................|go-commands|
+ 4. Mappings.....................................|go-mappings|
+ 5. Text Objects.................................|go-text-objects|
+ 6. Functions....................................|go-functions|
+ 7. Settings.....................................|go-settings|
+ 8. Syntax highlighting..........................|go-syntax|
+ 9. Debugger.....................................|go-debug|
+ 10. FAQ/Troubleshooting..........................|go-troubleshooting|
+ 11. Development..................................|go-development|
+ 12. Donation.....................................|go-donation|
+ 13. Credits......................................|go-credits|
+
+==============================================================================
+INTRO *go-intro*
+
+Go (golang) support for Vim. vim-go comes with sensible predefined settings
+(e.g. automatic `gofmt` on save), has code completion, snippet support,
+improved syntax highlighting, go toolchain commands, etc. It is highly
+customizable, and individual features can be toggled easily. vim-go leverages
+a number of tools developed by the Go community to provide a seamless Vim
+experience.
+
+ * Compile your package with |:GoBuild|, install it with |:GoInstall| or
+ test it with |:GoTest|. Run a single test with |:GoTestFunc|).
+ * Quickly execute your current file(s) with |:GoRun|.
+ * Improved syntax highlighting and folding.
+ * Debug programs with integrated `delve` support with |:GoDebugStart|.
+ * Code completion support via `gocode` and `gopls`.
+ * `gofmt` or `goimports` on save keeps the cursor position and undo history.
+ * Go to symbol/declaration with |:GoDef|.
+ * Look up documentation with |:GoDoc| or |:GoDocBrowser|.
+ * Easily import packages via |:GoImport|, remove them via |:GoDrop|.
+ * Precise type-safe renaming of identifiers with |:GoRename|.
+ * See which code is covered by tests with |:GoCoverage|.
+ * Add or remove tags on struct fields with |:GoAddTags| and |:GoRemoveTags|.
+ * Call `golangci-lint` with |:GoMetaLinter| to invoke all possible linters
+ (`golint`, `vet`, `errcheck`, `deadcode`, etc.) and put the result in the
+ quickfix or location list.
+ * Lint your code with |:GoLint|, run your code through |:GoVet| to catch
+ static errors, or make sure errors are checked with |:GoErrCheck|.
+ * Advanced source analysis tools utilizing `guru`, such as |:GoImplements|,
+ |:GoCallees|, and |:GoReferrers|.
+ * Automatic `GOPATH` detection which works with `gb` and `godep`. Change or
+ display `GOPATH` with |:GoPath|.
+ * Integrated and improved snippets, supporting `ultisnips`, `neosnippet`,
+ and `vim-minisnip`.
+ * Share your current code to play.golang.org with |:GoPlay|.
+ * On-the-fly information about the word under the cursor. Plug it into your
+ custom Vim function.
+ * Text objects such as "a function" (|go-af|) or "inner function" (|go-if|).
+ * Most commands are run asynchronous in Neovim and Vim 8. Fully async
+ building and testing.
+ * Integrated with the Neovim terminal, launch |:GoRun| and other Go commands
+ in a terminal buffer.
+ * Switch between `file.go` and `file_test.go` code with |:GoAlternate|.
+ * Supports integration with the Tagbar and ctrlp.vim plugins.
+ * ...and more...
+
+==============================================================================
+INSTALL *go-install*
+
+vim-go requires at least Vim 8.0.1453 or Neovim 0.4.0. On macOS, if you are
+still using your system version of vim, you can use homebrew to keep your
+version of Vim up-to-date with the following terminal command:
+>
+ brew install vim
+
+The latest stable release, https://github.com/fatih/vim-go/releases/latest, is
+the recommended version to use. If you choose to use the master branch
+instead, please do so with caution; it is a _development_ branch.
+
+vim-go follows the standard runtime path structure and should work with any of
+the major plugin managers.
+
+For Pathogen or Vim |packages|, just clone the repo. For other plugin managers
+you may also need to add the lines to your vimrc to execute the plugin
+manager's install command.
+
+* Vim 8 |packages| >
+
+ git clone https://github.com/fatih/vim-go.git \
+ ~/.vim/pack/plugins/start/vim-go
+<
+* https://github.com/tpope/vim-pathogen >
+
+ git clone https://github.com/fatih/vim-go.git ~/.vim/bundle/vim-go
+<
+* https://github.com/junegunn/vim-plug >
+
+ Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
+<
+* https://github.com/Shougo/neobundle.vim >
+
+ NeoBundle 'fatih/vim-go'
+<
+* https://github.com/gmarik/vundle >
+
+ Plugin 'fatih/vim-go'
+<
+* Manual (not recommended) >
+
+ Copy all of the files into your `~/.vim` directory
+<
+
+You will also need to install all the necessary binaries. vim-go makes it easy
+to install all of them by providing a command, |:GoInstallBinaries|, to
+`go get` all the required binaries. The binaries will be installed to $GOBIN
+or $GOPATH/bin (default: $HOME/go/bin). It requires `git`.
+
+Depending on your installation method, you may have to generate the plugin's
+|:helptags| manually (e.g. `:helptags ALL`).
+
+Code completion is enabled by default via 'omnifunc', which you can trigger
+with |i_CTRL-X_CTRL-O| (`<C-x><C-o>`).
+
+Supported Go plugins~ *vim-go-plugins*
+
+The following plugins are supported for use with vim-go:
+
+* Real-time completion (Vim):
+ https://github.com/Shougo/neocomplete.vim
+
+* Real-time completion (Neovim and Vim 8):
+ https://github.com/Shougo/deoplete.nvim
+
+ Add the following line to your vimrc. This instructs deoplete to use omni
+ completion for Go files.
+
+ call deoplete#custom#option('omni_patterns', { 'go': '[^. *\t]\.\w*' })
+
+* Display source code navigation in a sidebar:
+ https://github.com/majutsushi/tagbar
+
+* Snippets:
+ https://github.com/Shougo/neosnippet.vim or
+ https://github.com/SirVer/ultisnips or
+ https://github.com/joereynolds/vim-minisnip
+
+* Interactive |:GoDecls| and |:GoDeclsDir|:
+ https://github.com/ctrlpvim/ctrlp.vim or
+ https://github.com/junegunn/fzf.vim or
+ https://github.com/Shougo/unite.vim or
+ https://github.com/Shougo/denite.nvim
+
+==============================================================================
+COMMANDS *go-commands*
+
+ *:GoReportGitHubIssue*
+:GoReportGitHubIssue
+ GoReportGitHubIssue opens the default browser and starts a new bug report
+ with useful system information.
+
+ *:GoPath*
+:GoPath [path]
+
+ GoPath sets and overrides GOPATH with the given {path}. If no {path} is
+ given it shows the current GOPATH. If `""` is given as path, it clears
+ current `GOPATH` which was set with |:GoPath| and restores `GOPATH` back
+ to the initial value which was sourced when Vim was started.
+
+ *:GoImport*
+:GoImport[!] [path]
+
+ Import ensures that the provided package {path} is imported in the current
+ Go buffer, using proper style and ordering. If {path} is already being
+ imported, an error will be displayed and the buffer will be untouched.
+
+ If [!] is given it will download the package with `go get`
+
+ *:GoImportAs*
+:GoImportAs [localname] [path]
+
+ Same as Import, but uses a custom local name for the package.
+
+ *:GoDrop*
+:GoDrop [path]
+
+ Remove the import line for the provided package {path}, if present in the
+ current Go buffer. If {path} is not being imported, an error will be
+ displayed and the buffer will be untouched.
+
+ *:GoLint*
+:GoLint! [packages]
+
+ Run golint for the directory under your current file, or for the given
+ packages.
+
+ If [!] is not given the first error is jumped to.
+
+ *:GoDoc*
+:GoDoc [word]
+
+ Open the relevant GoDoc in split window for either the word[s] passed to
+ the command or by default, the word under the cursor.
+
+ *:GoDocBrowser*
+:GoDocBrowser [word]
+
+ Open the relevant GoDoc in browser for either the word[s] passed to the
+ command or by default, the word under the cursor. By default it opens the
+ documentation in 'https://pkg.go.dev'. To change it see |'g:go_doc_url'|.
+
+ *:GoFmt*
+:GoFmt
+
+ Filter the current Go buffer through gofmt. It tries to preserve cursor
+ position and avoids replacing the buffer with stderr output.
+
+ *:GoImports*
+:GoImports
+
+ Filter the current Go buffer through goimports (needs to be installed).
+ `goimports` automatically discards/add import path based on the code. Like
+ |:GoFmt|, It tries to preserve cursor position and avoids replacing the
+ buffer with stderr output.
+
+ *:GoPlay*
+:[range]GoPlay
+
+ Share snippet to play.golang.org. If no [range] is given it shares
+ the whole file, otherwise the selected lines are shared. Snippet URL
+ is copied to system clipboard if Vim is compiled with 'clipboard' or
+ 'xterm-clipboard' otherwise it's get yanked into the `""` register.
+
+ *:GoVet*
+:GoVet[!] [options]
+
+ Run `go vet` for the directory under your current file. Vet examines Go
+ source code and reports suspicious constructs, such as Printf calls whose
+ arguments do not align with the format string. Vet uses heuristics that do
+ not guarantee all reports are genuine problems, but it can find errors not
+ caught by the compilers.
+
+ You may optionally pass any valid go vet flags/options.
+
+ If [!] is not given the first error is jumped to.
+
+ *:GoDef*
+:GoDef
+gd
+CTRL-]
+g<C-LeftMouse>
+<C-LeftMouse>
+
+ Go to declaration/definition for the identifier under the cursor. By
+ default the CTRL-] shortcut, the mapping `gd` and <C-LeftMouse>,
+ g<LeftMouse> are enabled to invoke :GoDef for the identifier under the
+ cursor. See |'g:go_def_mapping_enabled'| to disable them. No explicit
+ arguments are supported.
+
+ vim-go also keeps a per-window location stack, roughly analogous to how
+ Vim's internal |tags| functionality works. This is pushed to every time a
+ jump is made using the GoDef functionality. In essence, this is a LIFO
+ list of file locations you have visited with :GoDef that is retained to
+ help you navigate software.
+
+ The per-window location stack is shared with |:GoDefType|.
+
+ *:GoDefType*
+:GoDefType
+
+ Go to type definition for the identifier under the cursor.
+
+ The per-window location stack is shared with |:GoDef|.
+ *:GoDefStack*
+:GoDefStack [number]
+
+ This command Jumps to a given location in the jumpstack, retaining all
+ other entries. Jumps to non-existent entries will print an informative
+ message, but are otherwise a noop.
+
+ If no argument is given, it will print out an interactive list of all
+ items in the stack. Its output looks like this:
+
+ 1 /path/first/file.go|1187 col 16|AddThing func(t *Thing)
+ > 2 /path/thing/thing.go|624 col 19|String() string
+ 3 /path/thing/thing.go|744 col 6|func Sprintln(a ...interface{}) string
+
+ This list shows the identifiers that you jumped to and the file and cursor
+ position before that jump. The older jumps are at the top, the newer at
+ the bottom.
+
+ The '>' points to the active entry. This entry and any newer entries
+ below it will be replaced if |:GoDef| is done from this location. The
+ CTRL-t and |:GoDefPop| command will jump to the position above the active
+ entry.
+
+ Jumps to non-existent entries will print an informative message, but are
+ otherwise a noop.
+
+ *:GoDefStackClear*
+:GoDefStackClear
+
+ Clears the current stack list and resets it.
+
+ *:GoDefPop*
+:GoDefPop [count]
+CTRL-t
+
+ Navigate to the [count] earlier entry in the jump stack, retaining the
+ newer entries. If no argument is given, it will jump to the next most
+ recent entry (`:GoDefPop 1`). If [count] is greater than the number of
+ prior entries, an error will be printed and no jump will be performed.
+
+ If you have used :GoDefPop to jump to an earlier location, and you issue
+ another :GoDef command, the current entry will be replaced, and all newer
+ entries will be removed, effectively resuming the stack at that location.
+
+ By default [count]CTRL-t is enabled to invoke :GoDefPop. Similarly,
+ hitting CTRL-t without a prior count is equivalent to `:GoDefPop 1`. See
+ |'g:go_def_mapping_enabled'| to disable this.
+
+ *:GoRun*
+:GoRun[!] [expand]
+
+ Build and run your current main package. By default all main files for the
+ current file is used. If an argument is passed, [expand] is used as file
+ selector. For example use `:GoRun %` to select the current file only.
+
+ You may optionally pass any valid go run flags/options. For a full list
+ please see `go help run`.
+
+ If [!] is not given the first error is jumped to.
+
+ If using neovim then `:GoRun` will run in a new terminal according to
+ |'g:go_term_mode'|.
+
+ The working directory will be the directory containing the current buffer.
+
+
+ *:GoBuild*
+:GoBuild[!] [expand]
+
+ Build your package with `go build`. Errors are populated in the quickfix
+ window. It automatically builds only the files that depends on the current
+ file. `:GoBuild` doesn't produce a result file.
+ Use |:make| to create a result file.
+
+ You may optionally pass any valid go build flags/options. For a full list
+ please see `go help build`. Options are expanded with [expand].
+
+ If [!] is not given the first error is jumped to.
+
+ If using neovim then this command is fully async, it does not block the
+ UI.
+
+ *:GoGenerate*
+:GoGenerate[!] [expand]
+
+ Creates or updates your auto-generated source files by running `go
+ generate`.
+
+ You may optionally pass any valid go generate flags/options. For a full
+ list please see `go help generate`. Options are expanded with [expand].
+
+ If [!] is not given the first error is jumped to.
+
+ *:GoInfo*
+:GoInfo
+ Show type information about the identifier under the cursor. For example
+ putting it above a function call is going to show the full function
+ signature. By default it uses `gopls` to get the type informations. To
+ change the underlying tool from `gopls` to another tool, see
+ |'g:go_info_mode'|.
+
+
+ *:GoInstall*
+:GoInstall[!] [options]
+
+ Install your package with `go install`.
+
+ You may optionally pass any valid go install flags/options. For a full
+ list please see `go help install`.
+
+ If [!] is not given the first error is jumped to.
+
+ *:GoTest*
+:GoTest[!] [expand]
+
+ Run the tests on your _test.go files via in your current directory. Errors
+ are populated in the quickfix window. If an argument is passed, [expand]
+ is used as file selector (useful for cases like `:GoTest ./...`).
+
+ You may optionally pass any valid go test flags/options. For a full list
+ please see `go help test`.
+
+ GoTest times out automatically after 10 seconds. To customize the timeout
+ use |'g:go_test_timeout'|. This feature is disabled if any arguments are
+ passed to the `:GoTest` command.
+
+ If [!] is not given the first error is jumped to.
+
+ If using neovim `:GoTest` will run in a new terminal or run asynchronously
+ in the background according to |'g:go_term_enabled'|. You can set the mode
+ of the new terminal with |'g:go_term_mode'|.
+
+ *:GoTestFunc*
+:GoTestFunc[!] [expand]
+
+ Runs :GoTest, but only on the single test function immediate to your
+ cursor using 'go test's '-run' flag.
+
+ Lookup is done starting at the cursor (including that line) moving up till
+ a matching `func Test` pattern is found or top of file is reached. Search
+ will not wrap around when at the top of the file.
+
+ If [!] is not given the first error is jumped to.
+
+ If using neovim `:GoTestFunc` will run in a new terminal or run
+ asynchronously in the background according to |'g:go_term_enabled'|. You
+ can set the mode of the new terminal with |'g:go_term_mode'|.
+
+ *:GoTestCompile*
+:GoTestCompile[!] [expand]
+
+ Compile your _test.go files via in your current directory. Errors are
+ populated in the quickfix window. If an argument is passed, [expand] is
+ used as file selector (useful for cases like `:GoTest ./...`). Useful to
+ not run the tests and capture/fix errors before running the tests or to
+ create test binary.
+
+ If [!] is not given the first error is jumped to.
+
+ If using neovim `:GoTestCompile` will run in a new terminal or run
+ asynchronously in the background according to |'g:go_term_enabled'|. You
+ can set the mode of the new terminal with |'g:go_term_mode'|.
+
+ *:GoCoverage*
+:GoCoverage[!] [options]
+
+ Create a coverage profile and annotates the current file's source code. If
+ called again it rerurns the tests.
+
+ If [!] is not given the first error is jumped to.
+
+ *:GoCoverageToggle*
+:GoCoverageToggle[!] [options]
+
+ Create a coverage profile and annotates the current file's source code. If
+ called again clears the annotation (works as a toggle).
+
+ If [!] is not given the first error is jumped to.
+
+ *:GoCoverageClear*
+:GoCoverageClear [options]
+
+ Clears the coverage annotation.
+
+
+ *:GoCoverageBrowser*
+:GoCoverageBrowser[!] [options]
+
+ Create a coverage profile and open a browser to display the annotated
+ source code of the current package.
+
+ You may optionally pass any valid go test flags/options, such as
+ `-covermode set,count,atomic`. For a full list please see `go help test`.
+
+ If [!] is not given the first error is jumped to.
+
+ *:GoErrCheck*
+:GoErrCheck! [options]
+
+ Check for unchecked errors in you current package. Errors are populated in
+ the quickfix window.
+
+ You may optionally pass any valid errcheck flags/options. See
+ `errcheck -h` for a full list.
+
+ If [!] is not given the first error is jumped to.
+
+ *:GoFiles*
+:GoFiles [source_files]
+
+ Show source files for the current package. The [source_files] specifies
+ which file types to list. See the "// Source files" section of
+ `go list -h` for possible values; multiple values are accepted.
+ Command-line completion also works for this command.
+ The default is to use `GoFiles` if no arguments are given.
+
+ *:GoDeps*
+:GoDeps
+
+ Show dependencies for the current package.
+
+ *:GoInstallBinaries*
+:GoInstallBinaries [binaries]
+
+ Download and install all necessary Go tool binaries such as `godef`,
+ `goimports`, `gopls`, etc. under |'g:go_bin_path'|. If [binaries] is
+ supplied, then only the specified binaries will be installed. The default
+ is to install everything.
+
+ Set |'g:go_get_update'| to disable updating dependencies.
+
+ *:GoUpdateBinaries*
+:GoUpdateBinaries [binaries]
+
+ Download and update previously installed Go tool binaries such as `godef`,
+ `goimports`, `gopls`, etc. under |'g:go_bin_path'|. If [binaries] is
+ supplied, then only the specified binaries will be updated. The default is
+ to update everything.
+
+ Set |'g:go_get_update'| to disable updating dependencies.
+
+ *:GoImplements*
+:GoImplements
+
+ Show "implements" relation for a selected package. A list of interfaces
+ for the type that implements an interface under the cursor (or selected
+ package) is shown in a location list.
+ *:GoRename*
+:GoRename[!] [to]
+
+ Rename the identifier under the cursor to the desired new name. If no
+ argument is given a prompt will ask for the desired identifier.
+
+ If [!] is not given the first error is jumped to.
+
+
+ *:GoGuruScope*
+:GoGuruScope [pattern] ...
+
+ Changes the custom |'g:go_guru_scope'| setting and overrides it with the
+ given package patterns. The custom scope is cleared (unset) if `""` is
+ given as the only path. If no arguments is given it prints the current
+ custom scope. Example patterns are:
+>
+ golang.org/x/tools/cmd/guru # a single package
+ golang.org/x/tools/... # all packages beneath dir
+ ... # the entire workspace.
+<
+ Example usage, the following sets the scope to a `github.com/fatih/color`
+ and to all packages under `golang.org/x/tools/`:
+>
+ :GoGuruScope github.com/fatih/color golang.org/x/tools/...
+<
+ The following sets it to the entire workspace:
+>
+ :GoGuruScope ...
+<
+ Under the hood, the patterns are all joined to a comma-separated list and
+ passed to `guru`'s `-scope` flag.
+
+ Also see |go-guru-scope|.
+
+ *:GoCallees*
+:GoCallees
+
+ Show "callees" relation for a selected package. A list of possible call
+ targets for the type under the cursor (or selected package) is shown in a
+ location list.
+
+ *:GoCallers*
+:GoCallers
+
+ Show "callers" relation for a selected function. A list of possible
+ callers for the selected function under the cursor is shown in a location
+ list.
+
+ *:GoDescribe*
+:GoDescribe
+
+ Shows various properties of the selected syntax: its syntactic kind, its
+ type (for an expression), its value (for a constant expression), its size,
+ alignment, method set and interfaces (for a type), its declaration (for an
+ identifier), etc. Almost any piece of syntax may be described, and the
+ guru will try to print all the useful information it can.
+
+ *:GoCallstack*
+:GoCallstack
+
+ Shows "callstack" relation for the selected function. An arbitrary path
+ from the root of the callgraph to the selected function is shown in a
+ location list. This may be useful to understand how the function is
+ reached in a given program.
+
+ *:GoFreevars*
+:GoFreevars
+
+ Enumerates the free variables of the selection. "Free variables" is a
+ technical term meaning the set of variables that are referenced but not
+ defined within the selection, or loosely speaking, its inputs.
+
+ This information is useful when considering whether to refactor the
+ selection into a function of its own, as the free variables would be the
+ necessary parameters of that function. It's also useful when you want to
+ understand what the inputs are to a complex block of code even if you
+ don’t plan to change it.
+
+ *:GoChannelPeers*
+:GoChannelPeers
+
+ Shows the set of possible sends/receives on the channel operand of the
+ selected send or receive operation; the selection must be a `<-` token.
+
+ For example, visually select a channel operand in the form of:
+>
+ done <- true
+<
+ And call |:GoChannelPeers| on it. It will show where it was allocated, and
+ the sending and receiving endings.
+
+ *:GoReferrers*
+:GoReferrers
+
+ The referrers query shows the set of identifiers that refer to the same
+ object as does the selected identifier.
+
+ *:GoSameIds*
+:GoSameIds
+
+ Highlights all identifiers that are equivalent to the identifier under the
+ cursor.
+
+ *:GoSameIdsClear*
+:GoSameIdsClear
+
+ Clears all SameIds highlights from a |:GoSameIds| call.
+
+ *:GoSameIdsToggle*
+:GoSameIdsToggle
+
+ Toggle between |:GoSameIds| and |:GoSameIdsClear|.
+
+ *:GoSameIdsAutoToggle*
+:GoSameIdsAutoToggle
+
+ Enables or disables automatic highlighting of |:GoSameIds| while moving
+ the cursor. This basically toggles the option |'g:go_auto_sameids'|
+ on/off.
+ If enabled it starts highlighting whenever your cursor is staying at the
+ same position for a configurable period of time (see |'g:go_updatetime'|).
+ If disabled it clears and stops automatic highlighting.
+
+ *:GoMetaLinter*
+:GoMetaLinter! [path]
+
+ Calls the underlying `golangci-lint` tool and displays all warnings and
+ errors in the |quickfix| window. By default the following linters are
+ enabled: `vet`, `golint`, and `errcheck`. This can be changed with the
+ |'g:go_metalinter_enabled'| variable. To override the command completely
+ use the variable |'g:go_metalinter_command'|. To override the maximum
+ linters execution time use |'g:go_metalinter_deadline'| variable.
+
+ If [!] is not given the first error is jumped to.
+
+ *:GoDiagnostics*
+:GoDiagnostics! [packages]
+
+ Displays the diagnostics from `gopls` for the given packages in a
+ |quickfix| window. The diagnostics for the current package are displayed
+ when no package is given. The diagnostics for all packages will be
+ displayed when `all` is as an argument.
+
+ Disabled when |'g:go_diagnostics_enabled'| is not set.
+
+ If [!] is not given the first error is jumped to.
+
+ *:GoBuildTags*
+:GoBuildTags [tags]
+
+ Changes the build tags for various commands. If you have any file that
+ uses a custom build tag, such as `// +build integration` , this command
+ can be used to pass it to all tools that accepts tags, such as gopls,
+ guru, gorename, etc.
+
+ The build tags is cleared (unset) if `""` is given. If no arguments are
+ given it prints the current build tags.
+
+ *:AsmFmt*
+:AsmFmt
+
+ Filter the current Go asm buffer through asmfmt. It tries to preserve
+ cursor position and avoids replacing the buffer with stderr output.
+
+ *:GoAlternate*
+:GoAlternate[!]
+
+ Alternates between the implementation and test code. For example if in
+ main.go, switch to main_test.go. Uses the |'g:go_alternate_mode'| setting
+ as the command to open the file.
+
+ If [!] is given then it switches to the new file even if it does not
+ exist.
+
+ If you would like to override the traditional commands for alternating,
+ add the following to your .vimrc:
+>
+ augroup go
+ autocmd!
+ autocmd Filetype go
+ \ command! -bang A call go#alternate#Switch(<bang>0, 'edit')
+ \| command! -bang AV call go#alternate#Switch(<bang>0, 'vsplit')
+ \| command! -bang AS call go#alternate#Switch(<bang>0, 'split')
+ augroup END
+<
+
+ *:GoPointsTo*
+:GoPointsTo
+
+ Show all variables to which the pointer under the cursor may point to.
+
+ *:GoWhicherrs*
+:GoWhicherrs
+
+ Show the list of possible constants, global variables, and concrete types
+ for the error type under the cursor in a location list.
+
+ *:GoDecls*
+:GoDecls [file]
+
+ Show all function and type declarations for the current file. If
+ [file] is non empty it parses the given file.
+ Requires `ctrlp.vim` or `fzf`; it will autodetect the plugin if installed,
+ but you can use |'g:go_decls_mode'| to force using one or the other.
+ By default `type` and `func` declarations are shown. This can be changed
+ via |'g:go_decls_includes'|. Also see |unite-decls|, |denite-decls|.
+
+ *:GoDeclsDir*
+:GoDeclsDir [dir]
+
+ Show all function and type declarations for the current directory. If
+ [dir] is given it parses the given directory.
+
+ *unite-decls*
+ *denite-decls*
+:Unite decls[:path]
+:Denite decls[:path]
+
+ Only enabled if `unite.vim` or `denite.nvim` is installed. Show
+ declarations for all functions and types on the current file or directory
+ or for [path] if given.
+
+ Note: `denite.nvim` requires NeoVim or Vim 8 with |:python3| enabled.
+>
+ " show declarations on the parent directory of the current file
+ :Unite decls
+ :Denite decls
+
+ " show declarations in the file.
+ :Unite decls:foo/bar.go
+ :Denite decls:foo/bar.go
+
+ " show declarations in the directory "foo".
+ :Unite decls:foo
+ :Denite decls:foo
+<
+ *:GoImpl*
+:GoImpl [receiver] [interface]
+
+ Generates method stubs for implementing an interface. If no arguments is
+ passed it takes the identifier under the cursor to be the receiver and
+ asks for the interface type to be generated. If used with arguments, the
+ receiver and the interface needs to be specified. Example usages:
+>
+ :GoImpl f *Foo io.Writer
+ :GoImpl t Type io.ReadWriteCloser
+<
+ *:GoAddTags*
+:[range]GoAddTags [key],[option] [key1],[option] ...
+
+ Adds field tags for the fields of a struct. If called inside a struct it
+ automatically add field tags with the `json` key and the value
+ automatically generated based on the field name. An error message is given
+ if it's called outside a struct definition or if the file is not correctly
+ formatted.
+
+ If [range] is given, only the selected fields will be changed.
+
+ The default `json` can be changed by providing one or more [key]
+ arguments. An example of adding `xml` and `db` would be:
+>
+ :GoAddTags xml db
+<
+ If [option] is passed it'll either add a new tag with an option or will
+ modify existing tags. An example of adding `omitempty` to all `json`
+ fields would be:
+>
+ :GoAddTags json,omitempty
+<
+ You can define a constant value instead of the default field based value.
+ For example the following command will add ``valid:"1"`` to all fields.
+>
+ :GoAddTags valid=1
+<
+ *:GoRemoveTags*
+:[range]GoRemoveTags [key],[option] [key1],[option1] ...
+
+ Remove field tags for the fields of a struct. If called inside a struct it
+ automatically remove all field tags. An error message is given if it's
+ called outside a struct definition or if the file is not correctly
+ formatted
+
+ If [range] is given, only the selected fields will be changed.
+
+ If [key] is given, it will only remove those keys. Example:
+>
+ :GoRemoveTags json
+<
+ If [option] is passed with a [key], it will only remove the options.
+ Example, this will only remove `omitempty` options from fields containing
+ `json`:
+>
+ :GoRemoveTags json,omitempty
+<
+ *:GoAutoTypeInfoToggle*
+:GoAutoTypeInfoToggle
+
+ Toggles |'g:go_auto_type_info'|.
+
+ *:GoFmtAutoSaveToggle*
+:GoFmtAutoSaveToggle
+
+ Toggles |'g:go_fmt_autosave'|.
+
+ *:GoModFmtAutoSaveToggle*
+:GoModFmtAutoSaveToggle
+
+ Toggles |'g:go_mod_fmt_autosave'|.
+
+ *:GoAsmFmtAutoSaveToggle*
+:GoAsmFmtAutoSaveToggle
+
+ Toggles |'g:go_asmfmt_autosave'|.
+
+ *:GoMetaLinterAutoSaveToggle*
+:GoMetaLinterAutoSaveToggle
+
+ Toggles |'g:go_metalinter_autosave'|.
+
+ By default, `golangci-lint` messages will be shown in the |location-list|
+ window. The list to use can be set using |'g:go_list_type_commands'|.
+
+ *:GoTemplateAutoCreateToggle*
+:GoTemplateAutoCreateToggle
+
+ Toggles |'g:go_template_autocreate'|.
+
+ *:GoKeyify*
+:GoKeyify
+
+ Uses `keyify` to turn unkeyed struct literals into keyed ones.
+
+ For example:
+>
+ Person{"John", "Smith"}
+<
+ Becomes:
+>
+ Person{
+ Name: "John",
+ Surname: "Smith",
+ }
+<
+ *:GoFillStruct*
+:GoFillStruct
+
+ Use `fillstruct` to fill a struct literal with default values. Existing
+ values (if any) are preserved. The cursor must be on the struct you wish
+ to fill.
+
+ For example:
+>
+ addr := net.Address{Name: "Ford Prefect"}
+<
+ Becomes:
+>
+ addr := net.Address{
+ Name: "Ford Prefect",
+ Email: "",
+ }
+<
+
+ *:GoIfErr*
+:GoIfErr
+
+ Generate if err != nil { return ... } automatically which infer the type
+ of return values and the numbers.
+
+ For example:
+>
+ func doSomething() (string, error) {
+ f, err := os.Open("file")
+ }
+<
+ Becomes:
+>
+ func doSomething() (string, error) {
+ f, err := os.Open("file")
+ if err != nil {
+ return "", err
+ }
+ }
+<
+ *:GoModFmt*
+:GoModFmt
+
+ Filter the current go.mod buffer through "go mod edit -fmt" command. It
+ tries to preserve cursor position and avoids replacing the buffer with
+ stderr output.
+
+ *:GoAddWorkspace*
+:GoAddWorkspace [dir] ...
+
+ Add directories to the `gopls` workspace.
+
+ *:GoLSPDebugBrowser*
+:GoLSPDebugBrowser
+
+ Open a browser to see gopls debugging information.
+
+==============================================================================
+MAPPINGS *go-mappings*
+
+vim-go has several <Plug> keys which can be used to create custom mappings
+For example, to create a mapping that calls `go run` for the current package,
+create a mapping for the `(go-run)`: >
+
+ au FileType go nmap <leader>r <Plug>(go-run)
+
+As always one is free to create more advanced mappings or functions based with
+|go-commands|. For more information please check out the mappings command
+documentation in the |go-commands| section. Available <Plug> keys are:
+
+ *(go-run)*
+
+Calls `go run` for the current main package
+
+ *(go-run-tab)*
+
+Calls `go run` for the current file in a new terminal tab
+This option is neovim only.
+
+ *(go-run-split)*
+
+Calls `go run` for the current file in a new terminal horizontal split
+This option is neovim only.
+
+ *(go-run-vertical)*
+
+Calls `go run` for the current file in a new terminal vertical split
+This option is neovim only.
+
+ *(go-build)*
+
+Calls `go build` for the current package
+
+ *(go-generate)*
+
+Calls `go generate` for the current package
+
+ *(go-info)*
+
+Shows type information for the word under the cursor
+
+ *(go-install)*
+
+Calls `go install` for the current package
+
+ *(go-test)*
+
+Calls `go test` for the current package
+
+ *(go-test-func)*
+
+Calls `go test -run '...'` for the test function immediate to cursor
+
+ *(go-test-compile)*
+
+Calls `go test -c` for the current package
+
+ *(go-coverage)*
+
+Calls `go test -coverprofile-temp.out` for the current package and shows the
+coverage annotation.
+
+ *(go-coverage-clear)*
+
+Clears the coverage annotation
+
+ *(go-coverage-toggle)*
+
+Calls `go test -coverprofile-temp.out` for the current package and shows the
+coverage annotation. If run again it acts as a toggle and clears the
+annotation.
+
+ *(go-imports)*
+
+Calls `goimports` for the current package
+
+ *(go-lint)*
+
+Calls `golint` for the current package
+
+ *(go-vet)*
+
+Calls `go vet` for the current package
+
+
+ *(go-files)*
+
+Show source files that depends for the current package
+
+
+ *(go-deps)*
+
+Show dependencies for the current package
+
+ *(go-doc)*
+
+Show the relevant GoDoc for the word under the cursor in a split window
+leftabove (default mode).
+
+ *(go-doc-split)*
+
+Show the relevant GoDoc for the word under the cursor in a split window.
+
+
+ *(go-doc-vertical)*
+
+Show the relevant GoDoc for the word under the cursor in a vertical split
+window.
+
+ *(go-doc-tab)*
+
+Show the relevant GoDoc for the word under the cursor in a tab window.
+
+
+ *(go-doc-browser)*
+
+Show the relevant GoDoc for the word under in browser
+
+ *(go-def)*
+
+Goto declaration/definition. Results are shown in the current window.
+
+ *(go-def-split)*
+
+Goto declaration/definition. Results are shown in a split window.
+Jumps to an existing buffer if |'g:go_def_reuse_buffer'| is enabled.
+
+ *(go-def-vertical)*
+
+Goto declaration/definition. Results are shown in a vertical split window.
+Jumps to an existing buffer if |'g:go_def_reuse_buffer'| is enabled.
+
+ *(go-def-tab)*
+
+Goto declaration/definition. Results are shown in a tab window.
+Jumps to an existing buffer if |'g:go_def_reuse_buffer'| is enabled.
+
+ *(go-def-type)*
+
+Goto type declaration/definition. Results are shown in the current window.
+Jumps to an existing buffer if |'g:go_def_reuse_buffer'| is enabled.
+
+ *(go-def-type-vertical)*
+Goto type declaration/definition. Results are shown in a vertical split
+window.
+Jumps to an existing buffer if |'g:go_def_reuse_buffer'| is enabled.
+
+ *(go-def-type-split)*
+Goto type declaration/definition. Results are shown in a split window.
+Jumps to an existing buffer if |'g:go_def_reuse_buffer'| is enabled.
+
+ *(go-def-type-tab)*
+Goto type declaration/definition. Results are shown in a tab window.
+Jumps to an existing buffer if |'g:go_def_reuse_buffer'| is enabled.
+
+ *(go-def-stack)*
+
+Shows the godef tag stack
+
+ *(go-def-stack-clear)*
+
+Resets and clears the tag stack
+
+ *(go-def-pop)*
+
+Jump to previous entry in the tag stack
+
+ *(go-implements)*
+
+Show the interfaces that the type under the cursor implements.
+
+ *(go-rename)*
+
+Rename the identifier under the cursor to the desired new name
+
+ *(go-callees)*
+
+Show the call targets for the type under the cursor
+
+ *(go-callers)*
+
+Show possible callers of selected function
+
+ *(go-describe)*
+
+Describe selected syntax: definition, methods, etc
+
+ *(go-callstack)*
+
+Show path from callgraph root to selected function
+
+ *(go-freevars)*
+
+Show free variables of selection
+
+ *(go-channelpeers)*
+
+Show send/receive corresponding to selected channel op
+
+ *(go-referrers)*
+
+Show all refs to entity denoted by selected identifier
+
+ *(go-pointsto)*
+
+Show all variables to which the pointer under the cursor may point to.
+
+ *(go-metalinter)*
+
+Calls `go-metalinter` for the current directory
+
+ *(go-alternate-edit)*
+
+Alternates between the implementation and test code in the current window
+
+ *(go-alternate-split)*
+
+Alternates between the implementation and test code in a new horizontal split
+
+ *(go-alternate-vertical)*
+
+Alternates between the implementation and test code in a new vertical split
+
+ *(go-import)*
+
+Calls `:GoImport` for the current package
+
+ *(go-iferr)*
+
+Generate if err != nil { return ... } automatically which infer the type of
+return values and the numbers.
+
+ *(go-mod-fmt)*
+
+Calls |:GoModFmt| for the current buffer
+
+ *(go-diagnostics)*
+Calls `:GoDiagnostics`
+
+==============================================================================
+TEXT OBJECTS *go-text-objects*
+
+vim-go comes with several custom |text-objects| that can be used to operate
+upon regions of text. vim-go currently defines the following text objects:
+
+ *go-v_af* *go-af*
+af "a function", select contents from a function definition to the
+ closing bracket. If |'g:go_textobj_include_function_doc'| is
+ enabled it also includes the comment doc for a function
+ declaration. This text-object also supports literal functions.
+ If |'g:go_textobj_include_variable'| is enabled it also
+ includes the variable of an function assignment
+
+ *go-v_if* *go-if*
+if "inside a function", select contents of a function,
+ excluding the function definition and the closing bracket. This
+ text-object also supports literal functions
+
+ *go-v_ac* *go-ac*
+ac "a comment", select contents of the current comment block.
+
+ *go-v_ic* *go-ic*
+ic "inner comment", select contents of the current comment block,
+ excluding the start and end comment markers.
+
+vim-go also defines the following text motion objects:
+
+ *go-v_]]* *go-]]*
+]] [count] forward to next function declaration. If
+ |'g:go_textobj_include_function_doc'| is enabled and if your
+ on a comment, it skips the function which the comment
+ belongs and forwards to the next function declaration.
+
+ *go-v_[[* *go-[[*
+[[ [count] backward to previous function declaration.
+
+
+
+==============================================================================
+FUNCTIONS *go-functions*
+
+ *go#statusline#Show()*
+
+Shows the status of a job running asynchronously. Can be used to plug into the
+statusline. It works to show the status per package instead of per file.
+Assume you have three files open, all belonging to the same package, if the
+package build (`:GoBuild`) is successful, all statuslines will show `success`,
+if it fails all windows' statuslines will show `failed`.
+
+To avoid always showing old status information, the status information is
+cleaned for each package after `60` seconds. This can be changed with the
+|'g:go_statusline_duration'| setting.
+
+ *go#complete#GetInfo()*
+
+Returns the description of the identifer under the cursor. Can be used to plug
+into the statusline.
+
+ *go#complete#Complete()*
+
+Uses `gopls` for autocompletion. By default, it is hooked up to 'omnifunc'.
+
+ *go#tool#DescribeBalloon()*
+
+Suitable to be used as an expression to show the evaluation balloon. See `help
+balloonexpr`.
+
+==============================================================================
+SETTINGS *go-settings*
+
+ *'g:go_version_warning'*
+
+Enable warning when using an unsupported version of Vim. By default it is
+enabled.
+>
+ let g:go_version_warning = 1
+<
+
+ *'g:go_code_completion_enabled'*
+
+Enable code completion with 'omnifunc'. By default it is enabled.
+>
+ let g:go_code_completion_enabled = 1
+<
+
+ *'g:go_code_completion_icase'*
+
+Override the icase field in 'omnifunc' results. By default it is set to 0.
+See 'complete-items' for details.
+>
+ let g:go_code_completion_icase = 0
+<
+
+ *'g:go_test_show_name'*
+
+Show the name of each failed test before the errors and logs output by the
+test. By default it is disabled.
+>
+ let g:go_test_show_name = 0
+<
+
+ *'g:go_test_timeout'*
+
+Use this option to change the test timeout of |:GoTest|. By default it is
+set to 10 seconds . >
+
+ let g:go_test_timeout= '10s'
+<
+ *'g:go_play_browser_command'*
+
+Browser to use for |:GoPlay|, |:GoDocBrowser|, and |:GoLSPDebugBrowser|. The
+url must be added with `%URL%`, and it's advisable to include `&` to make sure
+the shell returns. For example:
+>
+ let g:go_play_browser_command = 'firefox-developer %URL% &'
+<
+
+By default it tries to find it automatically for the current OS. >
+
+ let g:go_play_browser_command = ''
+<
+ *'g:go_play_open_browser'*
+
+Use this option to open browser after posting the snippet to play.golang.org
+with |:GoPlay|. By default it's enabled. >
+
+ let g:go_play_open_browser = 1
+<
+ *'g:go_auto_type_info'*
+
+Use this option to show the type info (|:GoInfo|) for the word under the
+cursor automatically. Whenever the cursor changes the type info will be
+updated. By default it's disabled. The delay can be configured with the
+|'g:go_updatetime'| setting.
+>
+ let g:go_auto_type_info = 0
+<
+
+ *'g:go_info_mode'*
+
+Use this option to define the command to be used for |:GoInfo|. By default
+`gopls` is used, because it is the fastest and is known to be highly accurate.
+One might also use `guru` for its accuracy.
+Valid options are `gopls` and `guru`.
+>
+ let g:go_info_mode = 'gopls'
+<
+ *'g:go_auto_sameids'*
+
+Use this option to highlight all uses of the identifier under the cursor
+(|:GoSameIds|) automatically. By default it's disabled. The delay can be
+configured with the |'g:go_updatetime'| setting.
+>
+ let g:go_auto_sameids = 0
+<
+ *'g:go_updatetime'*
+
+Use this option to configure the delay until it starts some jobs (see
+|'g:go_auto_type_info'|, |'g:go_auto_sameids'|). If set to 0, it uses the
+value from 'updatetime'. By default it's set to 800ms.
+>
+ let g:go_updatetime = 800
+<
+ *'g:go_jump_to_error'*
+
+Use this option to enable/disable passing the bang attribute to the mappings
+(e.g. |(go-build)|, |(go-run)|, etc.) and the metalinter on save. When
+enabled it will jump to the first error automatically (means it will NOT pass
+the bang attribute to the appropriate command, i.e: (go-run) -> :GoRun ).
+Note, that calling this doesn't have any affect on calling the commands
+manually. This setting is only useful for changing the behaviour of our custom
+static mappings. By default it's enabled.
+>
+ let g:go_jump_to_error = 1
+<
+ *'g:go_fmt_autosave'*
+
+Use this option to auto |:GoFmt| on save. When both 'g:go_imports_autosave'
+and 'g:go_fmt_autosave' are enabled and both 'g:go_fmt_command' and
+'g:go_imports_mode' are set to `goimports`, `goimports` will be run only once.
+By default it's enabled >
+
+ let g:go_fmt_autosave = 1
+<
+ *'g:go_fmt_command'*
+
+Use this option to define which tool is used to format code. Valid options are
+`gofmt`, `goimports`, and `gopls`. By default `gofmt` is used.
+>
+
+ let g:go_fmt_command = "gofmt"
+<
+ *'g:go_fmt_options'*
+
+Use this option to add additional options to the |'g:go_fmt_command'|. It's
+value type can be either a string or a dictionary. This is due backwards
+compatibility. The string version will be removed in the future so please use
+the dictionary version. Default is empty.
+>
+ let g:go_fmt_options = ''
+
+ or
+
+ let g:go_fmt_options = {}
+<
+The dictionary version allows you to define options for multiple binaries:
+>
+ let g:go_fmt_options = {
+ \ 'gofmt': '-s',
+ \ 'goimports': '-local mycompany.com',
+ \ }
+<
+ *'b:go_fmt_options'*
+
+This option is identical to |'g:go_fmt_options'|, but a buffer-level setting.
+If present, it's used instead of the global setting. By default it is not set.
+
+As an example, the following autocmd will configure goimports to put imports
+of packages from the current module in their own group:
+>
+ autocmd FileType go let b:go_fmt_options = {
+ \ 'goimports': '-local ' .
+ \ trim(system('{cd '. shellescape(expand('%:h')) .' && go list -m;}')),
+ \ }
+<
+ *'g:go_fmt_fail_silently'*
+
+Use this option to disable showing a location list when |'g:go_fmt_command'|
+fails. By default the location list is shown. >
+
+ let g:go_fmt_fail_silently = 0
+<
+ *'g:go_fmt_experimental'*
+
+Use this option to enable fmt's experimental mode. This experimental mode is
+superior to the current mode as it fully saves the undo history, so undo/redo
+doesn't break. However, it's slow (creates/deletes a file for every save) and
+it's causing problems on some Vim versions. This has no effect if
+`g:go_fmt_command` is set to `gopls`. By default it's disabled.
+>
+
+ let g:go_fmt_experimental = 0
+
+<
+
+ *'g:go_imports_autosave'*
+
+Use this option to auto |:GoImports| on save. When both
+'g:go_imports_autosave' and 'g:go_fmt_autosave' are enabled and both
+'g:go_fmt_command' and 'g:go_imports_mode' are set to `goimports`, `goimports`
+will be run only once. By default it's disabled.
+>
+ let g:go_imports_autosave = 0
+<
+ *'g:go_imports_mode'*
+
+Use this option to define which tool is used to adjust imports. Valid options
+are `goimports` and `gopls`. The buffer will not be formatted when this is set
+to `gopls`. By default `goimports` is used.
+>
+
+ let g:go_imports_mode = "goimports"
+<
+ *'g:go_mod_fmt_autosave'*
+
+Use this option to auto |:GoModFmt| on save. By default it's enabled >
+
+ let g:go_mod_fmt_autosave = 1
+<
+
+ *'g:go_doc_keywordprg_enabled'*
+
+Use this option to run `godoc` on words under the cursor with |K|; this will
+normally run the `man` program, but for Go using `godoc` is more idiomatic. It
+will not override the 'keywordprg' setting, but will run |:GoDoc|. Default
+is enabled. >
+
+ let g:go_doc_keywordprg_enabled = 1
+<
+ *'g:go_doc_height'*
+
+Maximum height for the GoDoc window created with |:GoDoc|. Default is 20. >
+
+ let g:go_doc_max_height = 20
+<
+
+ *'g:go_doc_url'*
+
+godoc server URL used when |:GoDocBrowser| is used. Change if you want to use
+a private internal service. Default is 'https://pkg.go.dev'.
+>
+ let g:go_doc_url = 'https://pkg.go.dev'
+<
+
+ *'g:go_doc_popup_window'*
+
+Use this option to use the popup-window for |K| and |:GoDoc|, rather than the
+|preview-window|. Default is disabled.
+>
+ let g:go_doc_popup_window = 0
+<
+
+ *'g:go_def_mode'*
+
+Use this option to define the command to be used for |:GoDef|. By default
+`gopls` is used, because it is the fastest. One might also use `guru` for its
+accuracy or `godef` for its performance. Valid options are `godef`, `gopls`,
+and `guru`.
+>
+ let g:go_def_mode = 'gopls'
+<
+ *'g:go_referrers_mode'*
+
+Use this option to define the command to be used for |:GoReferrers|. By
+default `gopls` is used, because it is the fastest and works with Go modules.
+One might also use `guru` for its ability to show references from other
+packages. This option will be removed after `gopls` can show references from
+other packages. Valid options are `gopls` and `guru`. By default it's `gopls`.
+>
+ let g:go_referrers_mode = 'gopls'
+<
+ *'g:go_implements_mode'*
+
+Use this option to define the command to be used for |:GoImplements|.
+The Implements feature in gopls is still new and being worked upon.
+Valid options are `gopls` and `guru`. By default it's `guru`.
+>
+ let g:go_implements_mode = 'guru'
+<
+ *'g:go_def_mapping_enabled'*
+
+Use this option to enable/disable the default mapping of CTRL-],
+<C-LeftMouse>, g<C-LeftMouse> and (`gd`) for GoDef and CTRL-t for :GoDefPop.
+Disabling it allows you to map something else to these keys or mappings.
+Default is enabled. >
+
+ let g:go_def_mapping_enabled = 1
+<
+ *'g:go_def_reuse_buffer'*
+
+Use this option to jump to an existing buffer for the split, vsplit and tab
+mappings of |:GoDef|. By default it's disabled. >
+
+ let g:go_def_reuse_buffer = 0
+<
+ *'g:go_bin_path'*
+
+Use this option to change default path for vim-go tools when using
+|:GoInstallBinaries| and |:GoUpdateBinaries|. If not set `$GOBIN` or
+`$GOPATH/bin` is used. >
+
+ let g:go_bin_path = ""
+<
+ *'g:go_search_bin_path_first'*
+
+This option lets |'g:go_bin_path'| (or its default value) take precedence over
+$PATH when invoking a tool command such as |:GoFmt| or |:GoImports|.
+
+Enabling this option ensures that the binaries installed via
+|:GoInstallBinaries| and |:GoUpdateBinaries| are the same ones that are
+invoked via the tool commands.
+
+By default it is enabled. >
+
+ let g:go_search_bin_path_first = 1
+<
+ *'g:go_snippet_engine'*
+
+Define the snippet engine to use. The default is to auto-detect one. Valid
+values are:
+
+ automatic Automatically detect a snippet engine.
+ ultisnips https://github.com/SirVer/ultisnips
+ neosnippet https://github.com/Shougo/neosnippet.vim
+ minisnip https://github.com/joereynolds/vim-minisnip
+ Note: the original at KeyboardFire/vim-minisnip won't work.
+>
+ let g:go_snippet_engine = "automatic"
+<
+ *'g:go_get_update'*
+
+Use this option to disable updating dependencies with |:GoInstallBinaries|. By
+default this is enabled.
+>
+ let g:go_get_update = 1
+<
+ *'g:go_guru_scope'*
+
+Use this option to define the scope of the analysis to be passed for guru
+related commands, such as |:GoImplements|, |:GoCallers|, etc. You can change
+it on-the-fly with |:GoGuruScope|. The input should be a a list of package
+pattern. An example input might be:
+`["github.com/fatih/color","github.com/fatih/structs"]`
+
+Also see |go-guru-scope|.
+
+By default it's not set, so the relevant commands' defaults are being used.
+>
+ let g:go_guru_scope = []
+<
+ *'g:go_build_tags'*
+
+Space-separated list of build tags passed to the `-tags` flag of tools that
+support it.
+There is also the |:GoBuildTags| convenience command to change or remove build
+tags.
+>
+ let g:go_build_tags = ''
+<
+ *'g:go_autodetect_gopath'*
+
+Automatically modify GOPATH for certain directory structures, such as for
+the `godep` tool which stores dependencies in the `Godeps` folder. What this
+means is that all tools are now working with the newly modified GOPATH. So
+|:GoDef| for example jumps to the source inside the `Godeps` (vendored)
+source. Currently `godep` and `gb` are supported. By default it's disabled.
+>
+ let g:go_autodetect_gopath = 0
+<
+ *'g:go_textobj_enabled'*
+
+Adds custom text objects. By default it's enabled. >
+
+ let g:go_textobj_enabled = 1
+<
+ *'g:go_textobj_include_function_doc'*
+
+Consider the comment above a function to be part of the function when using
+the `af` text object and `[[` motion. By default it's enabled. >
+
+ let g:go_textobj_include_function_doc = 1
+<
+ *'g:go_textobj_include_variable'*
+
+Consider the variable of an function assignment to be part of the anonymous
+function when using the `af` text object. By default it's enabled. >
+
+ let g:go_textobj_include_variable = 1
+<
+ *'g:go_metalinter_autosave'*
+
+Use this option to auto |:GoMetaLinter| on save. Only linter messages for
+the active buffer will be shown.
+
+By default, `golangci-lint` messages will be shown in the |location-list|
+window. The list to use can be set using |'g:go_list_type_commands'|.
+
+ By default it's disabled >
+ let g:go_metalinter_autosave = 0
+<
+ *'g:go_metalinter_autosave_enabled'*
+
+Specifies the enabled linters for auto |:GoMetaLinter| on save. By
+default it's using `vet` and `golint`. If any are enabled, `--disable-all`
+will be sent to the metalinter.
+>
+ let g:go_metalinter_autosave_enabled = ['vet', 'golint']
+<
+ *'g:go_metalinter_enabled'*
+
+Specifies the linters to enable for the |:GoMetaLinter| command. By default
+it's using `vet`, `golint` and `errcheck`. If any are enabled, `--disable-all`
+will be sent to the metalinter.
+>
+ let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck']
+<
+ *'g:go_metalinter_command'*
+
+Overrides the command to be executed when |:GoMetaLinter| is called. By
+default it's `golangci-lint`. Valid options are `golangci-lint` and `gopls`.
+When the value is `gopls`, users may want to consider setting
+`g:go_gopls_staticcheck`. It can also be used as an advanced setting for
+users who want to have more control over the metalinter.
+>
+ let g:go_metalinter_command = "golangci-lint"
+<
+ *'g:go_metalinter_deadline'*
+
+Overrides the maximum time the linters have to complete. By default it's 5
+seconds.
+>
+ let g:go_metalinter_deadline = "5s"
+<
+ *'g:go_list_height'*
+
+Specifies the window height for the quickfix and location list windows. The
+default value (empty) automatically sets the height to the number of items
+(maximum up to 10 items to prevent large heights). Setting the value
+explicitly overrides this behavior. For standard Vim behavior, set it to 10.
+>
+ let g:go_list_height = 0
+<
+ *'g:go_list_type'*
+
+Specifies the type of list to use for command outputs (such as errors from
+builds, results from static analysis commands, etc...). The list type for
+specific commands can be overridden with |'g:go_list_type_commands'|. The
+default value (empty) will use the appropriate kind of list for the command
+that was called. Supported values are "", "quickfix", and "locationlist".
+>
+ let g:go_list_type = ""
+<
+
+ *'g:go_list_type_commands'*
+
+Specifies the type of list to use for command outputs (such as errors from
+builds, results from static analysis commands, etc...). When an expected key
+is not present in the dictionary, |'g:go_list_type'| will be used instead.
+Supported keys are "GoBuild", "GoErrCheck", "GoFmt", "GoModFmt", "GoInstall",
+"GoLint", "GoMetaLinter", "GoMetaLinterAutoSave", "GoModifyTags" (used for
+both :GoAddTags and :GoRemoveTags), "GoRename", "GoRun", and "GoTest".
+Supported values for each command are "quickfix" and "locationlist".
+>
+ let g:go_list_type_commands = {}
+<
+As an example, the following settings will change all list types to
+`locationlist` except for `:GoBuild` where `quickfix` is used:
+>
+ let g:go_list_type = "locationlist"
+ let g:go_list_type_commands = {"GoBuild": "quickfix"}
+<
+
+ *'g:go_list_autoclose'*
+
+Specifies whether the quickfix/location list should be closed automatically
+in the absence of errors. The default value is 1.
+If you prefer to keep a long running error window open, you can disable
+this by setting the value to 0.
+>
+ let g:go_list_autoclose = 1
+<
+ *'g:go_asmfmt_autosave'*
+
+Use this option to auto |:AsmFmt| on save. By default it's disabled. >
+
+ let g:go_asmfmt_autosave = 0
+<
+ *'g:go_term_mode'*
+
+The default command used to open a new terminal for go commands such as
+|:GoRun|. The default is `:vsplit`.
+
+Applicable to Neovim and Vim with `terminal` feature only.
+>
+ let g:go_term_mode = "vsplit"
+<
+ *'g:go_term_height'*
+ *'g:go_term_width'*
+
+Controls the height and width of a terminal split, respectively. By default
+these are not set, meaning that the height and width are set automatically by
+the editor. The height only applies to a horizontal split and width only
+applies to a vertical split.
+
+Applicable to Neovim and Vim with `terminal` feature only.
+
+For example here is how to set each to 30.
+>
+ let g:go_term_height = 30
+ let g:go_term_width = 30
+<
+ *'g:go_term_enabled'*
+
+Causes some types of jobs to run inside a new terminal according to
+|'g:go_term_mode'|. By default it is disabled.
+
+Applicable to Neovim and Vim with `terminal` feature only.
+>
+ let g:go_term_enabled = 0
+<
+ *'g:go_term_close_on_exit'*
+
+Closes the terminal after the command run in it exits when the command fails.
+By default it is enabled.
+
+Applicable to Neovim and Vim with `terminal` feature only.
+
+>
+ let g:go_term_close_on_exit = 1
+<
+ *'g:go_alternate_mode'*
+
+Specifies the command that |:GoAlternate| uses to open the alternate file. By
+default it is set to edit.
+>
+ let g:go_alternate_mode = "edit"
+<
+ *'g:go_rename_command'*
+
+Use this option to define which tool is used to rename. By default `gopls`
+is used. Valid options are `gorename` and `gopls`.
+>
+ let g:go_rename_command = 'gopls'
+<
+ *'g:go_gorename_prefill'*
+
+Expression to prefill the new identifier when using |:GoRename| without any
+arguments. Use an empty string if you don't want to prefill anything. By
+default it converts the identifier to camel case but preserves the
+capitalisation of the first letter to ensure that the exported state stays the
+same.
+>
+ let g:go_gorename_prefill = 'expand("<cword>") =~# "^[A-Z]"' .
+ \ '? go#util#pascalcase(expand("<cword>"))' .
+ \ ': go#util#camelcase(expand("<cword>"))'
+<
+
+ *'g:go_gopls_enabled'*
+
+Specifies whether `gopls` can be used by vim-go. By default gopls is enabled.
+When gopls is disabled completion will not work and other configuration
+options may also need to be adjusted.
+
+>
+ let g:go_gopls_enabled = 1
+<
+
+ *'g:go_gopls_options'*
+
+The commandline arguments to pass to gopls. By default, it's `-remote=auto`.
+>
+ let g:go_gopls_options = []
+<
+
+ *'g:go_gopls_analyses'*
+
+The analyses settings for `gopls`. By default, it's `v:null`. Valid map values
+are `v:true` and `v:false`.
+>
+ let g:go_gopls_analyses = v:null
+<
+
+ *'g:go_gopls_complete_unimported'*
+
+Specifies whether `gopls` should include suggestions from unimported packages.
+When it is `v:null`, `gopls`' default will be used. By default it is
+`v:null`.
+>
+ let g:go_gopls_complete_unimported = v:null
+<
+
+ *'g:go_gopls_deep_completion'*
+
+Specifies whether `gopls` should use deep completion. When it is `v:null`,
+`gopls`' default will be used. By default it is `v:null`.
+
+>
+ let g:go_gopls_deep_completion = v:null
+<
+
+ *'g:go_gopls_matcher'*
+
+Specifies how `gopls` should match for completions. Valid values are `v:null`,
+`fuzzy`, and `caseSensitive`. When it is `v:null`, `gopls`' default will be
+used. By default it is `v:null`.
+>
+ let g:go_gopls_matcher = v:null
+<
+
+ *'g:go_gopls_staticcheck'*
+
+Specifies whether `gopls` should run staticcheck checks. When it is `v:null`,
+`gopls`' default will be used. By default it is `v:null`.
+>
+ let g:go_gopls_staticcheck = v:null
+<
+
+ *'g:go_gopls_use_placeholders'*
+
+Specifies whether `gopls` can provide placeholders for function parameters and
+struct fields. When set, completion items will be treated as anonymous
+snippets if UltiSnips is installed and configured to be used as
+|'g:go_snippet_engine'|. When it is `v:null`, `gopls`' default will be used.
+By default it is `v:null`.
+>
+ let g:go_gopls_use_placeholders = v:null
+<
+
+ *'g:go_gopls_temp_modfile'*
+
+Specifies whether `gopls` should use a temp modfile and suggest edits rather
+than modifying the ambient go.mod file. When it is `v:null`, `gopls`' default
+will be used. By default it is `v:null`.
+>
+ let g:go_gopls_temp_modfile = v:null
+<
+
+ *'g:go_gopls_local'*
+
+Specifies the prefix for imports that `gopls` should consider group
+separately. When it is `v:null`, `gopls`' default will be used. By default it
+is `v:null`.
+>
+ let g:go_gopls_local = v:null
+<
+
+ *'g:go_diagnostics_enabled'*
+
+Specifies whether `gopls` diagnostics are enabled. Only the diagnostics for
+the current buffer will be processed when it is not set; all others will be
+ignored. By default it is disabled.
+>
+ let g:go_diagnostics_enabled = 0
+<
+
+ *'g:go_template_autocreate'*
+
+When a new Go file is created, vim-go automatically fills the buffer content
+with a Go code template. By default, the templates under the `templates`
+folder are used. This can be changed with the |'g:go_template_file'| and
+|'g:go_template_test_file'| settings to either use a different file in the
+same `templates` folder, or to use a file stored elsewhere.
+
+If the new file is created in an already prepopulated package (with other Go
+files), in this case a Go code template with only the Go package declaration
+(which is automatically determined according to the current package) is added.
+
+To always use the package name instead of the template, enable the
+|'g:go_template_use_pkg'| setting.
+
+By default it is enabled.
+>
+ let g:go_template_autocreate = 1
+<
+ *'g:go_template_file'*
+
+Specifies either the file under the `templates` folder that is used if a new
+Go file is created. Checkout |'g:go_template_autocreate'| for more info. By
+default the `hello_world.go` file is used.
+
+This variable can be set to an absolute path, so the template files don't have
+to be stored inside the vim-go directory structure. Useful when you want to
+use different templates for different projects.
+>
+ let g:go_template_file = "hello_world.go"
+<
+ *'g:go_template_test_file'*
+
+Like with |'g:go_template_file'|, this specifies the file to use for test
+tempaltes. The template file should be under the `templates` folder,
+alternatively absolute paths can be used, too. Checkout
+|'g:go_template_autocreate'| for more info. By default, the
+`hello_world_test.go` file is used.
+>
+ let g:go_template_test_file = "hello_world_test.go"
+<
+ *'g:go_template_use_pkg'*
+
+Specifies that, rather than using a template, the package name is used if a
+new Go file is created. Checkout |'g:go_template_autocreate'| for more info.
+By default the template file specified by |'g:go_template_file'| is used.
+
+>
+ let g:go_template_use_pkg = 0
+<
+ *'g:go_decls_includes'*
+
+Only useful if `ctrlp.vim`, `unite.vim`, `denite.nvim` or `fzf` are installed.
+This sets which declarations to show for |:GoDecls| (`ctrp.vim`),
+|unite-decls| (`unite.vim`) and |denite-decls| (`denite.nvim`). It is a Comma
+delimited list. Possible options are: {func,type}. The default is: >
+
+ let g:go_decls_includes = 'func,type'
+<
+ *'g:go_decls_mode'*
+
+Define the tool to be used for |:GoDecls|. Valid options are `ctrlp.vim`,
+`fzf`, or an empty string; in which case it will try to autodetect either
+`ctrlp.vim` or `fzf`.
+>
+ let g:go_decls_mode = ''
+<
+ *'g:go_echo_command_info'*
+
+Echoes information about various Go commands, such as `:GoBuild`, `:GoTest`,
+`:GoCoverage`, etc... Useful to disable if you use the statusline integration,
+i.e: |go#statusline#Show()|. By default it's enabled
+>
+ let g:go_echo_command_info = 1
+<
+ *'g:go_echo_go_info'*
+
+Use this option to show the identifier information when code completion is
+done. By default it's enabled. >
+
+ let g:go_echo_go_info = 1
+<
+Please note that 'noshowmode' must be set for this feature to work correctly.
+
+ *'g:go_statusline_duration'*
+
+Specifies the duration of statusline information being showed per package. By
+default it's 60 seconds. Must be in milliseconds.
+>
+ let g:go_statusline_duration = 60000
+<
+ *'g:go_addtags_transform'*
+
+Sets the `transform` option for `gomodifytags` when using |:GoAddTags| or if
+it's being used for snippet expansion of single fields. Possible options are:
+`snakecase`, `camelcase`, `lispcase`, `pascalcase`, `keep`. For the following
+case, if `snakecase` is used the field will be transformed to:
+>
+ type T struct {
+ FooBarQuz string `json:"foo_bar_quz"`
+ }
+<
+
+If "camelcase" is used:
+>
+ type T struct {
+ FooBarQuz string `json:"fooBarQuz"`
+ }
+<
+By default "snakecase" is used. Current values are: ["snakecase",
+"camelcase", "lispcase", "pascalcase", "keep"].
+>
+ let g:go_addtags_transform = 'snakecase'
+<
+ *'g:go_addtags_skip_unexported'*
+
+Sets the `skip-unexported` option for `gomodifytags` when using |:GoAddTags|.
+If set it will prevent `gomodifytags` from adding tags to unexported fields:
+>
+ type T struct {
+ FooBar string `json:"foo_bar"`
+ quz string
+ }
+<
+By default it is disabled.
+>
+ let g:go_addtags_skip_unexported = 0
+<
+ *'g:go_debug'*
+
+A list of options to debug; useful for development and/or reporting bugs.
+
+Currently accepted values:
+
+ shell-commands Echo all shell commands that vim-go runs.
+ debugger-state Expose debugger state in 'g:go_debug_diag'.
+ debugger-commands Echo communication between vim-go and `dlv`; requests and
+ responses are recorded in `g:go_debug_commands`.
+ lsp Echo communication between vim-go and `gopls`. All
+ communication is shown in a dedicated window. When
+ enabled before gopls is started, |:GoLSPDebugBrowser| can
+ be used to open a browser window to help debug gopls.
+>
+ let g:go_debug = []
+<
+
+==============================================================================
+SYNTAX HIGHLIGHTING *ft-go-syntax* *go-syntax*
+
+vim-go comes with an enhanced version of Vim's Go syntax highlighting. It
+comes with a number of features, most of which are disabled by default.
+
+The recommended settings are the default values. If you're experiencing
+slowdowns in Go files and you enabled some of these options then try disabling
+them; some can be resource intensive.
+
+ *'g:go_fold_enable'*
+
+Control syntax-based folding which takes effect when 'foldmethod' is set to
+`syntax`.
+You can enable specific fold regions by setting an array. Possible values are:
+
+ block `{` .. `}` blocks.
+ import `import` block.
+ varconst `var` and `const` blocks.
+ package_comment The package comment.
+ comment Any comment that is not the package comment.
+
+By default all except "comment" are enabled:
+>
+ let g:go_fold_enable = ['block', 'import', 'varconst', 'package_comment']
+<
+Enable folding of only imports:
+>
+ let g:go_fold_enable = ['import']
+<
+Disable everything (same as not setting 'foldmethod' to `syntax`):
+>
+ let g:go_fold_enable = []
+<
+ *'g:go_highlight_array_whitespace_error'*
+
+Highlight white space after `[]`. >
+
+ let g:go_highlight_array_whitespace_error = 0
+<
+ *'g:go_highlight_chan_whitespace_error'*
+
+Highlight white space around the receive operator (`<-`) that doesn't follow
+the standard style. >
+
+ let g:go_highlight_chan_whitespace_error = 0
+<
+ *'g:go_highlight_extra_types'*
+
+Highlight commonly used library types (`io.Reader`, etc.). >
+
+ let g:go_highlight_extra_types = 0
+<
+ *'g:go_highlight_space_tab_error'*
+
+Highlight instances of tabs following spaces. >
+
+ let g:go_highlight_space_tab_error = 0
+<
+ *'g:go_highlight_trailing_whitespace_error'*
+
+Highlight trailing white space. >
+
+ let g:go_highlight_trailing_whitespace_error = 0
+<
+ *'g:go_highlight_operators'*
+
+Highlight operators such as `:=` , `==`, `-=`, etc.
+>
+ let g:go_highlight_operators = 0
+<
+ *'g:go_highlight_functions'*
+
+Highlight function and method declarations.
+>
+ let g:go_highlight_functions = 0
+<
+ *'g:go_highlight_function_parameters'*
+
+Highlight the variable names in parameters (including named return parameters)
+in function declarations. Setting this implies the functionality from
+|'g:go_highlight_functions'|.
+>
+ let g:go_highlight_function_parameters = 0
+<
+ *'g:go_highlight_function_calls'*
+
+Highlight function and method calls.
+>
+ let g:go_highlight_function_calls = 0
+<
+ *'g:go_highlight_types'*
+
+Highlight struct and interface names.
+>
+ let g:go_highlight_types = 0
+<
+ *'g:go_highlight_fields'*
+
+Highlight struct field names.
+>
+ let g:go_highlight_fields = 0
+<
+ *'g:go_highlight_build_constraints'*
+
+Highlights build constraints.
+>
+ let g:go_highlight_build_constraints = 0
+<
+ *'g:go_highlight_generate_tags'*
+
+Highlight go:generate directives.
+>
+ let g:go_highlight_generate_tags = 0
+<
+ *'g:go_highlight_string_spellcheck'*
+
+Highlight spelling errors in strings when |spell| is enabled.
+>
+ let g:go_highlight_string_spellcheck = 1
+<
+ *'g:go_highlight_format_strings'*
+
+Highlight printf-style formatting verbs inside string literals.
+>
+ let g:go_highlight_format_strings = 1
+<
+ *'g:go_highlight_variable_declarations'*
+
+Highlight variable names in variable declarations (`x` in ` x :=`).
+>
+ let g:go_highlight_variable_declarations = 0
+<
+ *'g:go_highlight_variable_assignments'*
+
+Highlight variable names in variable assignments (`x` in `x =`).
+>
+ let g:go_highlight_variable_assignments = 0
+<
+ *'g:go_highlight_diagnostic_errors'*
+
+Highlight diagnostic errors.
+>
+ let g:go_highlight_diagnostic_errors = 1
+<
+ *'g:go_highlight_diagnostic_warnings'*
+
+Highlight diagnostic warnings.
+>
+ let g:go_highlight_diagnostic_warnings = 1
+<
+
+==============================================================================
+ *gohtmltmpl* *ft-gohtmltmpl-syntax*
+ *gotexttmpl* *ft-gotexttmpl-syntax*
+Go template syntax~
+
+The `gotexttmpl` 'filetype' provides syntax highlighting and indentation for
+Go's `text/template` package.
+
+The `gohtmltmpl` filetype is for use with the `html/template` package and is
+identical to `gotexttmpl` except that it will also load the standard `html`
+filetype.
+
+The `gohtmltmpl` filetype is automatically set for `*.tmpl` files; the
+`gotexttmpl` is never automatically set and needs to be set manually.
+
+==============================================================================
+ *gomod* *ft-gomod-syntax*
+go.mod file syntax~
+
+The `gomod` 'filetype' provides syntax highlighting for Go's module file
+`go.mod`
+
+
+==============================================================================
+DEBUGGER *go-debug*
+
+Vim-go comes with a special "debugger mode". This starts a `dlv` process in
+the background and provides various commands to communicate with it.
+
+This debugger is similar to Visual Studio or Eclipse and has the following
+features:
+
+ * Show stack trace and jumps.
+ * List local variables.
+ * List function arguments.
+ * Expand values of struct or array/slice.
+ * Show balloon on the symbol.
+ * Show output of stdout/stderr.
+ * Toggle breakpoint.
+ * Stack operation continue/next/step out.
+
+This feature requires either Vim 8.0.0087 or newer with the |+job| feature or
+Neovim. This features also requires Delve 1.0.0 or newer, and it is
+recommended to use Go 1.10 or newer, as its new caching will speed up
+recompiles.
+
+ *go-debug-intro*
+GETTING STARTED WITH THE DEBUGGER~
+
+Use |:GoDebugStart| or |:GoDebugTest| to start the debugger. The first
+argument is the package name, and any arguments after that will be passed on
+to the program; for example:
+>
+ :GoDebugStart . -someflag value
+<
+This may take few seconds. After the code is compiled you'll see three new
+windows: the stack trace on left side, the variable list on the bottom-left,
+and program output at the bottom.
+
+You can add breakpoints with |:GoDebugBreakpoint| (<F9>) and run your program
+with |:GoDebugContinue| (<F5>).
+
+The program will halt on the breakpoint, at which point you can inspect the
+program state. You can go to the next line with |:GoDebugNext| (<F10>) or step
+in with |:GoDebugStep| (<F11>).
+
+The variable window in the bottom left (`GODEBUG_VARIABLES`) will display all
+local variables. Struct values are displayed as `{...}`, array/slices as
+`[4]`. Use <CR> on the variable name to expand the values.
+
+The `GODEBUG_OUTPUT` window displays output from the program and the Delve
+debugger.
+
+The `GODEBUG_STACKTRACE` window can be used to jump to different places in the
+call stack.
+
+When you're done use |:GoDebugStop| to close the debugging windows and halt
+the `dlv` process, or |:GoDebugRestart| to recompile the code.
+
+ *go-debug-commands*
+DEBUGGER COMMANDS~
+
+Only |:GoDebugStart|, `:GoDebugTest`, and |:GoDebugBreakpoint| are available
+by default. `:GoDebugContinue` becomes available after running `:GoDebugStart`
+or `:GoDebugTest`. The rest of the commands and mappings become available
+after executing `:GoDebugContinue`.
+
+ *:GoDebugStart*
+:GoDebugStart [pkg] [program-args]
+
+ Start the debug mode for [pkg]; this does several things:
+
+ * Setup the debug windows according to |'g:go_debug_windows'|.
+ * Make the `:GoDebug*` commands and `(go-debug-*)` mappings available.
+
+ The directory of the current buffer is used if [pkg] is empty. Any other
+ arguments will be passed to the program.
+
+ Use |:GoDebugStop| to stop `dlv` and exit debugging mode.
+
+ *:GoDebugTest*
+:GoDebugTest [pkg] [program-args]
+
+ Behaves the same as |:GoDebugStart| but runs `dlv test` instead of
+ `dlv debug` so you can debug tests.
+
+ Use `-test.flag` to pass flags to `go test` when debugging a test; for
+ example `-test.v` or `-test.run TestFoo`
+
+ *:GoDebugRestart*
+:GoDebugRestart
+
+ Stop the program (if running) and restart `dlv` to recompile the package.
+ The current window layout and breakpoints will be left intact.
+
+ *:GoDebugStop*
+ *(go-debug-stop)*
+:GoDebugStop
+
+ Stop `dlv` and remove all debug-specific commands, mappings, and windows.
+
+ *:GoDebugBreakpoint*
+ *(go-debug-breakpoint)*
+:GoDebugBreakpoint [linenr]
+
+ Toggle breakpoint for the [linenr]. [linenr] defaults to the current line
+ if it is omitted. A line with a breakpoint will have the
+ {godebugbreakpoint} |:sign| placed on it. The line the program is
+ currently halted on will have the {godebugcurline} sign.
+
+ *hl-GoDebugCurrent* *hl-GoDebugBreakpoint*
+ A line with a breakpoint will be highlighted with the {GoDebugBreakpoint}
+ group; the line the program is currently halted on will be highlighted
+ with {GoDebugCurrent}.
+
+ Mapped to <F9> by default.
+
+ *:GoDebugContinue*
+ *(go-debug-continue)*
+:GoDebugContinue
+
+ Continue execution until breakpoint or program termination. It will start
+ the program if it hasn't been started yet.
+
+ Mapped to <F5> by default.
+
+ *:GoDebugNext*
+ *(go-debug-next)*
+:GoDebugNext
+
+ Advance execution by one line, also called "step over" by some other
+ debuggers.
+
+ Mapped to <F10> by default.
+
+ *:GoDebugStep*
+ *(go-debug-step)*
+:GoDebugStep
+
+ Advance execution by one step, stopping at the next line of code that will
+ be executed (regardless of location).
+
+ Mapped to <F11> by default.
+
+ *:GoDebugStepOut*
+ *(go-debug-stepout)*
+
+:GoDebugStepOut
+
+ Run all the code in the current function and halt when the function
+ returns ("step out of the current function").
+
+ *:GoDebugSet*
+:GoDebugSet {var} {value}
+
+ Set the variable {var} to {value}. Example:
+>
+ :GoDebugSet truth 42
+<
+ This only works for `float`, `int` and variants, `uint` and variants,
+ `bool`, and pointers (this is a `delve` limitation, not a vim-go
+ limitation).
+
+ *:GoDebugPrint*
+ *(go-debug-print)*
+:GoDebugPrint {expr}
+
+ Print the result of a Go expression.
+>
+ :GoDebugPrint truth == 42
+ truth == 42 true
+<
+ Mapped to <F6> by default, which will evaluate the <cword> under the
+ cursor.
+
+ *go-debug-settings*
+DEBUGGER SETTINGS~
+
+ *'g:go_debug_windows'*
+
+Controls the window layout for debugging mode. This is a |dict| with four
+possible keys: "vars", "stack", "goroutines", and "out"; each of the new
+windows will be created in that that order with the commands in the value. The
+current window is made the only window before creating the debug windows.
+
+A window will not be created if a key is missing or empty.
+
+Defaults:
+>
+ let g:go_debug_windows = {
+ \ 'vars': 'leftabove 30vnew',
+ \ 'stack': 'leftabove 20new',
+ \ 'goroutines': 'botright 10new',
+ \ 'out': 'botright 5new',
+ \ }
+<
+Show only variables on the right-hand side: >
+
+ let g:go_debug_windows = {
+ \ 'vars': 'rightbelow 60vnew',
+ \ }
+<
+ *'g:go_debug_address'*
+
+Server address `dlv` will listen on; must be in `hostname:port` format.
+Defaults to `127.0.0.1:8181`:
+>
+ let g:go_debug_address = '127.0.0.1:8181'
+<
+
+ *'g:go_debug_log_output'*
+
+Specifies log output options for `dlv`. Value should be a single string of
+comma-separated options suitable for passing to `dlv`. An empty string (`''`)
+will suppress logging entirely. Default: `'debugger,rpc'`:
+>
+ let g:go_debug_log_output = 'debugger,rpc'
+<
+
+ *'g:go_highlight_debug'*
+
+Highlight the current line and breakpoints in the debugger.
+
+>
+ let g:go_highlight_debug = 1
+<
+
+ *'go:go_debug_breakpoint_sign_text'*
+
+Set the sign text used for breakpoints in the debugger. By default it's '>'.
+
+>
+ let g:go_debug_breakpoint_sign_text = '>'
+<
+
+==============================================================================
+FAQ TROUBLESHOOTING *go-troubleshooting*
+
+How do I troubleshoot problems?~
+
+One of the best ways to understand what vim-go is doing and the output from
+the tools to which it delegates is to use leverage the features described in
+|'g:go_debug'|.
+
+Completion and other functions that use `gopls` don't work~
+
+Vim-go is heavily reliant on `gopls` for completion and other functionality.
+Many of the features that use `gopls` (e.g. completion, jumping to
+definitions, showing identifier information, et al.) can be configured to
+delegate to other tools. e.g. completion via 'omnifunc', |'g:go_info_mode'|
+and |'g:go_def_mode'| can be set to use other tools for now (though some of
+the alternatives to `gopls` are effectively at their end of life and support
+for them from within vim-go may be removed soon).
+
+I want to disable `gopls`~
+
+Vim-go's use of `gopls` can be disabled with 'g:go_gopls_enabled'.
+
+Some users want to do this to limit the load on their system when using vim-go
+concurrently with an LSP client like vim-lsp. Instead of disabling vim-go's
+use of `gopls`, you may prefer to configure vim-go to share the `gopls`
+instance with other LSP plugins. 'g:go_gopls_options' can be used to configure
+how vim-go starts `gopls` so that the instance can be shared with other
+plugins and vim-go user's can leverage the full power of vim-go.
+
+I get a "Unknown function: go#config#..." error~
+
+This often happens to vim-polyglot users when new config options are added to
+vim-go. Run vim-polyglot's `build` script or make sure that vim-go is loaded
+before vim-polyglot.
+
+It can also happen when multiple versions of vim-go are installed and the
+version loaded by Vim doesn't have a function introduced by a later version.
+To see where vim-go is being loaded from run
+>
+ :verbose function go#config#FmtAutosave
+<
+
+The output will show the path to the `autoload/go/config.vim` that was loaded
+by Vim. Make sure the root of the path to output by the command is the path
+from which vim-go is expected to sourced. If it is not rooted as expected,
+then there are multiple copies of vim-go installed; remove the unexpected
+copies.
+
+I get "not an editor command" error when I invoke :GoXXX~
+
+This happens if vim-go is not installed properly. Be sure you have added this
+line into your vimrc:
+>
+ filetype plugin indent on
+<
+
+I get a "command not found" error when I invoke :GoXXX~
+
+If you try to call |:GoDef|, |:GoInfo| and get a command not found, check that
+you have the binaries installed by using |:GoInstallBinaries|.
+
+Before opening vim, check your current $PATH:
+>
+ echo $PATH
+<
+After opening vim, run `:echo $PATH`, the output must be your current `$PATH`
+plus `$GOPATH/bin` (the location where |:GoInstallBinaries| installed the
+binaries).
+
+ *go-guru-scope*
+What is the guru scope and how do I set it?~
+
+Many vim-go commands use the `guru` commandline tool to get information. Some
+`guru` commands require an expensive analysis of the source code. To still get
+a reasonable amount of performance `guru` limits this analysis to a selected
+list of packages. This is known as the "guru scope".
+
+The default is to use the package the current buffer belongs to, but this may
+not always be correct. For example for the file `guthub.com/user/pkg/a/a.go`
+the scope will be set to `github.com/user/pkg/a`, but you probably want
+`github.com/user/pkg`
+
+Guessing what package(s) you do want is not easy so you may need to set this
+manually, usually from an |autocommand|:
+>
+ autocmd BufRead /home/martin/go/src/github.com/user/pkg/*.go
+ \ :GoGuruScope github.com/user/pkg
+<
+
+If you have a lot of packages with the same prefix (`github.com/user`) you can
+use a single autocommand:
+>
+ autocmd BufRead /home/martin/go/src/*.go
+ \ let s:tmp = matchlist(expand('%:p'),
+ \ '/home/martin/go/src/\(github.com/user/[^/]\+\)')
+ \| if len(s:tmp) > 1 | exe 'silent :GoGuruScope ' . s:tmp[1] | endif
+ \| unlet s:tmp
+<
+Also see |:GoGuruScope| and |'g:go_guru_scope'|.
+
+
+Vim becomes slow while editing Go files~
+
+The most common cause for this is using an older version of Vim that doesn't
+support asynchronous jobs. |'g:go_auto_sameids'| and |'g:go_auto_type_info'|
+run jobs that can cause noticable delays when used with vim74. The problem is
+most pronounced on vim74, but can occur on vim8 and nvim. On vim8 and nvim,
+the problem should be restricted to a short period when the first buffer in a
+package is first loaded.
+
+If you see unexpected characters rendered in the current window, the problem
+is most likely due to |'g:go_auto_sameids'| or |'g:go_auto_type_info'|. First,
+try using another mode for |'g:go_info_mode'|. If that doesn't work, try
+disabling |'g:go_auto_sameids'| and |'g:go_auto_type_info'|.
+
+To a lesser extent, this can be caused by `g:go_highlight_*` options. If Vim
+is just slower than normal, but doesn't render unexpected characters in the
+currrent window, then the problem is most likely the `g:go_highlight_*`
+options. Try disabling them if you've enabled some of them.
+
+I get errors when using GoInstallBinaries~
+
+If you see errors like this:
+>
+ Error installing golang.org/x/tools/cmd/goimports
+<
+that means your local Go setup is broken or the remote website is down. For
+example sometimes code.google.com times out. To test, just execute a simple
+`go get`:
+>
+ go get golang.org/x/tools/cmd/goimports
+<
+You'll see a more detailed error. If this works, vim-go will work too.
+
+
+I want to use a different binary name than "go", can I do this?~
+
+There is no way to directly configure the binary name; but you can use a
+wrapper script; for example if you would like to run `goapp` instead of `go`:
+
+1. In `~/gobin/go` (remember to make it executable):
+>
+ #!/bin/sh
+ # Remove gobin from PATH and run goapp.
+ PATH=${PATH#$HOME/gobin} goapp "$@"
+<
+2. Start Vim with `~/gobin` as the first `PATH` entry so it will use the
+ wrapper script:
+>
+ PATH="$HOME/gobin/:$PATH" vim
+<
+ Alternatively you you could set `$PATH` in your vimrc with an |:autocmd|.
+
+
+How do I use vim-go with syntastic?~
+
+Sometimes when using both `vim-go` and `syntastic` Vim will start lagging
+while saving and opening files. The following fixes this:
+>
+ let g:syntastic_go_checkers = ['golint', 'govet']
+ let g:syntastic_mode_map = { 'mode': 'active', 'passive_filetypes': ['go'] }
+<
+If you want to add errcheck you can use golangci-lint as a wrapper:
+>
+ let g:syntastic_go_checkers = ['golint', 'govet', 'golangci-lint']
+ let g:syntastic_go_gometalinter_args = ['--disable-all', '--enable=errcheck']
+ let g:syntastic_mode_map = { 'mode': 'active', 'passive_filetypes': ['go'] }
+<
+Another issue with `vim-go` and `syntastic` is that the location list window
+that contains the output of commands such as `:GoBuild` and `:GoTest` might
+not appear. To resolve this:
+>
+ let g:go_list_type = "quickfix"
+<
+
+How do I run focused ginkgo tests?~
+
+You must set this environment variable in your `.vimrc`:
+>
+ let $GINKGO_EDITOR_INTEGRATION = "true"
+<
+
+Using with NeoVim~
+
+Note: Neovim currently is not a first class citizen for vim-go. You are free
+to open bug, however I'm not using Neovim so it's hard for me to test it.
+vim-go might not work as well in Neovim as it does in Vim. I'm happy to accept
+pull requests or very detailed bug reports. If you're interested to improve
+the state of Neovim in vim-go you're always welcome!
+
+Run `:GoRun` in a new tab, horizontal split or vertical split terminal
+>
+ au FileType go nmap <leader>rt <Plug>(go-run-tab)
+ au FileType go nmap <leader>rs <Plug>(go-run-split)
+ au FileType go nmap <leader>rv <Plug>(go-run-vertical)
+<
+By default new terminals are opened in a vertical split. To change it
+>
+ let g:go_term_mode = "split"
+>
+
+How can I customize the highlighting?~
+
+All the highlight groups used by vim-go are prefixed with `go` (e.g.
+`goType`) and are defined in the files in the `syntax` directory. To change
+the highlighting for any group, add a `highlight` command for the group to
+your vimrc. To turn off the highlighting for any group, add `highlight link
+group-name NONE` (where `group-name` is the name of the group whose highlight
+you'd like to turn off) to your vimrc.
+
+Some people may wish to highlight Go's builtins as keywords. To do so, one
+should simply add `highlight link goBuiltins Keyword` to the `vimrc` file.
+
+==============================================================================
+DEVELOPMENT *go-development*
+
+vim-go supports test files written in VimScript; the way they're run is
+roughly similar to Go tests:
+
+- A `*.vim` file has a corresponding `*_test.vim`.
+- All functions starting with `Test_` are run as test.
+- A test is considered to be "failed" if |v:errors| has any entries. You can
+ use one of the |test-functions| to set this, or append to it directly.
+
+A simple example:
+>
+ function Test_run_fmt()
+ call assert_equal(expected, actual)
+ ...
+ endfunction
+<
+To run tests vim-go comes with three small helper scripts:
+
+ `scripts/install-vim` Install a pristine Vim to `/tmp/vim-go-test/`.
+ `scripts/run-vim` Run a Vim version from `/tmp/vim-go-test/`.
+ `scripts/test` Run all tests with a Vim from `/tmp/vim-go-test/`.
+
+All scripts accept a Vim version as the first argument, which can be
+`vim-8.0` or `nvim`. You will need to install a Vim version with
+`install-vim` before you can use `run-vim` or `test`.
+
+You can install and test all Vim versions by running `make`.
+
+
+==============================================================================
+DONATION *go-donation*
+
+People have asked for this for a long time, now you can be a fully supporter
+by being a patreon at: https://www.patreon.com/bhcleek
+
+By being a patron, you are enabling vim-go to grow and mature, helping me to
+invest in bug fixes, new documentation, and improving both current and future
+features. It's completely optional and is just a direct way to support
+vim-go's ongoing development. Thanks!
+
+Check it out: https://www.patreon.com/bhcleek
+
+
+==============================================================================
+CREDITS *go-credits*
+
+* Go Authors for official Vim plugins.
+* Gocode, Godef, Golint, Guru, Goimports, Errcheck projects and authors of
+ those projects.
+* Other vim-plugins, thanks for inspiration (vim-golang, go.vim, vim-gocode,
+ vim-godef).
+* vim-go contributors: https://github.com/fatih/vim-go/graphs/contributors.
+
+
+ vim: ft=help tw=78 et ts=2 sw=2 sts=2 norl
+
+endif
diff --git a/doc/vim-jsonnet.txt b/doc/vim-jsonnet.txt
new file mode 100644
index 00000000..988453bc
--- /dev/null
+++ b/doc/vim-jsonnet.txt
@@ -0,0 +1,104 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsonnet') == -1
+
+*vim-jsonnet.txt* Jsonnet development plugin
+*vim-jsonnet*
+
+====================================================================================
+ # # ### # # # ##### ####### # # # # ####### #######
+ # # # ## ## # # # # # ## # ## # # #
+ # # # # # # # # # # # # # # # # # # #
+ # # # # # # ##### # ##### # # # # # # # # ##### #
+ # # # # # # # # # # # # # # # # # #
+ # # # # # # # # # # # # ## # ## # #
+ # ### # # ##### ##### ####### # # # # ####### #
+====================================================================================
+CONTENTS *jsonnet-contents*
+
+ 1. Intro........................................|jsonnet-intro|
+ 2. Install......................................|jsonnet-install|
+ 3. Commands.....................................|jsonnet-commands|
+ 4. Mappings.....................................|jsonnet-mappings|
+ 6. Functions....................................|jsonnet-functions|
+ 7. Settings.....................................|jsonnet-settings|
+ 8. Troubleshooting..............................|jsonnet-troubleshooting|
+ 9. Credits......................................|jsonnet-credits|
+
+==============================================================================
+INTRO *jsonnet-intro*
+
+==============================================================================
+INSTALL *jsonnet-install*
+
+==============================================================================
+COMMANDS *jsonnet-commands*
+
+ *:JsonnetFmt*
+:JsonnetFmt
+
+Filter the current Jsonnet buffer through `jsonnetfmt`. It tries to
+preserve cursor position and avoids replacing the buffer with stderr
+output.
+
+==============================================================================
+MAPPINGS *jsonnet-mappings*
+
+==============================================================================
+FUNCTIONS *jsonnet-functions*
+
+ *jsonnet#Format()*
+
+Filter the current Jsonnet buffer through `jsonnetfmt`. It tries to
+preserve cursor position and avoids replacing the buffer with stderr
+output.
+
+==============================================================================
+SETTINGS *jsonnet-settings*
+
+ *'g:jsonnet_fmt_on_save'*
+
+Use this option to auto |:JsonnetFmt| on save. By default it's enabled >
+
+ let g:jsonnet_fmt_on_save = 1
+<
+ *'g:jsonnet_command'*
+
+Use this option to define which tool is used to fotmat. By default `jsonnet` is
+used >
+
+ let g:jsonnet_command = "jsonnet"
+<
+ *'g:jsonnet_fmt_command'*
+
+Use this option to define which <cmd> parameter is used with *g:jsonnet_command* tool.
+By default `fmt` is used >
+
+ let g:jsonnet_fmt_command = "fmt"
+<
+ *'g:jsonnet_fmt_options'*
+
+Use this option to add additional options to the
+|'g:jsonnet_command'| + |'g:jsonnet_fmt_command'|. Default is empty. >
+
+ let g:jsonnet_fmt_options = ''
+<
+ *'g:jsonnet_fmt_fail_silently'*
+
+Use this option to enable processing of
+|'g:jsonnet_command'| + |'g:jsonnet_fmt_command'| command if it fails. By default
+it is turned off. By default the error output from the
+|'g:jsonnet_command'| + |'g:jsonnet_fmt_command'| command is ignored.
+FixMe: The processing of the |'g:jsonnet_command'| + |'g:jsonnet_fmt_command'|
+is not implemented yet. So clearing this option would not do anything at this time. >
+
+ let g:jsonnet_fmt_fail_silently = 1
+<
+
+==============================================================================
+TROUBLESHOOTING *jsonnet-troubleshooting*
+
+==============================================================================
+CREDITS *jsonnet-credits*
+
+
+
+endif
diff --git a/doc/vim-markdown.txt b/doc/vim-markdown.txt
new file mode 100644
index 00000000..c2337e69
--- /dev/null
+++ b/doc/vim-markdown.txt
@@ -0,0 +1,667 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'markdown') == -1
+
+*vim-markdown* Vim Markdown
+
+===============================================================================
+Contents ~
+
+ 1. Introduction |vim-markdown-introduction|
+ 2. Installation |vim-markdown-installation|
+ 3. Basic usage |vim-markdown-basic-usage|
+ 1. Folding |vim-markdown-folding|
+ 2. Concealing |vim-markdown-concealing|
+ 4. Options |vim-markdown-options|
+ 1. Disable Folding |vim-markdown-disable-folding|
+ 2. Change fold style |vim-markdown-change-fold-style|
+ 3. Set header folding level |vim-markdown-set-header-folding-level|
+ 4. Disable Default Key Mappings |vim-markdown-disable-default-key-mappings|
+ 5. Enable TOC window auto-fit |vim-markdown-enable-toc-window-auto-fit|
+ 6. Text emphasis restriction to single-lines
+ |vim-markdown-text-emphasis-restriction-to-single-lines|
+ 7. Syntax Concealing |vim-markdown-syntax-concealing|
+ 8. Fenced code block languages |vim-markdown-fenced-code-block-languages|
+ 9. Follow named anchors |vim-markdown-follow-named-anchors|
+ 10. Syntax extensions |vim-markdown-syntax-extensions|
+ 1. LaTeX math |vim-markdown-latex-math|
+ 2. YAML Front Matter |vim-markdown-yaml-front-matter|
+ 3. TOML Front Matter |vim-markdown-toml-front-matter|
+ 4. JSON Front Matter |vim-markdown-json-front-matter|
+ 5. Strikethrough |vim-markdown-strikethrough|
+ 11. Adjust new list item indent |vim-markdown-adjust-new-list-item-indent|
+ 12. Do not require .md extensions for Markdown links
+ |vim-markdown-do-not-require-.md-extensions-for-markdown-links|
+ 13. Auto-write when following link
+ |vim-markdown-auto-write-when-following-link|
+ 14. Change default file extension
+ |vim-markdown-change-default-file-extension|
+ 15. Do not automatically insert bulletpoints
+ |vim-markdown-do-not-automatically-insert-bulletpoints|
+ 16. Change how to open new files |vim-markdown-change-how-to-open-new-files|
+ 5. Mappings |vim-markdown-mappings|
+ 6. Commands |vim-markdown-commands|
+ 7. Credits |vim-markdown-credits|
+ 8. License |vim-markdown-license|
+ 9. References |vim-markdown-references|
+
+===============================================================================
+ *vim-markdown-introduction*
+Introduction ~
+
+Syntax highlighting, matching rules and mappings for the original Markdown [1]
+and extensions.
+
+===============================================================================
+ *vim-markdown-installation*
+Installation ~
+
+If you use Vundle [2], add the following lines to your '~/.vimrc':
+>
+ Plugin 'godlygeek/tabular'
+ Plugin 'plasticboy/vim-markdown'
+<
+The 'tabular' plugin must come _before_ 'vim-markdown'.
+
+Then run inside Vim:
+>
+ :so ~/.vimrc
+ :PluginInstall
+<
+If you use Pathogen [3], do this:
+>
+ cd ~/.vim/bundle
+ git clone https://github.com/plasticboy/vim-markdown.git
+<
+To install without Pathogen using the Debian vim-addon-manager [4], do this:
+>
+ git clone https://github.com/plasticboy/vim-markdown.git
+ cd vim-markdown
+ sudo make install
+ vim-addon-manager install markdown
+<
+If you are not using any package manager, download the tarball [5] and do this:
+>
+ cd ~/.vim
+ tar --strip=1 -zxf vim-markdown-master.tar.gz
+<
+===============================================================================
+ *vim-markdown-basic-usage*
+Basic usage ~
+
+-------------------------------------------------------------------------------
+ *vim-markdown-folding*
+Folding ~
+
+Folding is enabled for headers by default.
+
+The following commands are useful to open and close folds:
+
+ *vim-markdown-zr*
+- 'zr': reduces fold level throughout the buffer
+ *vim-markdown-zR*
+- 'zR': opens all folds
+ *vim-markdown-zm*
+- 'zm': increases fold level throughout the buffer
+ *vim-markdown-zM*
+- 'zM': folds everything all the way
+ *vim-markdown-za*
+- 'za': open a fold your cursor is on
+ *vim-markdown-zA*
+- 'zA': open a fold your cursor is on recursively
+ *vim-markdown-zc*
+- 'zc': close a fold your cursor is on
+ *vim-markdown-zC*
+- 'zC': close a fold your cursor is on recursively
+
+Options are available to disable folding or change folding style.
+
+Try ':help fold-expr' and ':help fold-commands' for details.
+
+-------------------------------------------------------------------------------
+ *vim-markdown-concealing*
+Concealing ~
+
+Concealing is set for some syntax such as bold, italic, code block and link.
+
+Concealing lets you conceal text with other text. The actual source text is not
+modified. If you put your cursor on the concealed line, the conceal goes away.
+
+Options are available to disable or change concealing.
+
+Try ':help concealcursor' and ':help conceallevel' for details.
+
+===============================================================================
+ *vim-markdown-options*
+Options ~
+
+-------------------------------------------------------------------------------
+ *vim-markdown-disable-folding*
+Disable Folding ~
+
+ *g:vim_markdown_folding_disabled*
+- 'g:vim_markdown_folding_disabled'
+
+ Add the following line to your '.vimrc' to disable the folding
+ configuration:
+>
+ let g:vim_markdown_folding_disabled = 1
+<
+ This option only controls Vim Markdown specific folding configuration.
+
+ To enable/disable folding use Vim's standard folding configuration.
+>
+ set [no]foldenable
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-change-fold-style*
+Change fold style ~
+
+ *g:vim_markdown_folding_style_pythonic*
+- 'g:vim_markdown_folding_style_pythonic'
+
+ To fold in a style like python-mode [6], add the following to your
+ '.vimrc':
+>
+ let g:vim_markdown_folding_style_pythonic = 1
+<
+ 'g:vim_markdown_folding_level' setting (default 1) is set to 'foldlevel'.
+ Thus level 1 heading which is served as a document title is expanded by
+ default.
+
+ *g:vim_markdown_override_foldtext*
+- 'g:vim_markdown_override_foldtext'
+
+ To prevent foldtext from being set add the following to your '.vimrc':
+>
+ let g:vim_markdown_override_foldtext = 0
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-set-header-folding-level*
+Set header folding level ~
+
+ *g:vim_markdown_folding_level*
+- 'g:vim_markdown_folding_level'
+
+ Folding level is a number between 1 and 6. By default, if not specified, it
+ is set to 1.
+>
+ let g:vim_markdown_folding_level = 6
+<
+ Tip: it can be changed on the fly with:
+>
+ :let g:vim_markdown_folding_level = 1
+ :edit
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-disable-default-key-mappings*
+Disable Default Key Mappings ~
+
+ *g:vim_markdown_no_default_key_mappings*
+- 'g:vim_markdown_no_default_key_mappings'
+
+ Add the following line to your '.vimrc' to disable default key mappings:
+>
+ let g:vim_markdown_no_default_key_mappings = 1
+<
+ You can also map them by yourself with '<Plug>' mappings.
+
+-------------------------------------------------------------------------------
+ *vim-markdown-enable-toc-window-auto-fit*
+Enable TOC window auto-fit ~
+
+ *g:vim_markdown_toc_autofit*
+- 'g:vim_markdown_toc_autofit'
+
+ Allow for the TOC window to auto-fit when it's possible for it to shrink.
+ It never increases its default size (half screen), it only shrinks.
+>
+ let g:vim_markdown_toc_autofit = 1
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-text-emphasis-restriction-to-single-lines*
+Text emphasis restriction to single-lines ~
+
+ *g:vim_markdown_emphasis_multiline*
+- 'g:vim_markdown_emphasis_multiline'
+
+ By default text emphasis works across multiple lines until a closing token
+ is found. However, it's possible to restrict text emphasis to a single line
+ (i.e., for it to be applied a closing token must be found on the same
+ line). To do so:
+>
+ let g:vim_markdown_emphasis_multiline = 0
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-syntax-concealing*
+Syntax Concealing ~
+
+ *g:vim_markdown_conceal*
+- 'g:vim_markdown_conceal'
+
+ Concealing is set for some syntax.
+
+ For example, conceal '[link text](link url)' as just 'link text'. Also,
+ '_italic_' and '*italic*' will conceal to just _italic_. Similarly
+ '__bold__', '**bold**', '___italic bold___', and '***italic bold***' will
+ conceal to just **bold**, **bold**, **_italic bold_**, and **_italic
+ bold_** respectively.
+
+ To enable conceal use Vim's standard conceal configuration.
+>
+ set conceallevel=2
+<
+ To disable conceal regardless of 'conceallevel' setting, add the following
+ to your '.vimrc':
+>
+ let g:vim_markdown_conceal = 0
+<
+ To disable math conceal with LaTeX math syntax enabled, add the following
+ to your '.vimrc':
+>
+ let g:tex_conceal = ""
+ let g:vim_markdown_math = 1
+<
+ *g:vim_markdown_conceal_code_blocks*
+- 'g:vim_markdown_conceal_code_blocks'
+
+ Disabling conceal for code fences requires an additional setting:
+>
+ let g:vim_markdown_conceal_code_blocks = 0
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-fenced-code-block-languages*
+Fenced code block languages ~
+
+ *g:vim_markdown_fenced_languages*
+- 'g:vim_markdown_fenced_languages'
+
+ You can use filetype name as fenced code block languages for syntax
+ highlighting. If you want to use different name from filetype, you can add
+ it in your '.vimrc' like so:
+>
+ let g:vim_markdown_fenced_languages = ['csharp=cs']
+<
+ This will cause the following to be highlighted using the 'cs' filetype
+ syntax.
+>
+ ```csharp
+ ...
+ ```
+<
+ Default is "['c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini']".
+
+-------------------------------------------------------------------------------
+ *vim-markdown-follow-named-anchors*
+Follow named anchors ~
+
+ *g:vim_markdown_follow_anchor*
+- 'g:vim_markdown_follow_anchor'
+
+ This feature allows the 'ge' command to follow named anchors in links of
+ the form 'file#anchor' or just '#anchor', where file may omit the '.md'
+ extension as usual. Two variables control its operation:
+>
+ let g:vim_markdown_follow_anchor = 1
+<
+ This tells vim-markdown whether to attempt to follow a named anchor in a
+ link or not. When it is 1, and only if a link can be split in two parts by
+ the pattern '#', then the first part is interpreted as the file and the
+ second one as the named anchor. This also includes urls of the form
+ '#anchor', for which the first part is considered empty, meaning that the
+ target file is the current one. After the file is opened, the anchor will
+ be searched.
+
+ Default is '0'.
+
+ *g:vim_markdown_anchorexpr*
+- 'g:vim_markdown_anchorexpr'
+>
+ let g:vim_markdown_anchorexpr = "'<<'.v:anchor.'>>'"
+<
+ This expression will be evaluated substituting 'v:anchor' with a quoted
+ string that contains the anchor to visit. The result of the evaluation will
+ become the real anchor to search in the target file. This is useful in
+ order to convert anchors of the form, say, 'my-section-title' to searches
+ of the form 'My Section Title' or '<<my-section-title>>'.
+
+ Default is "''".
+
+-------------------------------------------------------------------------------
+ *vim-markdown-syntax-extensions*
+Syntax extensions ~
+
+The following options control which syntax extensions will be turned on. They
+are off by default.
+
+-------------------------------------------------------------------------------
+ *vim-markdown-latex-math*
+LaTeX math ~
+
+ *g:vim_markdown_math*
+- 'g:vim_markdown_math'
+
+ Used as '$x^2$', '$$x^2$$', escapable as '\$x\$' and '\$\$x\$\$'.
+>
+ let g:vim_markdown_math = 1
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-yaml-front-matter*
+YAML Front Matter ~
+
+ *g:vim_markdown_frontmatter*
+- 'g:vim_markdown_frontmatter'
+
+ Highlight YAML front matter as used by Jekyll or Hugo [7].
+>
+ let g:vim_markdown_frontmatter = 1
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-toml-front-matter*
+TOML Front Matter ~
+
+ *g:vim_markdown_toml_frontmatter*
+- 'g:vim_markdown_toml_frontmatter'
+
+ Highlight TOML front matter as used by Hugo [7].
+
+ TOML syntax highlight requires vim-toml [8].
+>
+ let g:vim_markdown_toml_frontmatter = 1
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-json-front-matter*
+JSON Front Matter ~
+
+ *g:vim_markdown_json_frontmatter*
+- 'g:vim_markdown_json_frontmatter'
+
+ Highlight JSON front matter as used by Hugo [7].
+
+ JSON syntax highlight requires vim-json [9].
+>
+ let g:vim_markdown_json_frontmatter = 1
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-strikethrough*
+Strikethrough ~
+
+ *g:vim_markdown_strikethrough*
+- 'g:vim_markdown_strikethrough'
+
+ Strikethrough uses two tildes. '~~Scratch this.~~'
+>
+ let g:vim_markdown_strikethrough = 1
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-adjust-new-list-item-indent*
+Adjust new list item indent ~
+
+ *g:vim_markdown_new_list_item_indent*
+- 'g:vim_markdown_new_list_item_indent'
+
+ You can adjust a new list indent. For example, you insert a single line
+ like below:
+>
+ * item1
+<
+ Then if you type 'o' to insert new line in vim and type '* item2', the
+ result will be:
+>
+ * item1
+ * item2
+<
+ vim-markdown automatically insert the indent. By default, the number of
+ spaces of indent is 4. If you'd like to change the number as 2, just write:
+>
+ let g:vim_markdown_new_list_item_indent = 2
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-do-not-require-.md-extensions-for-markdown-links*
+Do not require .md extensions for Markdown links ~
+
+ *g:vim_markdown_no_extensions_in_markdown*
+- 'g:vim_markdown_no_extensions_in_markdown'
+
+ If you want to have a link like this '[link text](link-url)' and follow it
+ for editing in vim using the 'ge' command, but have it open the file "link-
+ url.md" instead of the file "link-url", then use this option:
+>
+ let g:vim_markdown_no_extensions_in_markdown = 1
+<
+ This is super useful for GitLab and GitHub wiki repositories.
+
+ Normal behaviour would be that vim-markup required you to do this '[link
+ text](link-url.md)', but this is not how the Gitlab and GitHub wiki
+ repositories work. So this option adds some consistency between the two.
+
+-------------------------------------------------------------------------------
+ *vim-markdown-auto-write-when-following-link*
+Auto-write when following link ~
+
+ *g:vim_markdown_autowrite*
+- 'g:vim_markdown_autowrite'
+
+ If you follow a link like this '[link text](link-url)' using the 'ge'
+ shortcut, this option will automatically save any edits you made before
+ moving you:
+>
+ let g:vim_markdown_autowrite = 1
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-change-default-file-extension*
+Change default file extension ~
+
+ *g:vim_markdown_auto_extension_ext*
+- 'g:vim_markdown_auto_extension_ext'
+
+ If you would like to use a file extension other than '.md' you may do so
+ using the 'vim_markdown_auto_extension_ext' variable:
+>
+ let g:vim_markdown_auto_extension_ext = 'txt'
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-do-not-automatically-insert-bulletpoints*
+Do not automatically insert bulletpoints ~
+
+ *g:vim_markdown_auto_insert_bullets*
+- 'g:vim_markdown_auto_insert_bullets'
+
+ Automatically inserting bulletpoints can lead to problems when wrapping
+ text (see issue #232 for details), so it can be disabled:
+>
+ let g:vim_markdown_auto_insert_bullets = 0
+<
+ In that case, you probably also want to set the new list item indent to 0
+ as well, or you will have to remove an indent each time you add a new list
+ item:
+>
+ let g:vim_markdown_new_list_item_indent = 0
+<
+-------------------------------------------------------------------------------
+ *vim-markdown-change-how-to-open-new-files*
+Change how to open new files ~
+
+ *g:vim_markdown_edit_url_in*
+- 'g:vim_markdown_edit_url_in'
+
+ By default when following a link the target file will be opened in your
+ current buffer. This behavior can change if you prefer using splits or tabs
+ by using the 'vim_markdown_edit_url_in' variable. Possible values are
+ 'tab', 'vsplit', 'hsplit', 'current' opening in a new tab, vertical split,
+ horizontal split, and current buffer respectively. Defaults to current
+ buffer if not set:
+>
+ let g:vim_markdown_edit_url_in = 'tab'
+<
+===============================================================================
+ *vim-markdown-mappings*
+Mappings ~
+
+The following work on normal and visual modes:
+
+ *vim-markdown-gx*
+- 'gx': open the link under the cursor in the same browser as the standard
+ 'gx' command. '<Plug>Markdown_OpenUrlUnderCursor'
+
+ The standard 'gx' is extended by allowing you to put your cursor anywhere
+ inside a link.
+
+ For example, all the following cursor positions will work:
+>
+ [Example](http://example.com)
+ ^ ^ ^^ ^ ^
+ 1 2 34 5 6
+
+ <http://example.com>
+ ^ ^ ^
+ 1 2 3
+<
+ Known limitation: does not work for links that span multiple lines.
+
+ *vim-markdown-ge*
+- 'ge': open the link under the cursor in Vim for editing. Useful for
+ relative markdown links. '<Plug>Markdown_EditUrlUnderCursor'
+
+ The rules for the cursor position are the same as the 'gx' command.
+
+ *vim-markdown-]]*
+- ']]': go to next header. '<Plug>Markdown_MoveToNextHeader'
+
+ *vim-markdown-[[*
+- '[[': go to previous header. Contrast with ']c'.
+ '<Plug>Markdown_MoveToPreviousHeader'
+
+ *vim-markdown-][*
+- '][': go to next sibling header if any.
+ '<Plug>Markdown_MoveToNextSiblingHeader'
+
+ *vim-markdown-[]*
+- '[]': go to previous sibling header if any.
+ '<Plug>Markdown_MoveToPreviousSiblingHeader'
+
+ *vim-markdown-]c*
+- ']c': go to Current header. '<Plug>Markdown_MoveToCurHeader'
+
+ *vim-markdown-]u*
+- ']u': go to parent header (Up). '<Plug>Markdown_MoveToParentHeader'
+
+This plugin follows the recommended Vim plugin mapping interface, so to change
+the map ']u' to 'asdf', add to your '.vimrc':
+>
+ map asdf <Plug>Markdown_MoveToParentHeader
+<
+To disable a map use:
+>
+ map <Plug> <Plug>Markdown_MoveToParentHeader
+<
+===============================================================================
+ *vim-markdown-commands*
+Commands ~
+
+The following requires ':filetype plugin on'.
+
+ *:HeaderDecrease*
+- ':HeaderDecrease':
+
+ Decrease level of all headers in buffer: 'h2' to 'h1', 'h3' to 'h2', etc.
+
+ If range is given, only operate in the range.
+
+ If an 'h1' would be decreased, abort.
+
+ For simplicity of implementation, Setex headers are converted to Atx.
+
+ *:HeaderIncrease*
+- ':HeaderIncrease': Analogous to ':HeaderDecrease', but increase levels
+ instead.
+
+ *:SetexToAtx*
+- ':SetexToAtx':
+
+ Convert all Setex style headers in buffer to Atx.
+
+ If a range is given, e.g. hit ':' from visual mode, only operate on the
+ range.
+
+ *:TableFormat*
+- ':TableFormat': Format the table under the cursor like this [10].
+
+ Requires Tabular [11].
+
+ The input table _must_ already have a separator line as the second line of
+ the table. That line only needs to contain the correct pipes '|', nothing
+ else is required.
+
+ *:Toc*
+- ':Toc': create a quickfix vertical window navigable table of contents with
+ the headers.
+
+ Hit '<Enter>' on a line to jump to the corresponding line of the markdown
+ file.
+
+ *:Toch*
+- ':Toch': Same as ':Toc' but in an horizontal window.
+
+ *:Toct*
+- ':Toct': Same as ':Toc' but in a new tab.
+
+ *:Tocv*
+- ':Tocv': Same as ':Toc' for symmetry with ':Toch' and ':Tocv'.
+
+===============================================================================
+ *vim-markdown-credits*
+Credits ~
+
+The main contributors of vim-markdown are:
+
+- **Ben Williams** (A.K.A. **plasticboy**). The original developer of vim-
+ markdown. Homepage [12].
+
+If you feel that your name should be on this list, please make a pull request
+listing your contributions.
+
+===============================================================================
+ *vim-markdown-license*
+License ~
+
+The MIT License (MIT)
+
+Copyright (c) 2012 Benjamin D. Williams
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+===============================================================================
+ *vim-markdown-references*
+References ~
+
+[1] http://daringfireball.net/projects/markdown/
+[2] https://github.com/gmarik/vundle
+[3] https://github.com/tpope/vim-pathogen
+[4] http://packages.qa.debian.org/v/vim-addon-manager.html
+[5] https://github.com/plasticboy/vim-markdown/archive/master.tar.gz
+[6] https://github.com/klen/python-mode
+[7] https://gohugo.io/content/front-matter/
+[8] https://github.com/cespare/vim-toml
+[9] https://github.com/elzr/vim-json
+[10] http://www.cirosantilli.com/markdown-style-guide/#tables
+[11] https://github.com/godlygeek/tabular
+[12] http://plasticboy.com/
+
+vim: ft=help
+
+endif
diff --git a/doc/vim-raml.txt b/doc/vim-raml.txt
new file mode 100644
index 00000000..ea26798c
--- /dev/null
+++ b/doc/vim-raml.txt
@@ -0,0 +1,64 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'raml') == -1
+
+# vim-raml
+Vim syntax and language settings for RAML
+
+About
+---
+vim-raml is a superset of Vim's own syntax settings for YAML, as RAML itself
+is a superset of YAML. Obviously, filetype detection is provided for RAML
+files as well to make use of the expanded syntax, as well language formatting
+defaults.
+
+You'll notice several changes over using the default YAML syntax file:
+ - The RAML version header, manditory in RAML now stands out brightly,
+ rather than looking like a comment.
+ - Parameter interpolation i.e. ```<<thing>>``` is highlighted inside of blocks
+ and values.
+ - Delimiters and blocks i.e. ```-, |, etc``` are consistently highlighted
+ (flaky in YAML).
+ - HTTP verbs, response codes, data types, and route definitions are all
+ colored separately from regular keys to help immediately distingush
+ different levels of the data structure.
+ - HTTP verbs include all that are supported by RAML: get, post, put, delete,
+ head, patch, and options
+ - Response codes e.g. 200, 201, 404, 401, etc are colored like numbers
+ (for obvious reasons)
+ - Data types e.g. ```type: integer```. Supports all RAML datatypes. string,
+ number, integer, date, boolean, and file.
+ - Route definitions: these include ```/posts:``` or ```/{id}:```
+
+Installation
+---
+vim-raml doesn't have any strange or esoteric requirements.
+Provided you're using Vundle, Pathogen or any of the other standard Vim
+plugin managers. You can install vim-raml exactly how you'd expect.
+
+For completeness, to install via Vundle just add the following into your
+.vimrc with your other plugins
+
+Plugin '.../.../'
+Plugin 'IN3D/vim-raml'
+Plugin '.../.../'
+
+Then run:
+
+:source %
+:PluginInstall
+
+
+Or for Pathogen:
+
+cd ~/.vim/bundle
+git clone https://github.com/IN3D/vim-raml.git
+
+And Pathogen should pick it up the next time Vim is started.
+
+
+Questions, suggestions, and issues
+---
+If you have a question, suggestion, or have found an issue with vim-raml.
+The best way to bring it to my attention is to open an issue at
+https://github.com/IN3D/vim-raml/issues
+
+endif
diff --git a/scripts/build b/scripts/build
index 54285bfe..099dc616 100755
--- a/scripts/build
+++ b/scripts/build
@@ -14,7 +14,7 @@ PACKAGES = YAML.load_stream(File.read('packages.yaml'))
BASE_URL = 'https://raw.githubusercontent.com/github/linguist/master'
DIRS = {
- default: %w(syntax indent compiler autoload ftplugin ctags after/syntax after/indent after/ftplugin),
+ default: %w(syntax indent doc compiler autoload ftplugin ctags after/syntax after/indent after/ftplugin),
all: %w(syntax indent compiler autoload ftplugin after extras ctags),
syntax: %w(syntax indent after/syntax after/indent)
}
@@ -99,7 +99,7 @@ def parse_remote(remote)
end
def copy_file(package, src, dest)
- return unless [".vim", ".ctags", ".vital"].include?(File.extname(src))
+ return unless [".vim", ".ctags", ".vital", ".txt"].include?(File.extname(src))
FileUtils.mkdir_p(File.dirname(dest))
name = package.fetch("name")