summaryrefslogtreecommitdiffstats
path: root/doc/julia-vim.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/julia-vim.txt')
-rw-r--r--doc/julia-vim.txt484
1 files changed, 0 insertions, 484 deletions
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 <carlobaldassi@gmail.com>
-License: MIT license {{{
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-}}}
-
-CONTENTS *julia-vim*
-
-Introduction |julia-vim-introduction|
-Block-wise movements/objects |julia-vim-blocks|
- Keyword-oriented movements |julia-vim-blocks-move|
- Block-oriented movements |julia-vim-blocks-moveblock|
- Block text objects |julia-vim-blocks-objects|
- Variables |julia-vim-blocks-variables|
-Referring to documents |julia-vim-doc|
-Extras |julia-vim-extras|
-Customizations |julia-vim-options|
-About |julia-vim-about|
-
-==============================================================================
-INTRODUCTION *julia-vim-introduction*
-
-The julia-vim plug-in provides:
- - basic support for editing Julia files (automatic filetype detection,
- indentation, syntax highlighting)
- - support for the |matchit| plugin
- - support for Julia block-wise movements (i.e. jumping around between
- Julia blocks like if/end, function/end etc.) and block text-objects
- - facilities for conversion of LaTeX entries to Unicode symbols which mimic
- and extend what the Julia REPL and the IJulia notebook interface do.
- Optionally, this functionality can be used with all file types, not
- just Julia files. See |julia-vim-L2U|.
- - a keymapping |K| to refer julia documents.
-
-This help file documents: 1) the block-wise movements and objects, how they
-work and what variables can be used to enable/disable/tweak them; 2) The
-documentation lookup facility; 3) Some extra functions and customization
-options.
-The LaTeX-to-Unicode facilities are documented in |julia-vim-L2U|.
-
-==============================================================================
-BLOCK-WISE MOVEMENTS AND BLOCK TEXT OBJECTS *julia-vim-blocks*
-
-In Julia, all blocks start with a keyword (`module`, `function`, `if`, `for`,
-`while`, `type`, etc.) and end with the `end` keyword.
-
-This plug-in adds support for the |matchit| plugin, such that pressing |%| while
-on a block keyword will jump to the other keywords pertaining to the same
-block. For example, if the cursor is at the beginning of the following code:
->
- if a == 1
- if b > 0
- println("yes")
- end
- else
- println("no")
- end
-<
-then pressing |%| will jump to the `else` keyword, pressing it again will jump
-to `end`, and pressing it again will go back to the first `if`.
-
-Note that the matchit plugin is normally distributed with ViM, but it is
-disabled by default. To enable it, add this line to your |.vimrc| file:
->
- runtime macros/matchit.vim
-<
-The julia-vim plug-in also adds commands to jump around block keywords in
-normal, operator-pending and visual modes (see |vim-modes|). These are somehow
-similar to the |]]| and |]m| mappings when used in C and Java files,
-respectively, but are more powerful. These commands also require that the
-matchit plugin is enabled.
-
-There are two families of block movements, keyword-oriented (see
-|julia-vim-blocks-move|) and block-oriented (see
-|julia-vim-blocks-blockmove|).
-
-Finally, this plug-in also adds block |text-objects| special mappings, so that
-whole blocks can be manipulated as a whole when in visual mode or
-operator-pending mode, see |julia-vim-block-objects|.
-
-The block movements and block objects mappings can be collectively disabled,
-see |g:julia_blocks|, and customized, see |g:julia_blocks_mappings|.
-
-NOTE: in all cases, macros at the beginning of a block are considered as part
-of the block itself. For example, in this code:
->
- @inbounds for i = 1:5
- s += v[i]
- end
-<
-the block begins at `@inbounds`.
-
-------------------------------------------------------------------------------
-KEYWORD-ORIENTED MOVEMENTS *julia-vim-blocks-move*
-
-These movements jump to the following/preceding block keyword, and they
-differentiate between begin keywords and end keywords. Some block keywords can
-also be used outside blocks (e.g. `for` in comprehensions, or `end` within
-indexing expressions): these instances are ignored by these commands.
-
-The following movements are provided:
-
- *julia_]j* *julia_]J* *julia_[j* *julia_[J*
-move_n : jumps to the next begin keyword. By default, it is mapped to `]j`.
-move_N : jumps to the next end keyword. By default, it is mapped to `]J`.
-move_p : jumps to the preceding begin keyword. By default, it is mapped to `[j`.
-move_P : jumps to the preceding end keyword. By default, it is mapped to `[J`.
-
-Use |g:julia_blocks_mappings| to customize the mappings.
-
-------------------------------------------------------------------------------
-BLOCK-ORIENTED MOVEMENTS *julia-vim-blocks-moveblock*
-
-These movements are like keyword-oriented movements (|julia-vim-blocks-move|),
-except that they ignore nested blocks within the block where the cursor is.
-For example, given the following code (with line annotations):
->
- 1 while true
- 2 a += 1
- 3 if a > 5
- 4 break
- 5 end
- 6 end
- 7 if b == 2
- 8 return
- 9 end
-<
-if the cursor is on line 2, these movements will ignore the inner
-`if/end` block (lines 3 to 5). You would then be able to jump directly
-to lines 1 (with `[[`), 6 (with `][`), 7 (with `]]`), or 9 (with `2][`).
-
-The following movements are provided:
-
- *julia_]]* *julia_][* *julia_[[* *julia_[]*
-moveblock_n : gets out from the current block (if any) and jumps to the next
- begin keyword. (Similar to |w| for word movements.) By default,
- it is mapped to `]]`.
-moveblock_N : jumps to the end of the current block, if any. If the cursor is
- already at the end of a block, jumps to the end of the following
- block at the same level of the current one, or at the end of the
- enclosing block. (Similar to |e| for word movements.) By
- default, it is mapped to `][`.
-moveblock_p : jumps to the beginning of the current block, if any. If the
- cursor is already at the beginning of a block, jumps to the
- beginning of the preceding block at the same level of the
- current one, or at the beginning of the enclosing block.
- (Similar to |b| for word movements.) By default, it is mapped to
- `[[`.
-moveblock_P : gets out from the current block (if any) and jumps to the
- preceding end keyword. (Similar to |ge| for word movements.)
- By default, it is mapped to `[]`.
-
-Use |g:julia_blocks_mappings| to customize the mappings.
-
-------------------------------------------------------------------------------
-BLOCK TEXT OBJECTS *julia-vim-blocks-objects*
-
-The julia-vim plug-in extends the ViM |text-objects| by defining special
-mappings which allow to operate on blocks as a whole when in visual mode
-or operator-pending mode. The default mappings use `aj` and `ij` to refer to
-these objects.
-For example, given the following code (with line annotations):
->
- 1 while true
- 2 a += 1
- 3 if a > 5
- 4 break
- 5 end
- 6 end
-<
-if the cursor is on `break` on line 4, pressing `vaj` will select the whole
-inner `if` block (lines 3 to 5), and pressing `aj` again will select the whole
-`while` block (lines 1 to 6). The same effect could have been obtained with a
-counter, i.e. using `v2aj`. If the cursor were initially on line 2, the whole
-`while` block would have been selected with the first `vaj`. Using `daj` would
-delete a block, `caj` would delete it and leave ViM in insert mode, `=aj`
-would indent it, etc.
-Starting from line 2, pressing `vij` wuold only select the inner part of the
-`while` block (lines 2 to 5).
-
-The following mappings are provided:
-
- *julia_aj* *julia_ij*
-select_a : the block which contains the cursor, including its delimiters.
- By default, this is mapped to `aj`. Repeated application (e.g.
- `vajaj`) selects the enclosing blocks. A counter can be used to
- the same effect as repetition (e.g. `v2aj`).
-select_i : same as select_a, but only selects the lines included between the
- delimiters. Thus, this does not work with single-line blocks.
- By default, this is mapped to `ij`. Repeated application (e.g.
- `vijij`) has no effect, but using a counter has the same effect as
- using "select_a" and then selecting the inner part of the outermost
- block. For example, with the default mappings, `v3ij` is the same as
- `v3ajij`, or `vajajajij`.
-
-Use |g:julia_blocks_mappings| to customize the mappings.
-
-The following auxiliary function is only mapped to normal mode:
-
- *julia_whereami*
-whereami : this mapping prints the first line of the current block on the
- command line. If invoked repeatedly, or if given a count, it prints
- the first line of the enclosing blocks, like `select_a`. If followed
- by `select_a`, the selection, or operation, will refer to the last
- block printed. By default, it is not mapped to any key, but a
- mapping can be easily provided in |g:julia_blocks_mappings|. It is
- possible to obtain the string, instead of having it printed, by
- calling the function `julia_blocks#whereami()`. In such case, use
- the function `julia_blocks#select_reset()` to reset the block
- nesting level.
-
-------------------------------------------------------------------------------
-VARIABLES *julia-vim-blocks-variables*
-
- *g:julia_blocks*
-g:julia_blocks
-
- Determines whether to map block-wise movements and objects. If
- unspecified, it is on. You can disable the feature by default
- by inserting the line
->
- let g:julia_blocks = 0
-<
- in your |.vimrc| file.
-
- *g:julia_blocks_mappings*
-g:julia_blocks_mappings
-
- Custom mapping for block-wise movements. This must be a |dict|
- associating movements to key combinations. Use empty strings
- to disable individual mappings. The following is equivalent
- to the default mappings (see |julia-vim-blocks-moveblock|,
- |julia-vim-blocks-move| and |julia-vim-blocks-objects|):
->
- let g:julia_blocks_mappings = {
- \ "move_n" : "]j",
- \ "move_N" : "]J",
- \ "move_p" : "[j",
- \ "move_P" : "[J",
- \
- \ "moveblock_n" : "]]",
- \ "moveblock_N" : "][",
- \ "moveblock_p" : "[[",
- \ "moveblock_P" : "[]",
- \
- \ "select_a" : "aj",
- \ "select_i" : "ij",
- \
- \ "whereami" : "",
- \ }
-<
- You can change individual mappings by writing something like
- this in your |.vimrc| file:
->
- let g:julia_blocks_mappings = {
- \ "move_N" : "]n",
- \ "move_P" : "[n",
- \ "whereami" : "<Leader>j",
- \ }
-<
- Or you can disable individual mappings by writing something like
- this in your |.vimrc| file:
->
- let g:julia_blocks_mappings = {
- \ "moveblock_n" : "",
- \ "moveblock_p" : "",
- \ }
-<
- All unspecified entries keep their default value.
-
-
-==============================================================================
-REFERRING TO DOCUMENTATION *julia-vim-doc*
-
- *julia-vim-K*
-K
- Look up documentation for the keyword under the cursor. If found,
- a preview window with the documentation is opened.
-
- This also works for keywords within the opened preview window,
- allowing effortless browsing of the documentation.
-
- (This is not really a key mapping, but uses the built-in
- |keywordprg|-mechanism in vim; see |K| if you're curious).
-
-
- *<Plug>(JuliaDocPrompt)*
-<Plug>(JuliaDocPrompt)
- Open a prompt for keyword documentation lookup. If you don't use |?|
- for backward search, you can use the following to make `?` work like
- in the Julia REPL:
->
- autocmd FileType julia nmap <buffer> ? <Plug>(JuliaDocPrompt)
-<
- Apply |:augroup| as needed.
-
-
- *:JuliaDoc*
-:JuliaDoc {keyword}
- Look up documentation for {keyword}.
-
-
-==============================================================================
-EXTRAS *julia-vim-extras*
-
-
- *julia#toggle_function_blockassign*
- *julia#function_block2assign*
- *julia#function_assign2block*
-julia#toggle_function_blockassign()
-julia#function_block2assign()
-julia#function_assign2block()
-
- These functions allow to transform function definitions
- between block format and assignment format. For example,
- these two definitions are equivalent:
->
- function test(x, y)
- x + 2y
- end
-
- test(x, y) = x + 2y
-<
- You can use the function `julia#toggle_function_blockassign()`
- to switch between the two forms (the cursor needs to be on the
- first line of the block form). This functionality requires
- that the |matchit| plugin is loaded. Only three-line function
- blocks like the one in the example are recognized. When
- changing the block form into the assignment form, `return`
- statements are removed; if the result is empty, `nothing` is
- substituted. Leading macros (e.g. `@inline` or `@compat`) are
- recognized and preserved by the transformation.
-
- In order to make this functionality practical, it is advisable
- to map it to some key combination, e.g.:
->
- noremap <Leader>fb :call julia#toggle_function_blockassign()<CR>
-<
-
-==============================================================================
-CUSTOMIZATIONS *julia-vim-options*
-
-The following options allows customizing some aspects of the plugin.
-
- *g:julia_spellcheck_docstrings*
-g:julia_spellcheck_docstrings
-
- Determines whether to enable spell-checking for docstrings,
- i.e. triple quoted strings that start in the first column. See
- |spell|. Default: on (set to `1`).
-
- *g:julia_spellcheck_strings*
-g:julia_spellcheck_strings
-
- Determines whether to enable spell-checking for all strings.
- See |spell|. Default: off (set to `0`).
-
- *g:julia_spellcheck_comments*
-g:julia_spellcheck_comments
-
- Determines whether to enable spell-checking for comments. See
- |spell|. Default: on (set to `1`).
-
- *g:julia_highlight_operators*
-g:julia_highlight_operators
-
- Determines whether to apply syntax highlighting to operators.
- Default: on (set to `1`).
-
- *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