diff options
Diffstat (limited to '')
35 files changed, 12493 insertions, 30 deletions
| @@ -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") | 
