{"id":19078962,"url":"https://github.com/tomtom/viki_vim","last_synced_at":"2025-04-30T05:23:24.036Z","repository":{"id":66582423,"uuid":"851556","full_name":"tomtom/viki_vim","owner":"tomtom","description":"A personal wiki for Vim","archived":false,"fork":false,"pushed_at":"2017-10-14T06:55:56.000Z","size":781,"stargazers_count":54,"open_issues_count":1,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-18T20:49:51.656Z","etag":null,"topics":["viki","vim","vim-plugin","viml","wiki"],"latest_commit_sha":null,"homepage":"http://www.vim.org/scripts/script.php?script_id=861","language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tomtom.png","metadata":{"files":{"readme":"README","changelog":"CHANGES.TXT","contributing":null,"funding":null,"license":"LICENSE.TXT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2010-08-20T16:29:27.000Z","updated_at":"2024-01-03T03:38:34.000Z","dependencies_parsed_at":"2023-06-02T00:00:36.355Z","dependency_job_id":null,"html_url":"https://github.com/tomtom/viki_vim","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomtom%2Fviki_vim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomtom%2Fviki_vim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomtom%2Fviki_vim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomtom%2Fviki_vim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tomtom","download_url":"https://codeload.github.com/tomtom/viki_vim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251646212,"owners_count":21620891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["viki","vim","vim-plugin","viml","wiki"],"created_at":"2024-11-09T02:12:52.951Z","updated_at":"2025-04-30T05:23:24.029Z","avatar_url":"https://github.com/tomtom.png","language":"Vim script","funding_links":[],"categories":[],"sub_categories":[],"readme":"NOTE: This plugin is superseded by the vikibase_vim plugin (see \nhttps://github.com/tomtom/vikibase_vim).\n\nThis plugin adds wiki-like hypertext capabilities to Vim. You can use viki as \na \"minor\" mode (i.e., as an add-on to any other mode) or as a full-fledged \nwiki mode. There is also an add-on plugin for \"wikifying\" latex documents by \nturning some latex commands into wiki names. If viki is properly configured, \nactivating a reference to an image, a webpage etc. will view that resource in \nan external viewer.\n\nFrom http://sourceforge.net/projects/deplate/ you can download a ruby based \ntool to convert viki markup to LaTeX, HTML, or DocBook. On its homepage \n(http://deplate.sf.net) you can read a more detailed specification of the \nmarkup.\n\nMINOR WIKI MODE:\nJust type |:VikiMinorMode| and all wiki names and URLs will be highlighted.  \nWhen the cursor is over a wiki name, you can press \u003cc-cr\u003e to jump to (or \ncreate) the referred page (on a terminal use \u003cLocalLeader\u003evf). Pressing \n\u003cLocalLeader\u003evb brings you back to the original document. Alternatively, you \ncan use \u003cm-leftmouse\u003e and \u003cm-rightmouse\u003e to jump back and forth. (NOTE: In \nminor mode, it's possible that viki words and URLs are not highlighted when \nthey are included in some syntactic regions.)\n\nFULL WIKI MODE:\nIn full mode, viki becomes a personal wiki \n(http://c2.com/cgi/wiki?PersonalWiki). Set 'filetype' to viki or execute \n|:VikiMode|. The full wiki mode is like the minor mode but with folding \nsupport, syntax highlighting (for headings, lists, tables, textstyles etc.), \nand additional key bindings (i.e., you can press \u003cc-tab\u003e or \u003cs-c-tab\u003e to move \nthe cursor to the next/previous viki name).\n\nBUT HEY, WHAT IS A WIKI ANYWAY:\nAmong the vast amount of possible definitions, I prefer this one, which is my \nown anyway :-): a wiki is a simple way of creating hypertexts. In its basic \nform creating a hyperlink is as easy as writing a word in CamelCase (although \nthis sometimes turn out to be more annoying than useful) or by a rather \nminimalist markup -- in the case of viki, this would be [[destination]] or \n[-destination-].\n\nYou begin by creating a directory where your wiki files should go to and by \ncreating a wiki index -- a master file that contains references to sub-pages. \nAfter a while you end up with many small, tightly interlinked files/notes.\n\nWikis also come with a rather subtle markup. Here is a simple comparison of \ntwo examples of LaTeX and viki markup so that you get the idea of what it \nlooks like:\n\n    LaTeX: \\section{Title}\n    Viki:  * Title\n\n    LaTeX: \\emph{text}\n    Viki:  __text__\n\nAnd some wikis provide tools for translating this markup to other formats \n(like viki does in the form of the \"deplate\" program, which can translate viki \nmarkup to LaTeX, HTML, and Docbook). Unfortunately, just about every wiki has \nits own markup. \n\n                                                    *viki-support*\nVIKI Forum (questions, feature requests):\nhttp://sourceforge.net/projects/deplate/forums/forum/700962\n\nBug tracker:\nhttps://github.com/tomtom/deplate/issues\n\nDemo:\nhttp://vimsomnia.blogspot.com/2010/11/vikitasks-viki-demonstration-personal.html \n\n\n-----------------------------------------------------------------------\nInstall~\n\nIn order to install the vba, open the vba file in VIM and type: \u003e\n\n    :so %\n\nSee :help vimball for details.\n\nThis script requires tlib (vimscript #1863) to be installed.\n\nAlso available via git: http://github.com/tomtom/viki_vim/\n\n                                                    *viki-requirements*\nRequirements:\n- tlib (vimscript #1863)\n\n                                                    *viki-related-plugins*\nOptional enhancements:\n- vikitasks (vimscript #2894): Distributed TODO lists\n- hookcursormoved (vimscript #2037): Enhanced detection of hyperlinks to \n  inexistent destinations.\n- vxfold (vimscript #3004): Provides org-mode like fold cycling\n- VOoM (vimscript #2657): A two-pane outliner with support for viki\n- kpsewhich (not a vim plugin :-) for LaTeX support\n\n\nPost-Install~\n\nViki requires the following minimal lines to be added to |vimrc|: \u003e\n\n    :set nocompatible\n    :filetype plugin indent on\n    :syntax on\n\nYou might also want to set 'expandtab' (local to buffer) in \nafter/ftplugin/viki.vim: \u003e\n\n    setlocal expandtab\n\nViki will be automatically loaded when starting vim. In case you have vim \nalready running and don't want to restart it, you can also type: \u003e\n\n    :runtime plugin/viki.vim\n\nViki doesn't set the viki filetype for you. How you set the filetype is up to \nyou to decide. Basically, there are two possibilities: based on a suffix or \nbased on the location. See |viki-filetype-detection|.\n\n\nCustomization:                                      *viki-customization*\nIt's probably a good idea to check the values of the following variables:\n\n    - |g:vikiUpperCharacters| and |g:vikiLowerCharacters|; for the most \n      commonly used foreign language characters in a Western European \n      context set these variables to something like (this refers to the \n      characters allowed in simple viki names and in anchors; for East Asian \n      languages you probably prefer to use quoted viki names anyway): \u003e\n\n        \" this is in iso-latin-1\n        let g:vikiLowerCharacters = \"a-zäöüßáàéèíìóòçñ\"\n        let g:vikiUpperCharacters = \"A-ZÄÖÜ\"\n\u003c\n    - |vikiNameTypes| (see |viki-names|): control which type of viki names you \n      want to use (this allows you to turn off, e.g., simple viki names)\n\nYou might also need to configure some external programs (use the variables \ng:vikiOpenUrlWith_{PROTOCOL} and g:vikiOpenFileWith_{SUFFIX}) like in this \nexample: \u003e\n\n    let g:vikiOpenUrlWith_mailto = 'thunderbird -compose %{URL}'\n    let g:vikiOpenFileWith_html  = \"silent !firefox %{FILE}\"\n    let g:vikiOpenFileWith_ANY   = \"silent !start %{FILE}\"\n\nYou should at least check the definitions of |g:vikiOpenFileWith_ANY| \nand |g:vikiOpenUrlWith_ANY|.\n\nThis way, if you had, e.g., pdftotext (from the xpdf distribution) installed, \nyou could make viki to open references to pdf files right in VIM: \u003e\n\n    fun! ConvertPDF()\n        if !exists(\"b:convertedPDF\")\n            exec \"cd \". expand(\"%:p:h\")\n            exec \"%!pdftotext \". expand(\"%:t\") .\" -\"\n            :%!par 72w\n            cd -\n            setlocal noswapfile buftype=nowrite\n            let b:convertedPDF = 1\n        endif\n    endf\n    let g:vikiOpenFileWith_pdf = 'call viki#OpenLink(\"%{FILE}\", \"\", 1)|silent call ConvertPDF()'\n\n                                                    *viki-intervikis*\nLater on, you probably want to define some intervikis. A |interviki| is a \nshortcut to a different viki directory/namespace, so that you have to care \nless about page names.\n\nThere are two ways to define an interviki:\n\n    1. Use |VikiDefine()|: \u003e\n\n       call VikiDefine('SCI', $HOME.\"/Projects/Sci/Ideas\", \".txt\")\n\n\u003c      This command will automatically define a menu for each interviki \n       (unless g:vikiMenuPrefix is empty) and it will also define a command \n       with the name of the interviki that can be used to quickly access viki \n       files from the vim command line.\n\n       The disadvantage of this approach is that you can define \n       intervikis only after plugin/viki.vim was loaded -- e.g. in \n       after/plugin/viki.vim.\n\n    2. Use |g:viki_intervikis| (a dictionary). The values can be either a list \n       (arguments for |VikiDefine()|) or a string. \u003e\n\n       let g:viki_intervikis = {}\n       let g:viki_intervikis['SCI']  = [$HOME.\"/Projects/Sci/Ideas\", \".txt\"]\n       let g:viki_intervikis['PROJ'] = $HOME.\"/Projects\"\n\n\u003c      This variable has to be set in vimrc before loading the vim \n       plugin.\n\nYour newly defined interviki can then be accessed as SCI::ThisIdea, \nwhich would refer to the file \"~/Projects/Sci/Ideas/ThisIdea.txt\".\n\nVikiDefine also defines a command (:SCI in this example) that opens a wiki's \nindex file (an optional 4th argument or \"${g:vikiIndex}.${suffix}\").\n\nIntervikis can also be defined as patterns or functions as in the following \nexample: \u003e\n\n    fun! GetAddress(vikiname)\n        let surname = substitute(a:vikiname, '^\\(\\u.\\{-}\\)\\(\\u\\U*\\)\\?$', '\\1', '')\n        let firstname  = substitute(a:vikiname, '^\\(\\u.\\{-}\\)\\(\\u\\U*\\)\\?$', '\\2', '')\n        return 'https://www.example.com/cgi/search.cgi?search='. surname .','. firstname\n    endf\n\n    call VikiDefine('CONTACT', '*GetAddress(\"%s\")')\n    call VikiDefine('INDEX', '%/foo/%s/index.html')\n\nCONTACT::JohnDoe would the refer to \nhttps://www.example.com/cgi/search.cgi?search=Dow,John and [[INDEX::bar]] \nwould refer to /foo/bar/index.html\n\nIn order to use the LaTeX enabled viki variant, add this to your |vimrc| file: \u003e\n\n    au FileType tex let b:vikiFamily=\"LaTeX\"\n\nIn order to automatically set |deplate| as the compiler for viki files: \u003e\n\n    \" we want to allow deplate to execute ruby code and external helper \n    \" application\n    let g:deplatePrg = \"deplate -x -X \"\n    au FileType viki compiler deplate\n\n                                                    *viki-filetype-detection*\nBy default, the filetype of files matching the suffix defined in \n|g:vikiNameSuffix| will be set to viki.\n\nYou can also use |:autocmd| to set the filetype depending on the path: \u003e\n\n    autocmd BufRead,BufNewFile $HOME/MyWiki/* set filetype=viki\n\nIf the variables b:getVikiLink or b:getExtVikiLink exist, their values are \nused as _function_ names for returning the current viki name's definition. A \nviki definition is an array of the three elements name, destination, anchor.\n\nIf the variables b:editVikiPage or b:createVikiPage exist, their values are \ninterpreted as _command_ names for editing readable or creating new wiki \npages.\n\nFor a better highlighting of viki files, also check out these variables:\n\n    - |g:vikiTypewriterFont| (see |viki-textstyles|)\n    - |g:vikiHeadingFont| (see |viki-headings|)\n    - |g:vikiHyperLinkColor|\n    - |g:vikiInexistentColor|\n\n                                                    *viki-indent-disable*\nIn order to disable the indentation plugin, define the variable g:vikiNoIndent \nand set it to whatever you want.\n\n\n-----------------------------------------------------------------------\n                                                    *viki-names*\nViki Names~\n\nA viki name is either:\n\n                                                    *viki-simple-names*\n    1. Simple wiki names -- these refer to files in the same directory as the \n       current file:\n\n        a. a word in CamelCase\n            VikiName\n            VikiName#anchor\n\n            NOTE: A simple viki name may include characters from \n            |g:vikiUpperCharacters| and |g:vikiLowerCharacters|.\n\n        b. some text between \"[-\" and \"-]\"\n            [-name-]\n            [-some name-]#there\n\n            NOTE: \"[--]\" refers to the current file.\n\n            NOTE: Anyways, the characters []:*\u0026?\u003c\u003e/|\\\" are not allowed in \n            names as they usually cause trouble when included in file names.\n\n                                                    *interviki*\n         c. an \"inter wiki\" name, where the first part (in upper-case letters) \n         is a shortcut to some other viki, so that you have to care less about \n         page names\n\n            OTHERVIKI::VikiName\n            OTHERVIKI::VikiName#there\n            OTHERVIKI::[-some name-]\n            OTHERVIKI::[-some name-]#there\n\n            E.g., if you had two intervikis defined, say SCI and COMP, you \n            could the refer to their pages as in: \u003e\n\n                Couldn't SCI::ThisIdeaOfMine be combined with COMP::ThisIdeaOfMine?\n\u003c\n            NOTE: You can define intervikis with the VikiDefine command: \u003e\n\n                VikiDefine OTHERVIKI /home/t/Wiki .vik\n\n\u003c           Then OTHERVIKI::VikiName points to the file \"/home/t/Wiki/VikiName.vik\".\n\n            NOTE: Set the string variable g:vikiInter{NAME}_suffix (see \n            |curly-braces-names|) in order to override the settings of \n            |b:vikiNameSuffix| and |g:vikiUseParentSuffix| for references to \n            the other viki.\n\n        NOTE: If the variable |b:vikiNameSuffix| is defined, it will be added to \n        simple wiki names so that the simple wiki name \"OtherFile\" refers to \n        \"OtherFile.suffix\" -- e.g. for interlinking LaTeX-files.  \n        Alternatively, you can set |g:vikiUseParentSuffix| to non-zero in order \n        to make viki always append the \"parent\" file's suffix to the \n        destination file.\n\n                                                    *viki-extended-names*\n    2. an extended wiki name of the form:\n\n            [[destination]]\n            [[OTHERVIKI::destination]]\n            [[destination][name]]\n            [[destination#anchor][name]]\n            [[#anchor]]\n            [[#anchor][name]]\n\n        NOTE: The destination name is taken literally, i.e. variables like \n        |g:vikiUseParentSuffix| or |b:vikiNameSuffix| have no effect.\n\n        NOTE: Opening extended wiki names referring to files with suffixes \n        matching one of |vikiSpecialFiles| (e.g. [[test.jpg]]) can be \n        delegated to the operating system -- see |VikiOpenSpecialFile()|. The \n        same is true for names matching |vikiSpecialProtocols|, which will be \n        opened with |VikiOpenSpecialProtocol()|.\n\n        NOTE: In extended wiki names, destination path is relative to the \n        document's current directory if it doesn't match \n        \"^\\(\\/\\|[a-z]:\\|[a-z]\\+://\\)\". I.e.  [[../test]] refers to the \n        directory parent to the document's directory. A tilde at the beginning \n        will be replaced with $HOME.\n\n                                                    *viki-urls*\n    3. an URL\n        It is assumed that these URLs should be opened with an external \n        program; this behaviour can be changed by redefining the function \n        |VikiOpenSpecialProtocol()|.\n\n    4. Hyperwords (not supported by deplate)\n        Hyperwords are defined in either ./.vikiWords or \n        \u0026rtp[0]/vikiWords.txt each word in a line in the form \n        \"word\u003ctab\u003edestination\", where \u003ctab\u003e is the tab character (code \n        9). Lines beginning  with '%' are ignored. These words are \n        automatically highlighted.  Depending on your setting of \n        |vikiNameTypes|, viki may try to make hyperwords out of the \n        filenames in the current buffer's directory.  I.e. if \n        |vikiNameSuffix| is '.viki' and there is a file 'example.viki' \n        in the same directory as the current buffer's file, then each \n        occurrence of the word 'example' will be turned into a clickable \n        link. You can prevent a file name from being highlighted as \n        hyperword by defining an entry in the vikiWords file with \"-\" as \n        destination.\n\nAdding #[a-z0-9]\\+ to the wiki name denotes a reference to a specific anchor.  \nExamples for wiki names referring to an anchor: \u003e\n\n\tThatPage#there\n\t[[anyplace/filename.viki#there]]\n\t[[anyplace/filename.viki#there][Filename]]\n\nA anchor is marked as \"^\".b:commentStart.\"\\?#[a-z0-9]\\+\" in the destination\nfile. If |b:commentStart| is not defined, the EnhancedCommentify-variables or\n|\u0026commentstring| will be used instead.  Examples ('|' = beginning of line):\n\n    - LaTeX file, b:commentStart is set to \"%\"\n      |%#anchor\n      |#anchor\n    - C file, |\u0026commentstring| is set to \"/*%s*/\"\n      |/*#anchor */\n    - Text file, b:commentStart is undefined\n      |#anchor\n\nNOTE: If \"#\" is the comment character (as in ruby), a space should follow the\ncomment character in order to distinguish comments from anchors.\n\nNOTE: In \"full\" viki mode (when invoked via VikiMode) comments are marked \nwith \"%\" by default (see g:vikiCommentStart). An anchor has thus to be \nwritten as in the LaTeX example.\n\nNOTE: |deplate| attaches an anchor to the previous element (e.g. |viki-tables|).\n\n\n-----------------------------------------------------------------------\n                                                    *viki-markup*\nPseudo Markup~\n\nThe pseudo markup is to some degree compatible with emacs-wiki, which in turn  \nis to some degree compatible with some other wiki -- i.e., it's compatible \nenough to edit and work with files in emacs-wiki markup, but in some aspects \nit's more restrictive. To convert viki markup to other formats, see the\n|deplate|.\n\n\n                                                    *viki-headings*\nHeadings~\n* Level 1\n** Level 2\n...\n\n    NOTE: Headings can span more than one line by putting a backslash ('\\') at \n    the end of the line.\n\n    NOTE: If |g:vikiHeadingFont| is defined, the heading will be set in this \n    font.\n\n\n                                                    *viki-lists*\nLists: (indented)~\n\n    - Item\n        * Item\n            + Item\n                1. Item 1\n                    a. Item a\n                    B. Item B\n        # Item\n            # Item 1\n            # Item 2\n                @ Item A\n                @ Item B\n\nNOTE: \"@\" (unordered lists) and \"#\" (ordered lists) are the preferred markers.\n\n\n                                                    *viki-descriptions*\nDescriptions: (indented)~\n\n    Item :: Description\n\n\n                                                    *viki-tasks*\nTasks: (indented)~\nViki supports some markup for task/priority lists. Basic syntax: \u003e\n\n    #C9 DATE TAGS CONTACTS MESSAGE\n\nwhere:\n\n    C        ... category (a single upper case letter)\n    9        ... priority (a number from 0 to 9)\n    DATE     ... a date or date range formatted as YEAR-MONTH-DAY or \n                 YEAR-MONTH-DAY..YEAR-MONTH-DAY\n    TAGS     ... a list of tags formatted as :tag1 :tag2\n    CONTACTS ... a list of tags formatted as @contact1 @contact2\n    MESSAGE  ... some text\n\nExamples: \u003e\n\n    #A1 _           Important task\n    #A2 x           Less important task (done)\n    #A2 90%         Less important task (mostly completed)\n    #B2 2005-10-30  Less important task with deadline\n    #B2 x2005-10-25 Less important task (completed)\n    #X2 2005-10-25  Task (completed)\n    #A2 2005-10-25..2005-11-25 Task with date range\n    #A2 2005-10-25 :garden Task with a tag\n    #A2 2005-10-25 :garden @Anne Task with a tag \u0026 contact\n\nYou can switch category, priority, and date: \u003e\n\n    #1A _           Important task\n    #2A x           Less important task (done)\n\n    #2005-10-30  2A Important task\n    #2005-11-11  1A Most important task\n    #x2005-10-30 3A Less important task (done)\n\n\n                                                    *viki-tables*\nTables~\n|| Head || Category ||\n|  Row  |  Value     |\n#CAPTION: This Table\n#label\n\nNOTE: Rows can span more than one line by putting a backslash ('\\') at the end \nof the line.\n\n\n                                                    *viki-symbols*\nSymbols~\n\u003c-, -\u003e, \u003c=, =\u003e, \u003c~, ~\u003e, \u003c-\u003e, \u003c=\u003e, \u003c~\u003e, !=, ~~, ..., --, ==\n\n\n                                                    *viki-markers*\nMarkers~\n+++, ###, ???, !!!\n\n\n                                                    *viki-strings*\nStrings~\n\"Text in \\\"quotes\\\"\"\n\nNOTE: See also |g:vikiMarkupEndsWithNewline|.\n\n\n                                                    *viki-textstyles*\nTextstyles~\n\n    __emphasized__, ''typewriter''\n\n\u003c   NOTE: There must not be a whitespace after the opening mark.\n\n    NOTE: For the word styles, there must be a non-word character (|/\\W|) \n    before the opening mark, i.e. a__b__c will be highlighted as normal text -- \n    it won't be highlighted. You could use the continuous markup for putting \n    the \"b\" in the example in italic.\n\n    NOTE: If |g:vikiTypewriterFont| is defined, this font will be used to \n    highlight text in typewriter style.\n\n    NOTE: See also |g:vikiMarkupEndsWithNewline|.\n\n\n                                                    *viki-comments*\nComments (whole lines)~\n%Comment\n\n\n                                                    *viki-regions*\nRegions~\n#Type [OPTIONS] \u003c\u003cEndOfRegion\nText ...\nEndOfRegion\n\nFor a list of supported regions see the |deplate| documentation.\n\n\n                                                    *viki-sharp-commands*\nOne-line commands~\n#COMMAND [OPTIONS]: ARGS\n\nOPTIONS have the form\n    - OPTION! ... set option to true\n    - OPTION=VALUE\n    - the characters \"!\" and \"=\" have to be escaped with a backslash\n\nCommands are applied only if the option \"fmt\" isn't given or if it matches the \nformatter regexp.\n\nShort list of available COMMANDS \"COMMAND\" (see also |deplate|):\n    - INC: INCLUDED FILENAME\n    - FIG [here!|top!|bottom!]: FILENAME\n    - CAP [above!|below!]: TEXT\n    - TITLE: TEXT\n    - AUTHOR: TEXT\n    - AUTHORNOTE: TEXT\n    - DATE: [TEXT|now|today]\n    - MAKETITLE [page!]\n    - LIST [page!]: [contents|tables|figures|index]\n    - PAGE\n\nIt depends on the formatter if these options have any effect.\n    - DOC ... document options\n    - OPT ... element options (applies to the previous element)\n\n\n                                                   *viki-macros*\nCurly braces~\nCurly braces should be escaped with a backslash (i.e., \\{ and \\}), as they \nusually mark macros: \u003e\n\n    {MACRO [OPTIONS]: ARGS...}\n\u003c\nShort list of available macros (see also |deplate|):\n    - {fn: ID}\n        - inserts a footnote as defined by in a Fn or Footnote region. \n        - output depends on the formatter\n        - Example: \u003e\n            Foo bar{fn: x} foo bar.\n\n            #Fn: x \u003c\u003cEOF\n                Bla bla.\n            EOF\n\u003c   - {cite: ID}\n        - output depends on the formatter\n    - {date: [format string|now|today]}\n        - the format string uses ruby's strftime method.\n    - {ins: LITERALLY INSERTED TEXT}\n        - Example: {ins fmt=html: \u0026lt;\u0026lt;}\n    - {doc: ID}\n        - access document options, e.g. {opt: author}\n    - {opt: ID}\n        - access element (paragraph, table etc.) options\n    - {ruby [alt=ALTERNATIVE OUTPUT]: RUBY CODE}\n        - if the evaluation of ruby code is disabled, the text given in the \n          alt option or an empty string will be inserted\n        - a sequence of ruby commands must be separated by semicolons\n\nCommon options:\n    - fmt=FORMATTER, nofmt=UNMATCHED FORMATTER\n\nNOTE: Macros cannot cross paragraph borders, i.e., they must not contain empty \nlines. Using newlines in a macro argument is useless, as the macro text will \nbe collapsed to one single line.\n\n\n                                                    *viki-backslash*\nBackslashes~\n    - A backslash at the end of the line should make a pattern include the \n      next line.\n    - In general, a backslash should be an escape character that prevents the \n      vikification of the following character.\n    - A backslash should itself be escaped by a backslash.\n\n\\_nounderline_, \\NoVikiName\n\n\n-----------------------------------------------------------------------\n                                                    *viki-key-bindings*\nDefault Key Binding~\n\n\u003cc-cr\u003e ... |viki#MaybeFollowLink()|: Usually only works when the cursor is over \na wiki syntax group -- if the second argument is 1 it tries to interpret the \ntext under the cursor as a wiki name anyway. (NOTE: If you're working on a \nterminal, \u003cc-cr\u003e most likely won't work. Use \u003cLocalLeader\u003evf instead.)\n\n\u003cLocalLeader\u003evf ... Open in window\n\u003cLocalLeader\u003evt ... Open in a new tab\n\u003cLocalLeader\u003evs ... Open in a new window\n\u003cLocalLeader\u003evv ... Open in a new window but split vertically\n    - see also |vikiSplit|\n\n\u003cLocalLeader\u003ev1 - \u003cLocalLeader\u003ev4 ... Open in window 1-4\n\n\u003cLocalLeader\u003eve ... |:VikiEdit| edit a viki page\n\n\u003cLocalLeader\u003evb \u003cLocalLeader\u003ev\u003cleft\u003e ... |viki#GoBack()|\n\u003cLocalLeader\u003ev\u003cbs\u003e \u003cLocalLeader\u003ev\u003cup\u003e ... |viki#GoParent()|\n\n\u003cLocalLeader\u003evq ... |:VikiQuote| mark selected text a quoted viki name\n\n\u003cLocalLeader\u003evd ... |:VikiMarkInexistent| in the whole document\n\u003cLocalLeader\u003evp ... |:VikiMarkInexistent| in the current paragraph\n\nIf |g:vikiMapMouse| is true then these mappings are active, too:\n\u003cm-leftmouse\u003e ... |viki#MaybeFollowLink()|\n\u003cm-leftmouse\u003e ... |viki#GoBack()| (always jumps to the last known entry point)\n\n\nAdditional Key Binding In Full Viki Mode\n\n\u003cc-tab\u003e, \u003cLocalLeader\u003evn   ... |:VikiFindNext|\n\u003cs-c-tab\u003e, \u003cLocalLeader\u003evN ... |:VikiFindPrev|\n                                                    *viki-highlight*\nHighlighting~\n\nViki.vim defines several new highlight groups. Precaution is taken to select \ndifferent colours depending on the background, but colour schemes are ignored. \nThe colors are tested using color scheme with a white background.\n\n    - vikiHyperLink\n    - vikiHeading\n    - vikiList\n    - vikiTableHead\n    - vikiTableRow\n    - vikiSymbols\n    - vikiMarkers\n    - vikiAnchor\n    - vikiString\n    - vikiBold\n    - vikiItalic\n    - vikiUnderline\n    - vikiTypewriter\n    - vikiCommand\n\n\n-----------------------------------------------------------------------\nGenerated regions~\n\nViki provides the following region types with programmatically generated \ncontents:\n\n    #Files ... List files matching a pattern\n    #Grep  ... List lines in files matching a pattern\n\nDefault Key Binding~\n\n    \u003cLocalLeader\u003evu ... Update the current #Files or #Grep region\n    \u003cLocalLeader\u003evU ... Update all #Files or #Grep regions\n\n                                                    *viki-files*\nFiles Region~\n\nViki knows a special #Files region that allows users to quickly generate \ncatalogs for viki files in a directory.\n\nExample: \u003e\n    #Files glob=lib/** types=f \u003c\u003c\n    [[example1.rb]!]     This is an example file\n    [[example2.rb]!]     This is another example\n    [[lib/example1.rb]!]\n    [[lib/example2.rb]!]\n\n    #Files glob=*.viki types=f \u003c\u003c\n    [[example.viki]!] The manual\n\nMultiple patterns are separated by a pipe (\"|\") character. The filenames \nare stored as extended viki names. Each line can take a comment that is \nrestored upon automatic update.\n\nFor a list of available arguments, see |viki#DirListing()|.\n\nThe following arguments can be used to deal with #Files regions. An \nadditional \u003cbang\u003e (\"!\") makes these command work on just files in the \nsame directory or a subdirectory as the file on the current line.\n\nDefault Key Binding~\n\n    \u003cLocalLeader\u003evx ... :VikiFilesExec\n    \u003cLocalLeader\u003evX ... :VikiFilesExec!\n\nExample: \u003e\n    Use \":VikiFilesExec! e\" (\u003cLocalLeader\u003evXe\u003ccr\u003e) to edit all the files in \n    the same directory or a subdirectory of the current file under the cursor.\n\n                                                    *viki-grep*\nGrep Region~\n\n#Grep regions can be used to list files matching a pattern.\n\nExample: \u003e\n#Grep glob=*.viki rx=test \u003c\u003c\n  [[/home/user/Wiki/Tester.viki#l=53][Tester.viki]] :: How to test!\n  [[/home/user/Wiki/Tests.viki#l=12][Tests.viki]] :: This is another test.\n\nThe #Grep region can e.g. be used get a list of back-references.\n\n\n-----------------------------------------------------------------------\n                                                    *viki-compile*\nViki Compile~\n\nThe compile plugin simply defines |deplate| as the current file's |makeprg|. \nIt also provides basic support for |deplate|'s error messages.\n\nThe compiler plugin provides a command for setting compiler options:\n\n    - DeplateSetCompiler [FLAGS]\n\nE.g. when using the lvimrc plugin, you could put something like this into the \ncurrent directorie's .lvimrc-file for putting the output into a dedicated \ndirectory: \u003e\n\n    DeplateSetCompiler -d ../html\n\n\n-----------------------------------------------------------------------\n                                                    *viki-latex* *vikiLatex*\nViki LaTeX~\n\nThe archiv includes an experimental add-on for using LaTeX commands as simple \nwiki names. Among the commands that are to some degree used as hyperlinks or \nanchors:\n\n    - \\viki[anchor]{name}\n \t- \\input\n \t- \\include\n \t- \\usepackage\n \t- \\psfig\n \t- \\includegraphics\n    - \\bibliography\n    - \\label (as anchors)\n    - \\ref (in the current file only)\n\nLimitations: There must not be spaces between between the leading backslash, \nthe command name, and its arguments. A command must not span several lines.\n\nSimple viki names (including |interviki|, CamelCase, and quoted viki names) \nare disabled -- as they wouldn't be of much use in a LaTeX document anyway. \n(Well, as a matter of fact they aren't disabled but LaTeX commands are defined \nas simple viki names.)\n\nThis plugin also highlights a hypothetical \\viki[anchor]{name} command, which\ncould be defined as: \\newcommand{\\viki}[2][]{#2}\n\nIf b:vikiFamily is set to \"latex\", then calling |:VikiMinorMode| will use \nthese commands instead of normal viki names. This change can be made permanent \nby adding this line to your |vimrc| file: \u003e\n\n    au FileType tex let b:vikiFamily=\"latex\"\n\u003c\nLaTeX support is switched on with the command |:VikiMinorModeLaTeX|. This \ncommand sets b:vikiFamily to \"latex\" and calls |:VikiMinorMode|. This\ncommand relies on the external kpsewhich tool, which has to be installed on\nyour computer.\n\n                                                    *vikiLatex-UserCommands*\nYou can extend the list of supported commands by listing your commands in\ng:vikiLaTeXUserCommands and by defining a corresponding function called \nVikiLaTeX_{YourCommand}(args, opts). VikiLaTeX assumes that a command looks \nlike this: \\latexcommand[opts]{args}. This function should return a string \nthat defines the variable dest (=destination file) as well as, optionally, \nanchor and name -- see |:return| for an explanation of how this works. A \nsimple minded example: \u003e\n\n    let g:vikiLaTeXUserCommands = 'other\\|self'\n\n    fun! VikiLaTeX_other(args, opts)\n        return 'let dest=\"'.a:args.'.tex\" | let anchor=\"'.a:opts.'\"'\n    endfun\n\n    fun! VikiLaTeX_self(args, opts)\n        return 'let dest=\"'.g:vikiSelfRef.'\" | let anchor=\"'.a:opts.'\"'\n    endfun\n\n\n-----------------------------------------------------------------------\n                                                    *viki-anyword*\nViki Any Word~\n\nIf b:vikiFamily or g:vikiFamily is set to \"anyword\", then any word becomes a \npotential viki link.\n\nThis feature conflicts with the highlighting of links to inexistent files. \nLinks to inexistent files are displayed as normal text.\n\n\n-----------------------------------------------------------------------\n                                                    *viki-bibtex*\nViki BibTeX~\n\nThe bibtex ftplugin defines record labels as anchors. Thus, if make an \n|interviki| definition point to your bib files you can refer to bib entries as \nviki names. Example: \u003e\n\n    call VikiDefine('BIB', $HOME .\"/local/share/texmf/bibtex/bib/tml\", \".bib\")\n\n    Then, activating the following viki name\n    BIB::[-monos-]#rec02\n    would open the file monos.bib and search for the record rec02.\n\n\n-----------------------------------------------------------------------\n                                                    *viki-tags*\nCtags~\n\nFor ctags support (e.g. in conjunction with taglist) add this to your .ctags \nfile (this assumes that *.viki files are in viki mode; you have to adjust the \nfile suffix if you choose a different suffix): \u003e\n\n    --langdef=deplate\n    --langmap=deplate:.viki\n    --regex-deplate=/^(\\*+ .+)/\\1/s,structure/\n    --regex-deplate=/^(#[a-z][a-z0-9]+)/\\1/s,structure/\n    --regex-deplate=/\\[\\[[^\\]]+\\]\\[([^\\]]+)\\]\\]/\\1/r,reference/\n    --regex-deplate=/\\[\\[([^\\]]+)\\]\\]/\\1/r,reference/\n    --regex-deplate=/([A-Z][a-z]+([A-Z][a-z]+)+)/\\1/r,reference/\n    --regex-deplate=/([a-z]+:\\/\\/[A-Za-z0-9.:%?=\u0026_~@\\/|-]+)/\\1/u,url/\n\nFor use with taglist, the variable \"tlist_viki_settings\" is already set for \nyou.\n\n\n-----------------------------------------------------------------------\n                                                    *deplate*\nDeplate~\n\ndeplate is a ruby script/library that converts viki markup to:\n\n    - html\n    - htmlslides\n    - latex\n    - docbook\n\nDownload the latest version from http://sourceforge.net/projects/deplate/.\n\ndeplate's markup is not 100% identical with the standard viki mode's one.  \nE.g., it doesn't support underline, italic markup. deplate sometimes failes \nwith cryptic error messages and it doesn't always give the results one would \nexpect. On the other hand, it features inclusion of LaTeX snippets, footnotes, \nreferences, an autogenerated index etc.\n\n\n-----------------------------------------------------------------------\n\n\nDependencies:\n  setsyntax :: http://github.com/tomtom/setsyntax_vim\n  tlib (\u003e= 1.16) :: http://github.com/tomtom/tlib_vim\n\nLicense: GPLv3 or later\nInstall: See http://github.com/tomtom/vimtlib/blob/master/INSTALL.TXT\nSee http://github.com/tomtom for related plugins.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomtom%2Fviki_vim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomtom%2Fviki_vim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomtom%2Fviki_vim/lists"}