From 5e2607d93f98e0394d1d68b1d6592b2d0a11f52f Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Mon, 19 Oct 2020 02:55:37 +0200 Subject: Remove docs so docs of installed plugins are up to date --- doc/clojure.txt | 185 --- doc/coffee-script.txt | 8 - doc/cryptol.txt | 108 -- doc/dart.txt | 90 -- doc/dhall.txt | 43 - doc/elixir.txt | 116 -- doc/ft-csv.txt | 1768 ----------------------- doc/ft-gitcommit-plugin.txt | 25 - doc/ft-ruby-indent.txt | 152 -- doc/ft-ruby-omni.txt | 56 - doc/ft-ruby-plugin.txt | 85 -- doc/ft-ruby-syntax.txt | 123 -- doc/fzf_gitignore.txt | 85 -- doc/graphql.txt | 54 - doc/haskell-vim.txt | 163 --- doc/idris-vim.txt | 158 --- doc/julia-vim-L2U-table.txt | 3282 ------------------------------------------- doc/julia-vim-L2U.txt | 405 ------ doc/julia-vim.txt | 484 ------- doc/ledger.txt | 443 ------ doc/ocaml.txt | 16 - doc/opam.txt | 22 - doc/pgsql.txt | 145 -- doc/ps1.txt | 68 - doc/python-syntax.txt | 124 -- doc/reason.txt | 24 - doc/rust.txt | 490 ------- doc/scala.txt | 137 -- doc/terraform.txt | 18 - doc/textile.txt | 70 - doc/vim-fsharp.txt | 210 --- doc/vim-go.txt | 2855 ------------------------------------- doc/vim-jsonnet.txt | 104 -- doc/vim-jsx-pretty-doc.txt | 129 -- doc/vim-markdown.txt | 667 --------- doc/vim-raml.txt | 64 - 36 files changed, 12976 deletions(-) delete mode 100644 doc/clojure.txt delete mode 100644 doc/coffee-script.txt delete mode 100644 doc/cryptol.txt delete mode 100644 doc/dart.txt delete mode 100644 doc/dhall.txt delete mode 100644 doc/elixir.txt delete mode 100644 doc/ft-csv.txt delete mode 100644 doc/ft-gitcommit-plugin.txt delete mode 100644 doc/ft-ruby-indent.txt delete mode 100644 doc/ft-ruby-omni.txt delete mode 100644 doc/ft-ruby-plugin.txt delete mode 100644 doc/ft-ruby-syntax.txt delete mode 100644 doc/fzf_gitignore.txt delete mode 100644 doc/graphql.txt delete mode 100644 doc/haskell-vim.txt delete mode 100644 doc/idris-vim.txt delete mode 100644 doc/julia-vim-L2U-table.txt delete mode 100644 doc/julia-vim-L2U.txt delete mode 100644 doc/julia-vim.txt delete mode 100644 doc/ledger.txt delete mode 100644 doc/ocaml.txt delete mode 100644 doc/opam.txt delete mode 100644 doc/pgsql.txt delete mode 100644 doc/ps1.txt delete mode 100644 doc/python-syntax.txt delete mode 100644 doc/reason.txt delete mode 100644 doc/rust.txt delete mode 100644 doc/scala.txt delete mode 100644 doc/terraform.txt delete mode 100644 doc/textile.txt delete mode 100644 doc/vim-fsharp.txt delete mode 100644 doc/vim-go.txt delete mode 100644 doc/vim-jsonnet.txt delete mode 100644 doc/vim-jsx-pretty-doc.txt delete mode 100644 doc/vim-markdown.txt delete mode 100644 doc/vim-raml.txt (limited to 'doc') diff --git a/doc/clojure.txt b/doc/clojure.txt deleted file mode 100644 index 07fce86b..00000000 --- a/doc/clojure.txt +++ /dev/null @@ -1,185 +0,0 @@ -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 - Copyright 2008-2012 (c) Meikel Brandmeyer - -ftdetect/clojure.vim, -ftplugin/clojure.vim, -indent/clojure.vim - - Copyright 2008-2012 (c) Meikel Brandmeyer - -Modified and relicensed under the Vim License for distribution with Vim: - - Copyright 2013-2014 (c) Sung Pae - -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 deleted file mode 100644 index 692d6241..00000000 --- a/doc/coffee-script.txt +++ /dev/null @@ -1,8 +0,0 @@ -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 deleted file mode 100644 index 0d90528c..00000000 --- a/doc/cryptol.txt +++ /dev/null @@ -1,108 +0,0 @@ -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 deleted file mode 100644 index 2a3bc78e..00000000 --- a/doc/dart.txt +++ /dev/null @@ -1,90 +0,0 @@ -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 deleted file mode 100644 index 8c5f37a5..00000000 --- a/doc/dhall.txt +++ /dev/null @@ -1,43 +0,0 @@ -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 deleted file mode 100644 index eb482a30..00000000 --- a/doc/elixir.txt +++ /dev/null @@ -1,116 +0,0 @@ -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 deleted file mode 100644 index 7ef33464..00000000 --- a/doc/ft-csv.txt +++ /dev/null @@ -1,1768 +0,0 @@ -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 -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 [] /{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` can be used to highlight Column . -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 , 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[!] [] - -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 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 within the range given. If no range -is given, this will calculate the sum of the whole column. If 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: - - or L or W Move [count] field forwards - - or E or H Move [count] field backwards (but see |csv-mapping-H| - for the movement of H). - - or K Move [count] lines upwards within the same column - - 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. - - 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. - - Dynamically fold all lines away, that match - the value in the current column. See |csv-filter| - - 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 , , K and J overlap Vim's default mapping for ||, -||, |J| and |K| respectively. Therefore, this functionality has been -mapped to a sane default of J and K. If you haven't -changed the || or || variables, those the -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_ to 1, (remove the special characters `<>` and replace `-` by -`_`), e.g. to prevent mapping of and 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: ` - -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:
` - -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: ` - %s%s%s - -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: - - ` - ` - ` -
1,2,3,
2,2,4,
` - -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 (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 -on the value, all fields having the same value will be folded away. -Pressing will remove the last item from the dynamic filter. To remove all -filters, keep pressing 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 or 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 (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 , 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 [] -< -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| - -3.27 Maximum/Minimum value of a Column *MaxCol_CSV* *MinCol_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 within the range given. If no range -is given, this will calculate the max value of the whole column. If 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. - - *format_number_csv* -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. - -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 within the range given. If no range -is given, this will calculate the average value of the whole column. If 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 |format_number_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* *SmplVarCol* *PopVarCol* -_________________________ - - :[range]PopVarCol [nr] [/format/] - - :[range]SmplVarCol [nr] [/format/] - -Calculate the Population or Sample Variance for the specified column. - -This outputs the result of the column `` within the range given. If no range -is given, this will calculate the statistical variance of the whole column. If 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`. - -For the [/format/] part, see |format_number_csv|. - -3.30 Standard Deviation of a Column *StdDevCol_CSV* *PopStdCol* *SmplStdCol* -___________________________________ - - :[range]PopStdCol [nr] [/format/] - - :[range]SmplStdCol [nr] [/format/] - -Calculate the Population or Sample Standard Deviation for the specified column. - -This outputs the result of the column `` within the range given. If no range -is given, this will calculate the standard deviation of the whole column. If 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`. - -For the [/format/] part, see |format_number_csv|. - - *: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 |format_number_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. - -You can also set default delimiter to prevent a warning if no delimiter can -be detected: > - - :let g:csv_default_delim=',' - -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: -, , , , ... -This means, you can now use those 5 keys to configure the fixed-width columns: - - Use Cursor Left () and Cursor Right () to move the - highlighting bar. - If you press , 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. - Abort - Press the backspace key, to remove the last column you fixed with - the key. - 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/=CSVPat(3, 'foobar')/baz - -where the 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(, - \ "My_CSV_Average", ,) -< - 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". - -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 deleted file mode 100644 index 3d6b9055..00000000 --- a/doc/ft-gitcommit-plugin.txt +++ /dev/null @@ -1,25 +0,0 @@ -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 S :Cycle -< - -endif diff --git a/doc/ft-ruby-indent.txt b/doc/ft-ruby-indent.txt deleted file mode 100644 index 5e274965..00000000 --- a/doc/ft-ruby-indent.txt +++ /dev/null @@ -1,152 +0,0 @@ -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 deleted file mode 100644 index dc78493b..00000000 --- a/doc/ft-ruby-omni.txt +++ /dev/null @@ -1,56 +0,0 @@ -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 deleted file mode 100644 index 2380240d..00000000 --- a/doc/ft-ruby-plugin.txt +++ /dev/null @@ -1,85 +0,0 @@ -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 deleted file mode 100644 index c8c8b9cf..00000000 --- a/doc/ft-ruby-syntax.txt +++ /dev/null @@ -1,123 +0,0 @@ -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/fzf_gitignore.txt b/doc/fzf_gitignore.txt deleted file mode 100644 index 4d94748c..00000000 --- a/doc/fzf_gitignore.txt +++ /dev/null @@ -1,85 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'gitignore') == -1 - -*fzf_gitignore.txt* Create useful .gitignore files for your project - -Author: Filip Szymański - -============================================================================== -CONTENTS *fzf-gitignore-contents* - - 1. Introduction |fzf-gitignore-introduction| - 2. Configuration |fzf-gitignore-configuration| - 3. Commands |fzf-gitignore-commands| - 4. Mappings |fzf-gitignore-mappings| - 5. License |fzf-gitignore-license| - 6. Bugs |fzf-gitignore-bugs| - 7. Contributing |fzf-gitignore-contributing| - -============================================================================== -INTRODUCTION *fzf-gitignore-introduction* - -fzf[1] interface for creating .gitignore files using the gitignore.io[2] API. - -Note: This plugin was inspired by helm-gitignore[3]. - -============================================================================== -CONFIGURATION *fzf-gitignore-configuration* - - *g:fzf_gitignore_no_maps* -Set this option to disable all key mappings. -> - let g:fzf_gitignore_no_maps = 1 -< -Default: Not defined (number) - - *g:fzf_gitignore_map* -Set this option to change the |(fzf-gitignore)| key mapping. -> - let g:fzf_gitignore_map = 'i' -< -Default: 'gi' (string) - -============================================================================== -COMMANDS *fzf-gitignore-commands* - - *:FzfGitignore* -Create .gitignore file. - -============================================================================== -MAPPINGS *fzf-gitignore-mappings* - - -----------------------------------+---------------------------------------- - Mapping | Description ~ - -----------------------------------+---------------------------------------- - (fzf-gitignore) | Create .gitignore file - -----------------------------------+---------------------------------------- - -============================================================================== -LICENSE *fzf-gitignore-license* - -MIT - -============================================================================== -BUGS *fzf-gitignore-bugs* - -If you find a bug please create an issue on GitHub. - -https://github.com/fszymanski/fzf-gitignore/issues - -============================================================================== -CONTRIBUTING *fzf-gitignore-contributing* - -Think you can make this plugin better? Awesome. Fork it on GitHub and create -a pull request. - -https://github.com/fszymanski/fzf-gitignore - -============================================================================== - -[1] https://github.com/junegunn/fzf -[2] https://www.gitignore.io/ -[3] https://github.com/jupl/helm-gitignore - - vim: tw=78 ts=8 ft=help norl - -endif diff --git a/doc/graphql.txt b/doc/graphql.txt deleted file mode 100644 index 868c74d8..00000000 --- a/doc/graphql.txt +++ /dev/null @@ -1,54 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1 - -*graphql.txt* GraphQL plug-in for Vim *graphql* - -CONTENTS *graphql-contents* - -1. Introduction |graphql-intro| -2. JavaScript Support |graphql-javascript| -3. TypeScript Support |graphql-typescript| - - -INTRODUCTION *graphql-intro* - -This plugin provides GraphQL (http://graphql.org/) file detection, syntax -highlighting, and indentation. - - -JAVASCRIPT *graphql-javascript* - -GraphQL syntax support in ES2015 template literals is provided. It works "out -of the box" with Vim 8.2's JavaScript support. The extended syntax provided by -the vim-javascript (https://github.com/pangloss/vim-javascript) plugin is also -supported. - - *graphql-javascript-options* - - *g:graphql_javascript_tags* -|g:graphql_javascript_tags| list of strings - - Default: `["gql", "graphql", "Relay.QL"]` - - This variable lists the ES2015 template tag names that will be recognized as - containing GraphQL template literal strings. - - -TYPESCRIPT *graphql-typescript* - -Like |graphql-javascript|, GraphQL syntax support in ES2015 template literals -is provided. It also works "out of the box" with Vim 8.2's TypeScript support, -which is based on the yats (https://github.com/HerringtonDarkholme/yats.vim) -plugin. For older versions, you can install yats directly. - -TypeScript syntax support also uses |graphql-javascript-options| to customize -the list of recognized template tag names. - -REASONML *graphql-reasonml* - -GraphQL syntax support inside of ReasonML template strings using graphql-ppx -is available. - ------------------------------------------------------------------------------- -vim:tw=78:ft=help:norl: - -endif diff --git a/doc/haskell-vim.txt b/doc/haskell-vim.txt deleted file mode 100644 index d2083ca5..00000000 --- a/doc/haskell-vim.txt +++ /dev/null @@ -1,163 +0,0 @@ -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 deleted file mode 100644 index e3d48e9e..00000000 --- a/doc/idris-vim.txt +++ /dev/null @@ -1,158 +0,0 @@ -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 '_h' by default. - -IdrisResponseWin *IdrisResponseWin* - This opens an idris response window in a new pane. - - Mapped to '_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 '_t' by default. - -IdrisReload *IdrisReload* - This reloads the file and type-checks the file in the current buffer. - - Mapped to '_r' by default. - -IdrisEval *IdrisEval* - This prompts for an expression and then evaluates it in the REPL, then - returns the result. - - Mapped to '_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 '_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 '_d' for an ordinary top-level definition, - '_b' for a typeclass instance definition, and - '_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 '_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 '_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 '_o' without hints and '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 '_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 '_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 deleted file mode 100644 index 06f8a394..00000000 --- a/doc/julia-vim-L2U-table.txt +++ /dev/null @@ -1,3282 +0,0 @@ -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 deleted file mode 100644 index 8f3a852c..00000000 --- a/doc/julia-vim-L2U.txt +++ /dev/null @@ -1,405 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1 - -*julia-vim-L2U.txt* Support for LaTeX-to-Unicode substitutions - -Author: Carlo Baldassi -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 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 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 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 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 - key (in |Insert| mode) which takes precedence on any previously defined -mapping assigned to it, such that when the 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 -(with default Vim settings, this means it will insert a literal ; 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 , 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 key can always be entered by using CTRL-V before (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 will result in the following list: -> - +-------------+ - | \aleph ℵ | - | \allequal ≌ | - | \alpha α | - +-------------+ -> -Then, pressing `p` will reduce the list to `\alpha`, pressing will -complete it and pressing 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 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 - and are mapped by default, and the functionality is slightly -more limited. No suggestions are shown for partial completions. Pre-existing -user-defined mappings of 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 , 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 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 -< -in your |.vimrc| file. If you'd map directly, then you'd need to use -CTRL-V to insert a literal . - -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 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 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 LaTeXtoUnicode#Toggle() - noremap! LaTeXtoUnicode#Toggle() -< -and then use the 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 - 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 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 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 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 forces the - substitution, so that e.g. typing `\ne` and then - produces a list with `\ne`, `\neg`, `\nequiv` etc., and - pressing 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 - `['', '']`, but it can be changed to avoid - overriding other user-defined mapping, e.g. to `''` - (if your terminal suppoorts it) or `''`. - The `''` (or to be more precise the |wildchar| key) and - `''` 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 deleted file mode 100644 index 5cf181d0..00000000 --- a/doc/julia-vim.txt +++ /dev/null @@ -1,484 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1 - -*julia-vim.txt* Support for Julia in Vim - -Author: Carlo Baldassi -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" : "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). - - - *(JuliaDocPrompt)* -(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 ? (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 fb :call julia#toggle_function_blockassign() -< - -============================================================================== -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`). - - *g:julia_indent_align_import* -g:julia_indent_align_import - - In a multi-line import/using/export statment, the lines after - the first one use some special alignment rules by default, - e.g.: -> - import X: one, - two, - three - export four, - five, - six -< - When `g:julia_indent_align_import` is `0` instead, the usual - indentation is used: -> - import X: one, - two, - three - export four, - five, - six - - *g:julia_indent_align_brackets* -g:julia_indent_align_brackets - - In a multi-line bracketed expression (except for function - arguments, see |g:julia_indent_align_funcargs|), the lines - after the first one use some special alignment rules by - default, e.g.: -> - matrix = [1 2 3; - 4 5 6] - tpl = ( - abc = Dict(a=>1, - b=>2), - def = [1 2; - 3 4], - xyz = SubArray{eltype(P), - N, P, I, - false} - ) -< - When `g:julia_indent_align_brackets` is `0` instead, an extra - indent is used: -> - matrix = [1 2 3; - 4 5 6] - tpl = ( - abc = Dict(a=>1, - b=>2), - def = [1 2; - 3 4], - xyz = SubArray{eltype(P), - N, P, I, - false} - ) -< - - *g:julia_indent_align_funcargs* -g:julia_indent_align_funcargs - - In a function definition, when the arguments span multiple - lines, the lines after the first one get an extra indentation - step by default, e.g.: -> - function functionanme( - arg1, arg2, - arg3, arg4 - ) - # function body - end -< - By setting `g:julia_indent_align_funcargs` to `1`, the - arguments are aligned to the bracket instead (they work as any - other bracket with the default value of - |g:julia_indent_align_brackets|): -> - function functionanme(arg1, arg2, - arg3, arg4 - ) - # function body - end -< - -============================================================================== -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 deleted file mode 100644 index 1cb2f65c..00000000 --- a/doc/ledger.txt +++ /dev/null @@ -1,443 +0,0 @@ -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 - au FileType ledger noremap } /^\d - - 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 <2-LeftMouse>\ - :call ledger#transaction_state_toggle(line('.'), ' *?!') - -* `: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 key: - - au FileType ledger inoremap \ - =ledger#autocomplete_and_align() - au FileType ledger vnoremap :LedgerAlign - - Alternatively, you may create a file `.vim/after/ftplugin/ledger.vim` - containing the following definitions: - - inoremap \ - =ledger#autocomplete_and_align() - vnoremap :LedgerAlign - - Now, you may type `asset:check123.45`, and have the - account name autocompleted and `$123.45` properly aligned (assuming your - default commodity is set to `'$'`). Or you may press 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 ): 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 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 `` 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 - -You will get a list of top-level accounts that start like this. - -Go ahead and try something like: - - As:Ban:Che - -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 . - - -vim:ts=8 sw=8 noexpandtab tw=78 ft=help: - - -endif diff --git a/doc/ocaml.txt b/doc/ocaml.txt deleted file mode 100644 index 83c5418d..00000000 --- a/doc/ocaml.txt +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index 6669bb2b..00000000 --- a/doc/opam.txt +++ /dev/null @@ -1,22 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1 - -*opam.txt* Switch OCaml versions from inside Vim using OPAM - -Author: Rudi Grinberg -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 deleted file mode 100644 index 2d2de6ed..00000000 --- a/doc/pgsql.txt +++ /dev/null @@ -1,145 +0,0 @@ -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 -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. - -When |foldmethod| is set to "syntax", SQL commands can be folded. - -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 `f` to -complete function names, `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 deleted file mode 100644 index 660f2c1a..00000000 --- a/doc/ps1.txt +++ /dev/null @@ -1,68 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'powershell') == -1 - -*ps1.txt* A Windows PowerShell syntax plugin for Vim - -Maintainer: Peter Provost -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 deleted file mode 100644 index d5391ff7..00000000 --- a/doc/python-syntax.txt +++ /dev/null @@ -1,124 +0,0 @@ -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 deleted file mode 100644 index ad2cd1d9..00000000 --- a/doc/reason.txt +++ /dev/null @@ -1,24 +0,0 @@ -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 deleted file mode 100644 index 6dbb1a2c..00000000 --- a/doc/rust.txt +++ /dev/null @@ -1,490 +0,0 @@ -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 *:Cargo* - Runs 'cargo' with the provided arguments. - -:Cbuild *:Cbuild* - Shortcut for 'cargo build`. - -:Cclean *:Cclean* - Shortcut for 'cargo clean`. - -:Cdoc *:Cdoc* - Shortcut for 'cargo doc`. - -:Cinit *:Cinit* - Shortcut for 'cargo init`. - -:Crun *:Crun* - Shortcut for 'cargo run`. - -:Ctest *:Ctest* - Shortcut for 'cargo test`. - -:Cupdate *:Cupdate* - Shortcut for 'cargo update`. - -:Cbench *:Cbench* - Shortcut for 'cargo bench`. - -:Csearch *:Csearch* - Shortcut for 'cargo search`. - -:Cpublish *:Cpublish* - Shortcut for 'cargo publish`. - -:Cinstall *:Cinstall* - Shortcut for 'cargo install`. - -:Cruntarget *: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 ||): > - :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 deleted file mode 100644 index b9fe2cf7..00000000 --- a/doc/scala.txt +++ /dev/null @@ -1,137 +0,0 @@ -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* -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* -ft "Find test". Like |scala-leader-fs|, but with - `src/test/scala`. - - *scala-leader-fr* -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 deleted file mode 100644 index b609f584..00000000 --- a/doc/terraform.txt +++ /dev/null @@ -1,18 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'terraform') == -1 - -*terraform.txt* basic vim/terraform integration - -Author: 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 deleted file mode 100644 index 2b28186a..00000000 --- a/doc/textile.txt +++ /dev/null @@ -1,70 +0,0 @@ -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) - - rp - -:TextileRenderTab - ... to a new tab - - rt - -:TextileRenderFile - ... to a file - - rf - - is \ by default, so 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 deleted file mode 100644 index bc2a4657..00000000 --- a/doc/vim-fsharp.txt +++ /dev/null @@ -1,210 +0,0 @@ -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 `` > - 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:~ - - t - Echoes the type of the expression currently pointed to by the cursor - d - Go to declaration in current window - s - Takes you back from where go to declaration was triggered. Experimental - -FSharp Interactive:~ - OR - 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 : - http://github.com/kongo2002/fsharp-vim - -Adapted from Tim Robinson : - http://github.com/timrobinson/fsharp-vim -> -=============================================================================== - -endif diff --git a/doc/vim-go.txt b/doc/vim-go.txt deleted file mode 100644 index dbb6af1f..00000000 --- a/doc/vim-go.txt +++ /dev/null @@ -1,2855 +0,0 @@ -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| (``). - -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 - - - Go to declaration/definition for the identifier under the cursor. By - default the CTRL-] shortcut, the mapping `gd` and , - g 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. - - *: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. - - *: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(0, 'edit') - \| command! -bang AV call go#alternate#Switch(0, 'vsplit') - \| command! -bang AS call go#alternate#Switch(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 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 r (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 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_fillstruct_mode'* - -Use this option to define the command to be used for |:GoFillStruct|. By -default `fillstruct` is used. Valid values are `fillstruct` and `gopls`. By -default it is `fillstruct`. -> - let g:go_fillstruct_mode = 'fillstruct' -< - *'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 `gopls`. -> - let g:go_implements_mode = 'gopls' -< - *'g:go_def_mapping_enabled'* - -Use this option to enable/disable the default mapping of CTRL-], -, g 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. When the -metalinter is `golangci-lint`, if any are enabled, `--disable-all` will be -sent to the metalinter. - -When `g:go_metalinter_command` is set to `staticcheck`, the default value is -an empty list; `staticcheck`'s `-checks` flag will not be used. -> - let g:go_metalinter_autosave_enabled = ['all'] -< - -When `g:go_metalinter_command is set to `golangci-lint'`, the default value is -> - let g:go_metalinter_autosave_enabled = ['vet', 'golint'] -< - *'g:go_metalinter_enabled'* - -Specifies the linters to enable for the |:GoMetaLinter| command. For -`golangci-lint`, if any are enabled, `--disable-all` will be passed to the -metalinter. - -When `g:go_metalinter_command` is set to `staticcheck`, the default value is -an empty list; `staticcheck`'s `-checks` flag will not be used. -> - let g:go_metalinter_autosave_enabled = ['all'] -< - -When `g:go_metalinter_command is set to `golangci-lint'`, the default value is -> - 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, `gopls`, and -`staticcheck`.. - -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. - -Only applies when the metalinter is `golangci-lint`. -> - 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_reuse'* - -Reuse the terminal window when |'g:go_term_enabled'| is set. By default it's -disabled. -> - let g:go_term_reuse = 0 -< - *'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("") =~# "^[A-Z]"' . - \ '? go#util#pascalcase(expand(""))' . - \ ': go#util#camelcase(expand(""))' -< - - *'g:go_gopls_enabled'* - -Specifies whether `gopls` can be used by vim-go. - -Completion will not work when gopls is disabled and other configuration -options may also need to be adjusted. - -By default gopls is enabled. - -> - let g:go_gopls_enabled = 1 -< - - *'g:go_gopls_options'* - -The commandline arguments to pass to gopls. - -By default, it is `['-remote=auto']`. -> - let g:go_gopls_options = ['-remote=auto'] -< - - *'g:go_gopls_analyses'* - -The analyses settings for `gopls`. - -The Expected value is either `v:null` or a dictionary. The dictionary will be -provided to `gopls` via json-rpc, so dictionary values need to be of the -appropriate type for Vim to convert to JSON (e.g. truthy dictionary values -should be `v:true` or `v:false`). By default, it is `v:null`. -> - 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 group separately. - -The value can either be a string or a dictionary. When it is a string, all -workspaces will use the same value. When it is a dictionary, the key should be -the absolute path of the workspace and the value is the prefix to use for -local imports within that workspace. - -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_gopls_gofumpt'* - -Specifies whether `gopls` should use `gofumpt` for formatting. - -When it is `v:null`, `gopls`' default will be used. By default it is `v:null`. -> - let g:go_gopls_gofumpt = v:null -< - - *'g:go_gopls_settings'* - -Specifies `gopls` workspace settings for `gopls` that are not yet officially -supported by vim-go. - -Any value in the dictionary will be overridden by values provided in the -specific options supported by vim-go (e.g. g:go_gopls_staticcheck) or -settings statically configured by vim-go to ensure expected behavior. By -default it is `v:null`. -> - let g:go_gopls_settings = v:null -< - *'g:go_diagnostics_enabled'* - -Deprecated. See `'g:go_diagnostics_level'`. 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_diagnostics_level'* - -Specifies the `gopls` diagnostics level. Valid values are 0, 1, and 2. 0 -ignores `gopls` diagnostics, 1 is for errors only, and 2 is for errors and -warnings. By default it is 0. -> - let g:go_diagnostics_level = 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| () and run your program -with |:GoDebugContinue| (). - -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| () or step -in with |:GoDebugStep| (). - -The program can also be halted with `:GoDebugHalt` (). - -The variable window in the bottom left (`GODEBUG_VARIABLES`) will display all -local variables. Struct values are displayed as `{...}`, array/slices as -`[4]`. Use 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 |:GoDebugAttach|, |:GoDebugStart|, |:GoDebugTest|, and -|:GoDebugBreakpoint| are available by default. |:GoDebugContinue| becomes -available after running |:GoDebugAttach|, |:GoDebugStart| or |:GoDebugTest|. -The rest of the commands and mappings become available after executing -|:GoDebugContinue|. - - *:GoDebugAttach* -:GoDebugAttach pid - - Start the debug mode for pid; this does several things: - - * Setup the debug windows according to |'g:go_debug_windows'|. - * Make the `:GoDebug*` commands and `(go-debug-*)` mappings available. - - Use |:GoDebugStop| to stop `dlv` and exit debugging mode. - - *: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` - - *:GoDebugTestFunc* -:GoDebugTestFunc [expand] - - Behaves the same as |:GoDebugTest| and implicitly adds `-test.run` to run - the nearest test or example function (i.e the nearest function declaration - that matches `func Test` or `func Example`) at or previous to the cursor. - Search will not wrap around when at the top of the file. - - *:GoDebugRestart* -:GoDebugRestart - - Stop the program (if running) and restart `dlv` to recompile the package. - The current window layout and breakpoints will be left intact. - - *:GoDebugHalt* - *(go-debug-halt)* -:GoDebugHalt - - Halt the program. - - Mapped to by default. - - *: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 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 by default. - - *:GoDebugNext* - *(go-debug-next)* -:GoDebugNext - - Advance execution by one line, also called "step over" by some other - debuggers. - - Mapped to 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 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 by default, which will evaluate the 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_mappings'* - -Contains custom key mapping information to customize the active mappings -when debugging. - -Only the customizations desired need to be provided; the debugger will use its -default key mappings for any mapping not defined here. - -This value should be a dictionary whose keys are the plugin mapping commands -(e.g. `(go-debug-continue)`). The values are dictionaries with two keys. -`key` and `attributes`. - -`key` is expected to be the key to map (i.e. it's the `lhs` in a mapping). -`key` can be empty or missing to prevent a key mapping from being applied for -one the named mappings. - -`arguments` is the string of `map-arguments` for the mapping (e.g. -``). - -The first item must be the `lhs` to use for the mapping. The optional -second item is for `:map-arguments`. All mappings will always be `:map-local`, -so there is never a need to include `""` in the the arguments. -> - let g:go_debug_mappings = { - \ '(go-debug-continue)': {'key': 'c', 'arguments': ''], - \ '(go-debug-stop)': {'key': 'q'}, - \ '(go-debug-next)': {'key': 'n', 'arguments': ''}, - \ '(go-debug-step)': {'key': 's'}, - \} -< - -Defaults are equivalent to: -> - let g:go_debug_mappings = { - \ '(go-debug-continue)': {'key': ''}, - \ '(go-debug-print)': {'key': ''}, - \ '(go-debug-breakpoint)': {'key': ''}, - \ '(go-debug-next)': {'key': ''}, - \ '(go-debug-step)': {'key': ''}, - \ '(go-debug-halt)': {'key': ''}, - \ } -< - -Your user specified settings will be merged with the defaults. - - *'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 rt (go-run-tab) - au FileType go nmap rs (go-run-split) - au FileType go nmap rv (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 deleted file mode 100644 index 988453bc..00000000 --- a/doc/vim-jsonnet.txt +++ /dev/null @@ -1,104 +0,0 @@ -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 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-jsx-pretty-doc.txt b/doc/vim-jsx-pretty-doc.txt deleted file mode 100644 index cc170976..00000000 --- a/doc/vim-jsx-pretty-doc.txt +++ /dev/null @@ -1,129 +0,0 @@ -if !exists('g:polyglot_disabled') || (index(g:polyglot_disabled, 'javascript') == -1 && index(g:polyglot_disabled, 'jsx') == -1) - -vim-jsx-pretty is syntax highlight for JSX (React.js). -(https://github.com/MaxMEllon/vim-jsx-pretty) - -version 1.0.6 -Author: maxmellon -License: MIT - -About |vim-jsx-pretty-about| -Usage |vim-jsx-pretty-usage| -Install |vim-jsx-pretty-install| -Config |vim-jsx-pretty-config| -Detail |vim-jsx-pretty-detail| -License |vim-jsx-pretty-license| -Thanks |vim-jsx-retty-thanks| -Inspiration |vim-jsx-pretty-inspiration| - -=============================================================================== -ABOUT *vim-jsx-pretty-about* - -*vim-jsx-pretty* is highlight and indentation JSX (React.js) syntax. - -Dependency Plugin: - - pangloss/vim-javascript - -=============================================================================== -USAGE *vim-jsx-pretty-usage* - -Just Install it. - -=============================================================================== -INSTALL *vim-jsx-pretty-install* - -If you used plugin manager `vim-plug`, As follows. > - - Plug 'pangloss/vim-javascript' " dependency plugin - Plug 'maxmellon/vim-jsx-pretty' -< -=============================================================================== -CONFIG *vim-jsx-pretty-config* - -- config list -> - | name | default | detail | - |---------------------------------------|---------|----------------------| - | g:vim_jsx_pretty_enable_jsx_highlight | 1 | jsx highlight flag | - | g:vim_jsx_pretty_colorful_config | 0 | colorful config flag | - | g:vim_jsx_pretty_disable_js | 0 | js toggle flag | -< - -- *g:vim_jsx_pretty_enable_jsx_highlight* - -If you set 'g:vim_jsx_pretty_enable_jsx_highlight', Disable jsx highlight. -But highlight group is set to jsx syntax. So you should set manual -highlight setting. - - - Example: > - - let g:vim_jsx_pretty_enable_jsx_highlight = 0 - - highlight def link jsxTag Function - highlight def link jsxTagName Function - highlight def link jsxString String - highlight def link jsxNameSpace Function - highlight def link jsxComment Error - highlight def link jsxAttrib Type - highlight def link jsxCloseTag Identifier - highlight def link jsxCloseString Identifier - -- *g:vim_jsx_pretty_colorful_config* - -If you set 'g:vim_jsx_pretty_colorful_config', Enable colorful config. - -=============================================================================== -DETAIL *vim-jsx-pretty-detail* - -- Syntax group list -> - | name | match | | | - |--------------|--------------------|--------------|--------------------| - | jsxTag | ``| jsxjsxAttrib | ``| - | | `~~~~~~~~~~~~~~~~~`| | `_____~~__________`| - |--------------|--------------------|--------------|--------------------| - | jsxTagName | ``| jsxEqual | ``| - | | `_~~~_____________`| | `_______~_________`| - |--------------|--------------------|--------------|--------------------| - | jsxString | ``| jsxCloseTag | ``| - | | `________~~~~~~~~_`| | `~~~~~~ | _____~~| - |--------------|--------------------|--------------|--------------------| - -=============================================================================== -LICENSE *vim-jsx-pretty-license* - -Copyright (c) 2016-2017 MaxMEllon -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. - -============================================================================== -THANKS *vim-jsx-pretty-thanks* - - - yuezk - - y0za - - cormacrelf - -=============================================================================== -INSPIREATION *vim-jsx-pretty-inspiration* - - - vim-jsx - See: https://github.com/mxw/vim-jsx - - vim:tw=78:ts=8:ft=help:norl: - -endif diff --git a/doc/vim-markdown.txt b/doc/vim-markdown.txt deleted file mode 100644 index c2337e69..00000000 --- a/doc/vim-markdown.txt +++ /dev/null @@ -1,667 +0,0 @@ -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 '' 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 '<>'. - - 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. '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 - - - ^ ^ ^ - 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. 'Markdown_EditUrlUnderCursor' - - The rules for the cursor position are the same as the 'gx' command. - - *vim-markdown-]]* -- ']]': go to next header. 'Markdown_MoveToNextHeader' - - *vim-markdown-[[* -- '[[': go to previous header. Contrast with ']c'. - 'Markdown_MoveToPreviousHeader' - - *vim-markdown-][* -- '][': go to next sibling header if any. - 'Markdown_MoveToNextSiblingHeader' - - *vim-markdown-[]* -- '[]': go to previous sibling header if any. - 'Markdown_MoveToPreviousSiblingHeader' - - *vim-markdown-]c* -- ']c': go to Current header. 'Markdown_MoveToCurHeader' - - *vim-markdown-]u* -- ']u': go to parent header (Up). '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 Markdown_MoveToParentHeader -< -To disable a map use: -> - map 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 '' 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 deleted file mode 100644 index ea26798c..00000000 --- a/doc/vim-raml.txt +++ /dev/null @@ -1,64 +0,0 @@ -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. ```<>``` 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 -- cgit v1.2.3