All Projects → JuliaEditorSupport → Julia Vim

JuliaEditorSupport / Julia Vim

Licence: other
Vim support for Julia.

Programming Languages

julia
2034 projects

Projects that are alternatives of or similar to Julia Vim

Neotex
latex live preview - plugin for neovim and vim 8
Stars: ✭ 170 (-69.42%)
Mutual labels:  latex, vim-plugin
sugartex
SugarTeX is a more readable LaTeX language extension and transcompiler to LaTeX. Fast Unicode autocomplete in Atom editor via https://github.com/kiwi0fruit/atom-sugartex-completions
Stars: ✭ 74 (-86.69%)
Mutual labels:  unicode, latex
Vimtex
VimTeX: A modern Vim and neovim filetype plugin for LaTeX files.
Stars: ✭ 3,609 (+549.1%)
Mutual labels:  latex, vim-plugin
Tmux Complete.vim
Vim plugin for insert mode completion of words in adjacent tmux panes
Stars: ✭ 447 (-19.6%)
Mutual labels:  vim-plugin
Last Resort Font
Last Resort Font
Stars: ✭ 462 (-16.91%)
Mutual labels:  unicode
Vim Colors Pencil
Light (& dark) color scheme inspired by iA Writer
Stars: ✭ 498 (-10.43%)
Mutual labels:  vim-plugin
Algorithmic Pseudocode
This repository contains the pseudocode(pdf) of various algorithms and data structures necessary for Interview Preparation and Competitive Coding
Stars: ✭ 519 (-6.65%)
Mutual labels:  latex
Pandoc Starter
📄 My pandoc markdown templates and makefiles
Stars: ✭ 443 (-20.32%)
Mutual labels:  latex
Committia.vim
A Vim plugin for more pleasant editing on commit messages
Stars: ✭ 510 (-8.27%)
Mutual labels:  vim-plugin
T 414 Aflv
T-414-ÁFLV: A Competitive Programming Course
Stars: ✭ 488 (-12.23%)
Mutual labels:  latex
Palenight.vim
Soothing color scheme for your favorite [best] text editor
Stars: ✭ 492 (-11.51%)
Mutual labels:  vim-plugin
Kableextra
Construct Complex Table with knitr::kable() + pipe.
Stars: ✭ 465 (-16.37%)
Mutual labels:  latex
Vim Markdown Composer
An asynchronous markdown preview plugin for Vim and Neovim.
Stars: ✭ 501 (-9.89%)
Mutual labels:  vim-plugin
Resume
An elegant \LaTeX\ résumé template. 大陆镜像 https://gods.coding.net/p/resume/git
Stars: ✭ 4,910 (+783.09%)
Mutual labels:  latex
Yaac Another Awesome Cv
YAAC: Another Awesome CV is a template using Font Awesome and Adobe Source Font.
Stars: ✭ 516 (-7.19%)
Mutual labels:  latex
Transliteration
UTF-8 to ASCII transliteration / slugify module for node.js, browser, Web Worker, React Native, Electron and CLI.
Stars: ✭ 444 (-20.14%)
Mutual labels:  unicode
Switch.vim
A simple Vim plugin to switch segments of text with predefined replacements
Stars: ✭ 506 (-8.99%)
Mutual labels:  vim-plugin
Resume
👾 My resume / 我的简历
Stars: ✭ 482 (-13.31%)
Mutual labels:  latex
Textidote
Spelling, grammar and style checking on LaTeX documents
Stars: ✭ 483 (-13.13%)
Mutual labels:  latex
Arxiv Style
A Latex style and template for paper preprints (based on NIPS style)
Stars: ✭ 497 (-10.61%)
Mutual labels:  latex

julia-vim

julia-vim logo

Julia support for Vim.

INSTALLATION INSTRUCTIONS

Complete documentation

The full documentation is available from Vim: after installation, you just need to type :help julia-vim.

The remainder of this README will only give an overview of some of the features:

LaTeX-to-Unicode substitutions

This plug-in adds some functionality to substitute LaTeX code sequences (e.g. \alpha) with corresponding Unicode symbols (e.g. α). By default, these substitutions must be triggered explicitly by pressing the Tab key, as in the Julia command line (the REPL); however, an automatic, as-you-type mode can also be activated, and a method based on keymap is also available.

This feature also works in command mode, e.g. when searching the files with the / or ? commands, but the as-you-type mode is not available (the keymap-based version works though, and it also works with some Vim commands like f and t).

By default, this feature is only active when editing Julia files. However, it can be also enabled with other file types, and even turned on/off on the fly regardless of the file type.

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 below for more details.

The following sections provide details on these features. The complete documentation is provided by calling :help julia-vim from within Vim. A complete reference table of the available substitution can be accessed by calling :help L2U-ref from within Vim.

LaTeX-to-Unicode via Tab key

This plug-in adds a mapping to the Tab key which makes it behave like the Julia REPL, i.e. when the cursor is at the end of a recognized LaTeX symbol (e.g. \alpha) in insert mode, pressing the Tab key will substitute it with the corresponding Unicode symbol (e.g. α). If a partial match is found (e.g. \al), a list of possible completions is suggested (e.g. \aleph, \allequal, \alpha), and it will be refined while you enter more characters; when only one match is left, pressing Tab will complete it and pressing it again will perform the substitution to Unicode.

If no suitable substitution is found, the action will fall back to whatever mapping was previously defined: by default, inserting a literal <Tab> character, or invoking some other action if another plug-in is installed, e.g. supertab or YouCompleteMe.

Note that the YouCompleteMe, neocomplcache, neocomplete and deoplete plug-ins do not work well with the suggestion of possible completions for partial matches, and therefore this feature is disabled if those plug-ins are detected.

A literal tab can always be forced by using CTRL-V and then Tab.

On the Vim command line, e.g. when searching the file with the / or ? commands, the feature is also activated by Tab, but falls-back to the Vim built-in behavior if no suitable substitution is found: if you had defined a mapping for Tab in command mode, it will be overridden. This can be prevented by choosing a different value for the mapping keys, see the full documentation.

To disable this mapping, you can use the command :let g:latex_to_unicode_tab = 0, e.g. by putting it into your .vimrc file. You can also change this setting from the Vim command-line, but you will also need to give the command :call LaTeXtoUnicode#Init() for the change to take effect.

Even when the mapping is disabled, the feature is still available (in insert mode) via the completion mechanism, i.e. by pressing CTRL-X and then CTRL-U.

To disable the suggestions of partial matches completions, use the command :let g:latex_to_unicode_suggestions = 0.

In general, suggestions try not to get in the way, and so if an exact match is detected (e.g. \ne) when Tab is pressed, the substitution will be done even when there would be other symbols with the same prefix (e.g. \neg). This behaviour can be changed by the command :let g:latex_to_unicode_eager = 0, in which case hitting Tab will first produce a suggestion list, and only pressing it again will trigger the substitution to Unicode.

Using this feature on Vim versions lower than 7.4

The automatic remapping of the Tab key is not performed if Vim version is lower than 7.4. However, the functionality can still be used via the completion mechanism, i.e. by using CTRL-XCTRL-U. You can map this to some more convenient key combination, e.g. you may want to add something like this line to your .vimrc file:

inoremap <C-Tab> <C-X><C-U>

This would map the functionality to CTRL-Tab. However, if you try to map this to Tab, you'd only be able to use literal Tab by using CTRL-VTab.

LaTeX-to-Unicode as you type

An automatic substitution mode can be activated by using the command :let g:latex_to_unicode_auto = 1, e.g. by putting it into your .vimrc file. You can also change this setting from the Vim command-line, but you will also need to give the command :call LaTeXtoUnicode#Init() for the change to take effect.

In this mode, symbols will be substituted as you type, as soon as some extra character appears after the symbol and a LaTeX sequence can unambiguously be identified.

For example, if you type a \ne b the \ne will be changed to right after the space, before you input the b.

This does not interfere with the Tab mapping discussed above. It only works in insert mode, and it doesn't work with emojis.

This feature is not available with Vim versions lower then 7.4.

LaTeX-to-Unicode via keymap

A different susbstitution mode based on keymaps can be activated with :let g:latex_to_unicode_keymap = 1, e.g. by putting it into your .vimrc file. This works similarly to the as-you-type method described above, but it has the advantage that it works under more circumstances, e.g. in command-line mode when searching with / or ?, and when using the f and t commands. The main 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 any case, it is possible to use this method in parallel with the other two methods, they don't interfere. So if you have the Tab mapping (discussed above) activated, you still get to see completions and suggestions. If you have the as-you-type substitution active, and you make a mistake, you can simply press backspace and keep going, at least in insert mode, and so on.

This feature might with Vim versions lower then 7.4, but it hasn't been tested.

LaTeX-to-Unicode on other 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, you could put let g:latex_to_unicode_file_types = ".*" in your .vimrc file. Be aware, however, that enabling the functionality overrides the completefunc setting.

Enabling and disabling the LaTeX-to-Unicode functionality

Regardless of the type of the file you are editing and of the g:latex_to_unicode_file_types setting, the LaTeX-to-Unicode substitutions can be enabled/disabled/toggled by calling the functions LaTeXtoUnicode#Enable(), LaTeXtoUnicode#Disable(), LaTeXtoUnicode#Toggle(). For example, you could use the mappings:

noremap <expr> <F7> LaTeXtoUnicode#Toggle()
noremap! <expr> <F7> LaTeXtoUnicode#Toggle()

and then use the F7 key to quickly turn the feature on and off.

Block-wise movements and block text-objects

This plug-in defines mappings to move around julia blocks (e.g. if/end, function/end etc.) and to manipulate them as a whole (analogously to the standard w, b etc. commands to move on words, and to the aw, iw commands which allow to manipulate them). These require the matchit plugin, which is usually distributed with ViM but must be explicitly enabled, e.g. adding this to your .vimrc file:

runtime macros/matchit.vim

The default mappings use ]], ][, [[, [], ]j, ]J, [j, and [J for the movements and aj, ij for the selections. These can be disabled collectively by setting g:julia_blocks to 0, or they can be remapped and/or disabled individually by defining a g:julia_blocks_mapping variable. See the documentation for details.

Note that this feature requires Vim version 7.4 or higher.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].