mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-18 00:13:41 -05:00
Include docs of plugins
This commit is contained in:
405
doc/julia-vim-L2U.txt
Normal file
405
doc/julia-vim-L2U.txt
Normal file
@@ -0,0 +1,405 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
|
||||
|
||||
*julia-vim-L2U.txt* Support for LaTeX-to-Unicode substitutions
|
||||
|
||||
Author: Carlo Baldassi <carlobaldassi@gmail.com>
|
||||
License: MIT license {{{
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
}}}
|
||||
CONTENTS *julia-vim-L2U*
|
||||
|
||||
LaTeX-to-Unicode substitutions |julia-vim-L2U-introdction|
|
||||
Via Tab key |julia-vim-L2U-tab|
|
||||
As you type |julia-vim-L2U-as-you-type|
|
||||
Via Keymap |julia-vim-L2U-keymap|
|
||||
On different file types |julia-vim-L2U-file-types|
|
||||
Enabling and disabling |julia-vim-L2U-enable-disable|
|
||||
Variables |julia-vim-L2U-variables|
|
||||
Functions |julia-vim-L2U-functions|
|
||||
|
||||
==============================================================================
|
||||
LATEX TO UNICODE *julia-vim-L2U-introduction*
|
||||
|
||||
In the Julia REPL, entering a LaTeX-like sequence such as `\alpha` and pressing
|
||||
the <Tab> key substitutes it with a Unicode character such as `α`. The Julia
|
||||
REPL also provides partial completions, and suggestions for possible
|
||||
completions upon repeated pressing of the <Tab> key. Emojis are also
|
||||
available, with their names written between colons, e.g. `\:interrobang:`
|
||||
produces `⁉`.
|
||||
|
||||
See |julia-vim-L2U-reference| for the complete table of substitutions.
|
||||
|
||||
This Vim plug-in also provides the functionality needed to convert LaTeX
|
||||
input sequences into Unicode characters. There are 3 different methods
|
||||
available:
|
||||
|
||||
1. The default one is the most similar to the Julia one: substitutions are
|
||||
triggered by pressing the <Tab> key; if a partial match is found a list
|
||||
of suggested completions is presented in a menu together with their
|
||||
Unicode counterpart. The exact behaviour of this feature can be
|
||||
customized, see |julia-vim-L2U-tab|.
|
||||
|
||||
2. The second one substitutes symbols on the fly as you type, but only in
|
||||
|Insert| mode. See |julia-vim-L2U-as-you-type|.
|
||||
|
||||
3. The third is based on |keymap|. It also substitutes as-you-type, but it
|
||||
doesn't show you the full LaTeX sequence as you're typing it, and there
|
||||
is a time-out. Its main advantage over the previous one is that can be
|
||||
used in more circumstances, e.g. in |Command-line| mode or when searching
|
||||
for a character with |f| or |t|, as explained in |language-mapping|. See
|
||||
|julia-vim-L2U-keymap|.
|
||||
|
||||
All of these methods are independent and can be used together without issues.
|
||||
|
||||
The default configuration is to use the first method, and it's only active
|
||||
when editing Julia files. It only works in |Insert| and |Command-line| modes.
|
||||
|
||||
It is possible to enable it with other file types, see
|
||||
|julia-vim-L2U-file-types|, and it can be even turned on/off on the fly
|
||||
regardless of the file type, see |julia-vim-L2U-enable-disable|.
|
||||
|
||||
In |Command-line| mode, e.g. when searching with the |/| or |?| commands, the
|
||||
default behavior is very similar to the default |Insert| mode behavior, but
|
||||
slightly more limited, see |julia-vim-L2U-cmdmode|.
|
||||
|
||||
These features only work as described with Vim version 7.4 or higher. Tab
|
||||
completion can still be made available on lower Vim versions, see
|
||||
|julia-vim-L2U-workaround|. The keymap mode might work but it hasn't been
|
||||
tested.
|
||||
|
||||
See |julia-vim| for the general reference about the other features of the
|
||||
julia-vim plug-in.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
LATEX TO UNICODE VIA TAB KEY *julia-vim-L2U-tab*
|
||||
|
||||
Substitution of LaTeX sequences when pressing the <Tab> key (in |Insert| mode or
|
||||
in |Command-line| modes) is active by default. Use |g:latex_to_unicode_tab| to
|
||||
control it.
|
||||
|
||||
When this feature is active, the julia-vim plug-in creates a mapping for the
|
||||
<Tab> key (in |Insert| mode) which takes precedence on any previously defined
|
||||
mapping assigned to it, such that when the <Tab> key is pressed the plug-in
|
||||
looks for potential LaTeX symbol matches before the cursor, and if it fails to
|
||||
find anything of interest it will fall-back to the previous mapping for <Tab>
|
||||
(with default Vim settings, this means it will insert a literal <Tab>; but if
|
||||
you have defined some other behavior for that key, e.g. by installing another
|
||||
plug-in such as supertab (https://github.com/ervandew/supertab) than that will
|
||||
be used).
|
||||
|
||||
For example, entering this text in a file:
|
||||
>
|
||||
1 + \alpha
|
||||
<
|
||||
and then pressing <Tab>, results in:
|
||||
>
|
||||
1 + α
|
||||
<
|
||||
|
||||
This feature is associated with 'omnifunc' completion, and therefore can
|
||||
always be accessed via CTRL-X CTRL-O, even when |g:latex_to_unicode_tab| is 0.
|
||||
|
||||
A literal <Tab> key can always be entered by using CTRL-V before <Tab> (see
|
||||
|i_CTRL-V|).
|
||||
|
||||
Partial sequence recognition triggers auto-completion (performed as if the
|
||||
`longest` setting was used in 'completeopt') and shows a menu of suggestions
|
||||
together with their corresponding Unicode symbol (provided the `menu` setting
|
||||
is included in 'completeopt', and more then one match is found). So for
|
||||
example, entering `\al` and pressing <Tab> will result in the following list:
|
||||
>
|
||||
+-------------+
|
||||
| \aleph ℵ |
|
||||
| \allequal ≌ |
|
||||
| \alpha α |
|
||||
+-------------+
|
||||
>
|
||||
Then, pressing `p` will reduce the list to `\alpha`, pressing <Tab> will
|
||||
complete it and pressing <Tab> again will perform the substitution.
|
||||
|
||||
The completion menu can be disbled, and this will happen automatically if a
|
||||
plug-in which is known to be incompatible with this feature is detected: see
|
||||
|g:latex_to_unicode_suggestions|.
|
||||
|
||||
Some LaTeX sequences can be valid both as they are and as partial matches for
|
||||
other sequences, e.g. `\ne` is associated with `≠`, but it is also a partial
|
||||
match for `\nequiv` (`≢`). By default, if <Tab> finds an exact match performs
|
||||
the substitution, but this can be controlled by the |g:latex_to_unicode_eager|
|
||||
setting.
|
||||
|
||||
Command-line mode *julia-vim-L2U-cmdmode*
|
||||
|
||||
In |Command-line| mode, the behavior is largely the same except that both
|
||||
<Tab> and <S-Tab> are mapped by default, and the functionality is slightly
|
||||
more limited. No suggestions are shown for partial completions. Pre-existing
|
||||
user-defined mappings of <Tab> are overridden. In order to avoid that, the
|
||||
completion can be mapped onto a defferent key combination, see
|
||||
|g:latex_to_unicode_cmd_mapping|. When using <Tab>, if no matches are found
|
||||
the behavior falls back to the standard Vim command-line completion.
|
||||
|
||||
Vim versions lower than 7.4 *julia-vim-L2U-workaround*
|
||||
|
||||
The <Tab> key remapping is not performed by default with Vim versions lower
|
||||
than 7.4. However, the functionality is still available via onmicompletion,
|
||||
which is accessible by the CTRL-X CTRL-O key combination. You can map some
|
||||
other key combination to this by adding something like
|
||||
>
|
||||
inoremap <C-Tab> <C-X><C-O>
|
||||
<
|
||||
in your |.vimrc| file. If you'd map <Tab> directly, then you'd need to use
|
||||
CTRL-V <Tab> to insert a literal <Tab>.
|
||||
|
||||
The settings |g:latex_to_unicode_eager| and |g:latex_to_unicode_suggestions|
|
||||
are still meaningful in this case.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
LATEX TO UNICODE AS YOU TYPE *julia-vim-L2U-as-you-type*
|
||||
|
||||
This feature is disabled by default, see |g:latex_to_unicode_auto|, and it is
|
||||
only available with Vim version 7.4 or higher. It consists in substituting
|
||||
valid LaTeX sequences with Unicode symbols automatically as the typing
|
||||
progresses, as soon as the sequences is unambiguously complete. For example,
|
||||
when typing:
|
||||
>
|
||||
\chi\^2 = 1
|
||||
<
|
||||
The result is
|
||||
>
|
||||
χ² = 1
|
||||
<
|
||||
The `\chi` is substituted right when the second backslash is entered, and the
|
||||
`\^2` is substituted when the following space is entered, before the equal
|
||||
sign.
|
||||
|
||||
This feature does not currently work with emojis.
|
||||
|
||||
This feature does not interfere with the <Tab> based substitution.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
LATEX TO UNICODE VIA KEYMAP *julia-vim-L2U-keymap*
|
||||
|
||||
This method is somewhat similar to the as-you-type one described above, but it
|
||||
uses |keymap| to generate the mappings. This has the advantage that it works
|
||||
in more circumstances, e.g. in |Command-line| mode or when searching within a
|
||||
line with |f| or |t| (since it uses |language-mapping| underneath). It can
|
||||
also be easily turned on or off like any other keymap (see |i_CTRL-^| and
|
||||
|c_CTRL-^|). Like the as-you-type fature, it doesn't work with emojis.
|
||||
The disadvantage is that you don't see the whole sequence as you're typing
|
||||
it, and you can't fix mistakes with backspace, for example.
|
||||
Another difference is that there is a |timeout| like for any other mapping.
|
||||
|
||||
In order to use this method, set |g:latex_to_unicode_keymap| to `1`.
|
||||
You can use it in parallel with the other methods, they don't interfere. For
|
||||
example, typing a partial sequence and pressing <Tab> still triggers
|
||||
completions and suggestions if |g:latex_to_unicode_tab| is active.
|
||||
|
||||
If you use this feature, it's also useful to set |lCursor|.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
LATEX TO UNICODE ON DIFFERENT FILE TYPES *julia-vim-L2U-file-types*
|
||||
|
||||
By default, the LaTeX-to-Unicode substitutions are only active when editing
|
||||
Julia files. However, you can use the variable |g:latex_to_unicode_file_types|
|
||||
to specify for which file types this feature is active by default. The
|
||||
variable must be set to a string containing a |pattern| (a regular expression)
|
||||
which matches the desired file types, or to a list of such patterns. For
|
||||
example, to activate the feature on all file types by default, you could put
|
||||
this in your |.vimrc| file:
|
||||
>
|
||||
let g:latex_to_unicode_file_types = ".*"
|
||||
<
|
||||
To make it active only on, say, Julia and Lisp files, you could use:
|
||||
>
|
||||
let g:latex_to_unicode_file_types = ["julia", "lisp"]
|
||||
<
|
||||
|
||||
Another option, |g:latex_to_unicode_file_types_blacklist|, can be used to
|
||||
exclude certain file types. For example, if you'd wish to enable the feature
|
||||
in all cases except for Python and untyped files, you would use:
|
||||
>
|
||||
let g:latex_to_unicode_file_types = ".*"
|
||||
let g:latex_to_unicode_file_types_blacklist = ["python", ""]
|
||||
<
|
||||
|
||||
NOTE: enabling the functionality will override the |'omnifunc'| setting, which
|
||||
can be undesirable, and interfere with plug-ins for different file types. In
|
||||
any case, the previous |'omnifunc'| setting is restored when the functionality
|
||||
is disabled, see |julia-vim-L2U-enable-disable|.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
ENABLING AND DISABLING LATEX TO UNICODE *julia-vim-L2U-enable-disable*
|
||||
|
||||
The LaTeX-to-Unicode functionality can be enabled or disabled at any time,
|
||||
regardless of the |'filetype'| of the file you're editing, using the functions
|
||||
|LaTeXtoUnicode#Enable()|, |LaTeXtoUnicode#Disable()|, |LaTeXtoUnicode#Toggle()|.
|
||||
For example, you could use a mapping like:
|
||||
>
|
||||
noremap <expr> <F7> LaTeXtoUnicode#Toggle()
|
||||
noremap! <expr> <F7> LaTeXtoUnicode#Toggle()
|
||||
<
|
||||
and then use the <F7> key to quickly switch the functionality on and off as
|
||||
needed (see |noremap| and |noremap!|).
|
||||
|
||||
NOTE: these functions are different from the variables |g:latex_to_unicode_tab|,
|
||||
|g:latex_to_unicode_auto| and |g:latex_to_unicode_keymap|: the functions
|
||||
enable/disable the functionality as a whole, while the variables control
|
||||
individual features (tab, auto and keymap substitution).
|
||||
|
||||
==============================================================================
|
||||
VARIABLES *julia-vim-L2U-variables*
|
||||
|
||||
*g:latex_to_unicode_tab*
|
||||
g:latex_to_unicode_tab
|
||||
|
||||
Determines whether to map LaTeX-to-Unicode substitution to the
|
||||
<Tab> key while in |Insert| and |Command-line| modes, see
|
||||
|julia-vim-L2U-tab|. If unspecified, it is on. You can disable
|
||||
the feature by default by inserting the line
|
||||
>
|
||||
let g:latex_to_unicode_tab = 0
|
||||
<
|
||||
in your |.vimrc| file. You can change this setting at any moment
|
||||
while editing, but you need to invoke |LaTeXtoUnicode#Init()|
|
||||
for the change to take effect.
|
||||
|
||||
*g:latex_to_unicode_suggestions*
|
||||
g:latex_to_unicode_suggestions
|
||||
|
||||
Determines whether the <Tab> key mapping produces suggestions
|
||||
for partial matches. By default, this is set to 1 (active),
|
||||
unless a plug-in which is known to be incompatible with it is
|
||||
detected. Currently, known incompatible plug-ins are
|
||||
YouCompleteMe (https://github.com/Valloric/YouCompleteMe),
|
||||
neocomplcache (https://github.com/Shougo/neocomplcache.vim),
|
||||
neocomplete (https://github.com/Shougo/neocomplete.vim) and
|
||||
deoplete (https://github.com/Shougo/deoplete.nvim),
|
||||
|
||||
This variable can be set at any time, changes will immediately
|
||||
take effect.
|
||||
|
||||
*g:latex_to_unicode_eager*
|
||||
g:latex_to_unicode_eager
|
||||
|
||||
Determines whether the <Tab> key mapping performs the
|
||||
substitution immediately upon finding an exact match. By
|
||||
default this setting is set to 1 (active), so that e.g. typing
|
||||
`\ne` and pressing the <Tab> key triggers the substitution. If
|
||||
this variable is set to 0, an exact match which is also a
|
||||
possible partial match to some other sequence triggers the
|
||||
suggestions menu first, but another <Tab> forces the
|
||||
substitution, so that e.g. typing `\ne` and then <Tab>
|
||||
produces a list with `\ne`, `\neg`, `\nequiv` etc., and
|
||||
pressing <Tab> again performs the substitution.
|
||||
|
||||
This variable can be set at any time, changes will immediately
|
||||
take effect. When |g:latex_to_unicode_suggestions| is `0`,
|
||||
this setting has no effect (it's like if it was always on).
|
||||
|
||||
*g:latex_to_unicode_auto*
|
||||
g:latex_to_unicode_auto
|
||||
|
||||
Determines whether to activate LaTeX-to-Unicode substitution
|
||||
on the fly as you type (in |Insert| mode), see
|
||||
|julia-vim-L2U-as-you-type|. If unspecified, it is `0` (off).
|
||||
You can enable the feature by default by inserting the line
|
||||
>
|
||||
let g:latex_to_unicode_auto = 1
|
||||
<
|
||||
in your |.vimrc| file. You can change this setting at any
|
||||
moment while editing, but you need to invoke
|
||||
|LaTeXtoUnicode#Init()| for the change to take effect.
|
||||
|
||||
|
||||
*g:latex_to_unicode_keymap*
|
||||
g:latex_to_unicode_keymap
|
||||
|
||||
Determines whether to activate the |keymap|-based
|
||||
LaTeX-to-Unicode substitutions, see |julia-vim-L2U-keymap|.
|
||||
If unspecified, it is `0` (off). You can enable the feature by
|
||||
default by inserting the line
|
||||
>
|
||||
let g:latex_to_unicode_keymap = 1
|
||||
<
|
||||
in your |.vimrc| file. You can change this setting at any
|
||||
moment while editing, but you need to invoke
|
||||
|LaTeXtoUnicode#Init()| for the change to take effect.
|
||||
|
||||
*g:latex_to_unicode_file_types*
|
||||
g:latex_to_unicode_file_types
|
||||
|
||||
Contains a |pattern|, or a list of patterns, which are matched
|
||||
against the |'filetype'| to determine when to enable the
|
||||
LaTeX-to-Unicode functionality, see |julia-vim-L2U-file-types|.
|
||||
By default, its value is `"julia"`. The patterns provided must
|
||||
match the whole filetype name. See also
|
||||
|g:latex_to_unicode_file_types_blacklist|.
|
||||
|
||||
*g:latex_to_unicode_file_types_blacklist*
|
||||
g:latex_to_unicode_file_types_blacklist
|
||||
|
||||
Same as |g:latex_to_unicode_file_types|, but acts in reverse:
|
||||
it disables the LaTeX-to-Unicode functionality when the
|
||||
|'filetype'| matches the provided pattern (or any of the
|
||||
patterns if a list is provided). By default, it contains an
|
||||
unmatchable pattern, i.e. it is effectively disabled.
|
||||
|
||||
*g:latex_to_unicode_cmd_mapping*
|
||||
g:latex_to_unicode_cmd_mapping
|
||||
|
||||
Specifies the mapping (or list of mappings) for the
|
||||
substitution in |Command-line| mode. By default, it is
|
||||
`['<Tab>', '<S-Tab>']`, but it can be changed to avoid
|
||||
overriding other user-defined mapping, e.g. to `'<S-Tab>'`
|
||||
(if your terminal suppoorts it) or `'<C-\><Tab>'`.
|
||||
The `'<Tab>'` (or to be more precise the |wildchar| key) and
|
||||
`'<S-Tab>'` mappings are special in that they fall back to
|
||||
performing default Vim completions in case no suitable
|
||||
substitutions are found.
|
||||
|
||||
==============================================================================
|
||||
FUNCTIONS *julia-vim-L2U-functions*
|
||||
|
||||
*LaTeXtoUnicode#Init()*
|
||||
LaTeXtoUnicode#Init()
|
||||
|
||||
Initialize or re-initialize the LaTeX-to-Unicode substitutions
|
||||
(see |julia-vim-L2U-introduction|). Must be invoked after
|
||||
changing |g:latex_to_unicode_tab| or |g:latex_to_unicode_auto|
|
||||
to make the changes take effect.
|
||||
|
||||
*LaTeXtoUnicode#Enable()*
|
||||
*LaTeXtoUnicode#Disable()*
|
||||
*LaTeXtoUnicode#Toggle()*
|
||||
LaTeXtoUnicode#Enable()
|
||||
LaTeXtoUnicode#Disable()
|
||||
LaTeXtoUnicode#Toggle()
|
||||
|
||||
These functions enable/disable/toggle the LaTeX-to-Unicode
|
||||
functionality, regardless of the |'filetype'| specified in
|
||||
|g:latex_to_unicode_file_types| and
|
||||
|g:latex_to_unicode_file_types_blacklist|. See
|
||||
|julia-vim-L2U-enable-disable|. Note that LaTeXtoUnicode#Enable()
|
||||
will override the |'omnifunc'| definition, if present. However,
|
||||
LaTeXtoUnicode#Disable() will restore it.
|
||||
These functions implicitly invoke |LaTeXtoUnicode#Init()|.
|
||||
|
||||
|
||||
vim:tw=78:et:ft=help:norl:
|
||||
|
||||
endif
|
||||
Reference in New Issue
Block a user