Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Help:Text editor support
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Wikipedia how-to|WP:TEXTES}} [[Wikipedia:How to edit a page|Editing Wikipedia articles]] using a full-fledged [[text editor]] is often more convenient than a web browser's standard text area. Text editors provide facilities that are very useful for writing and editing articles (especially ''long'' articles), such as [[spell checker|spell checking]], search and replace, [[Macro (computer science)|macros]], [[syntax highlighting]], and alphabetic sorting. They also provide a quick and easy way of saving a local backup copy of an article, possibly for future offline editing. [[#wikEd|wikEd]] for Wikipedia (Preferences > Gadgets > Editing) supports some of these features, and some browsers support spell-checking. In any case, you can select Wikipedia [[VisualEditor]] for a visual editing, [[wikipedia:VisualEditor|in your user preferences]]. This page contains pointers for adapting several external and in-browser text editors to editing Wikipedia articles. ==How to open articles in your text editor== ===Manual method=== A "manual" way of editing in an external [[GUI]] text editor is to use [[Cut,_copy_and_paste#Copy_and_paste|copy and paste]]. Some text editors do not support, or may not be set up to support, various [[#Dealing_with_special_characters|special characters]]—Chinese characters, non-Latin letters, mathematical symbols, and so on—they are typically replaced with a character that renders as a square. Check in a preview that your editor has not mangled any special characters before saving the edited page. A word processor may also be used, and may be less likely to mishandle special characters.<!--my personal experience: Notepad++ for Windows has mangled characters, LibreOffice Writer hasn't, for the same page. There is no problem with file format as we are not saving the word processor file. pol098--> # Open the Wikipedia edit window for the article or section as normally in browser (click the Edit tab of a page or section, or use the [[Keyboard_shortcuts|keyboard shortcut]] {{key press|Shift|Alt|E}}) # Select the entire content of the browser text area (as with {{key press|Ctrl|A}} or {{key press|Cmd|A}}), copy it (to the clipboard; {{key press|Ctrl|C}}), then paste ({{key press|Ctrl|V}}) it into an external editor window # Perform the editing and copy the text editor contents # Select the browser text area contents so that they are overwritten, then paste the edited text back # Preview and check the edited page before saving it. For some browser/editor software combinations, there are more efficient methods: === GhostText === [https://ghosttext.fregante.com/ GhostText] opens the text box from your browser in a supported external editor, and keeps the browser and external text in sync during editing. Currently supported browsers * Chrome * Firefox * Safari * Edge * Opera Currently supported editors * Sublime Text * VS Code * Atom * Vim * Neovim Note if you also use the VisualEditor, it is recommended to change GhostText's default keyboard shortcut (Ctrl/Cmd+Shift+K) since this clashes with the VisualEditor shortcut to add a citation. === Firefox === {{Update|section|reason=several of these add-ons are incompatible with recent (post-[[Quantum (Mozilla)|Quantum]]) versions of Firefox|date=February 2019}} If you are using the [[Mozilla]] web browser, it is possible to configure an external editor for editing text areas, including the Wikipedia edit area. This then avoids the need to copy and paste the article text between browser and editor. Several solutions exist: * '''[https://addons.mozilla.org/en-US/firefox/addon/its-all-text/?src=ss It's All Text!]''', supports nonblocking editing and UTF-8 encoding. '''Note:''' If you ''also'' want ''syntax highlighting'' in your edit box, this addon may be incompatible with the highlighting in {{myprefs|Beta features}}, but works with the highlighting in {{myprefs|Gadgets}}. (See below for highlighting ''within Vim''.) '''Note: Stopped working in Firefox 57+.''' * '''[http://www.vimperator.org/vimperator Vimperator]''' and '''[http://dactyl.sourceforge.net/pentadactyl/ Pentadactyl]''' have a shortcut in Insert mode that allows external text editing (the default is '''[[Control key|Ctrl]]+i'''). '''Note: Stopped working in Firefox 57+.''' * '''GhostText''', [[Help:Text editor support#GhostText|see above]] * '''[https://github.com/jlebon/textern textern]''' Another Firefox-Quantum-compatible replacement for ''It's all Text''. In addition to the [https://addons.mozilla.org/de/firefox/addon/textern/ addon], it requires installing a server separately. Only supports [[Linux]]. *'''MozEx.''' The [http://mozex.mozdev.org/ official package]{{dead}} does not support editing [[UTF-8]]-encoded documents and does not install properly in [[Mozilla Firefox]]. However, the [http://mozex.mozdev.org/development.html development version]{{dead}} does not have these problems. A quick [[Wikipedia:MozEx tutorial|MozEx tutorial]] is available. *'''[http://dafizilla.sourceforge.net/viewsourcewith/ ViewSourceWith]''' provides similar functionality vis-à-vis the text editing. * '''[http://lib.custis.ru/index.php/TextArea_Sputnik/en TextArea Sputnik]''', supports nonblocking editing and different encodings in an external editor. (You may see question marks in an edit textbox unrelated to the content you are editing (for example, the [[Unicode]] [[grapheme]] and other [[glyphs]] at the bottom), but your edits won't destroy the characters.) * '''[https://addons.mozilla.org/en-US/firefox/addon/withexeditor/ withExEditor]''' supports nonblocking editing in an external editor. As of this writing, it is common for other external editor plugins (It's All Text, ViewSourceWith) to not support multi-process (aka e10s) Firefox, whereas withExEditor does. With all these solutions, once you are done editing, you need to save in your editor, then click into the browser's text area and it is updated. You can then hit Preview. If you want to continue editing after the preview, hit Back in your browser, then work in your editor. Alternatively, you can hit Preview before you start editing for the first time, then work in your editor, save, preview, edit some more, save, preview etc., without the need for hitting Back in between. Certain Firefox forks such as [[Pale Moon (web browser)|Pale Moon]] and [[Waterfox]] support legacy add-ons. Starting with Firefox 57, all add-ons must be based on the WebExtensions API in order to run. ====Use It's All Text! to invoke an external editor==== {{outdated}} When the '''It's All Text!''' Firefox extension has been installed, a little blue edit button appears in the bottom right corner of the text area. Just click the button to open the contents of the text area in your editor. However, before you can use ''It's All Text!'', you need to specify the path to your editor in the Preferences dialog box. The Preferences dialog opens automatically when you use ''It's All Text!'' for the first time, but you can open it manually as follows: Right click in the text area to open context menu; select "It's All Text" → "Preferences". If your editor requires some other command line options in addition to the filename, use a shell script (.sh file in Linux and macOS, or .bat in Windows) to call your editor, and specify path to that script instead of calling your editor directly. In addition, you can add filename extension for wiki file type in Preferences dialog, in case your editor uses file type specific configuration. Once the above is done, you can edit any text area in your editor by clicking at the Edit button at the lower-right corner of the text area. Alternately, you can right-click on the text area. From the "It's All Text" menu, you can choose which filename extension to use for editing. Next time you use the blue edit button, the extension is the one you used last time. After editing, just save the file from your editor. The contents are automatically copied to the text area in Firefox. To indicate this, the text area turns yellow briefly. A temporary file is created for editing and is removed at the end. So if you want to preserve a text file for later editing, you can change the file name and/or save the file to another directory. =====Using Vim or another console editor===== Some macros may work in [[Vim_(text_editor)#Interface|Vim]], but not in [[Vim_(text_editor)#Interface|gVim]] for some reason (e.g., the macro to format text paragraphs). Or you just want to use Vim within an X terminal as you used to do, instead of using gVim. To invoke Vim within an X terminal window, you can write a shell script (see below) to invoke an X terminal and to run the <code>vim</code> command within that X terminal, or generally your preferred editor. Assume that the filename of this script is <code>wiki.edit.vim</code>, and that you put the script in the directory <code>/home_dir/bin/</code> so that the path of the script would be <code>/home_dir/bin/wiki.edit.vim</code> Put the above path in the Preferences box (instead of <code>/usr/bin/gvim</code>) of It's All Text. It should work. Note that <code>/home_dir/</code> is the complete path to your home directory from the root (<code>/</code>) directory; don't use <code>~/</code> (tilde) instead of <code>/home_dir/</code>; it won't work. The listing of the script <code>wiki.edit.vim</code> is given below: <syntaxhighlight lang="bash"> #!/bin/sh exec xterm -e ${VISUAL:=vim} "$@" </syntaxhighlight> Don't forget to make the file executable with <code>$ chmod +x wiki.edit.vim</code> =====Using Vim in macOS===== To get It's All Text to work nicely with Vim in the Mac, you need to install [http://code.google.com/p/macvim/ Macvim]. When MacVim is installed, a script called mvim is also added. You need to tell It's All Text to use this script and not the MacVim.app file. A good place to keep it is in the same folder your MacVim.app file is (Applications by default). === Lynx === [[Lynx (web browser)|Lynx]] allows editing text area content with an external editor. When the cursor is in the text area, one can type {{key press|Ctrl|X}} and {{key press|E}} — or {{key press|Ctrl|E}} and {{key press|E}} to invoke a text editor. In addition, Lynx accepts a user-definable key-binding (normally not bound) to invoke the external editor. Some packagers may assign a user-definable binding in Lynx's configuration file. ==== Do not wrap ==== After saving the file in an external editor, quitting it and returning to Lynx, answer "no" to the Lynx question "Wrap lines to fit displayed area? (n)" by pressing the {{key press|N}} key; answering "yes" will otherwise have Lynx wrap lines with normal carriage returns, which will break the document structure. Using article preview is strongly encouraged. ==== Line and paragraph breaking ==== Lynx built-in hard limits line length. In version 2.8.3, find this line in <code>LYGlobalDefs.h</code>: : #define MAX_LINE 1024 This can be modified to a longer length (e.g. 8192) and recompiled. If you are unable to recompile Lynx, the following are workaround suggestions. Lynx is prone to breaking lines longer than 1023 characters: When this happens, a large paragraph with lots of reference data may easily become broken, and articles saved like that may take at best a slightly inconsistent appearance; at worst, complex articles might lose their structure. The character length limit is dependent on maximum buffer length set for a line, the default size of which is 1023 characters; this behaviour can be observed when moving the cursor to a text area line exceeding the limit, whereby Lynx will issue an alert: "Form field value exceeds buffer length! Trim the tail." Even if a paragraph of article text on its face is not very long, it may still contain multiple references along with extensive amounts of related code and data for them, which makes an actual paragraph in article code much longer, and in some cases, well beyond the length of the 1023-character limit. When a line of text exceeds that limit and a text file is sent back to the Lynx textarea, Lynx will yield an error message: "Alert! Very long lines have been wrapped!". In such a case it's best not to save article content before such issues have been mitigated. Therefore, article editors should be careful to follow the character length of longer lines, and where (usually) possible, insert strategic linebreaks with carriage returns (not HTML <CODE><BR></CODE> tags): Advanced text editors, like vi or VIM, do typically show cursor position within a line in their status areas, and thus allow to gauge line length when the cursor is at the end of a line. In a longer paragraph of article code containing references, single linebreaks can be inserted within reference code, so long as parameter values themselves are not broken. *Some Wikipedia editors hold the practice of entering a linebreak before every reference parameter (as can be seen in examples of [[Wikipedia:Citation templates|Citation templates]]; Whether this is a good practice within text, is subject to debate); *Other editors choose not to interfere with a paragraph's visual consistency and enter a linebreak before a very long URL, one that is longer than the visual line in a terminal window, which is usually the length of 80 characters. If the situation in text necessitates, a linebreak can also be inserted before other parameters. Because URLs are typically long, placing these on a new line is handy for comparing article editions, as some textually non-breaking code prepended and/or appended to a URL may lie outside a comparison column's viewport, and this may hinder in discovery of changes made to an article. If a paragraph line is near the limit or exceeds it by just a few characters, then article editors can choose to optimize code or text: *By removing superfluous spaces: **the best practice with extensive template data (such as references) is to only separate the last character of a previous parameter value and the marker pipe of next parameter's name; **In plain text after a sentence-ending period, some article writers add two spaces instead of one, but browsers ignore this. *By refactoring template data into a shorter format: <CODE>date=26 February 2011</CODE> can be replaced with <CODE>date=2011-02-26</CODE> — Users with their own date preferences should then see dates in their favoured format when logged in; *By rewording a line without affecting the nature of the text within. *The above applies, even if a paragraph line does not contain breakable code. If a line paragraph still exceeds the 1023-character limit, but does not contain any reference code (or any other wikicode that would work with linebreaks), then users should consider logically breaking that paragraph into two for better legibility. ==== Encoding ==== If accented and international characters fail to show properly, use a terminal program that has support for Unicode (such as [[xterm|uxterm]]) and set the assumed and display character sets to UTF-8 or greater in Lynx options. Nevertheless, article content with any special characters — including non-standard Latin, Cyrillic, or other non-Latin languages — are seen in Lynx textareas in the UTF-8 <CODE>&#xXX;</CODE> format, which in that form are sent to text editors and then back. Beware that these UTF-8 glyph representations are not treated as one character, but as six (ö = <CODE>&#xF6;</CODE>), and these add to the 1023-character line limit. Such behaviour is a hindrance to editing non-Latin texts, and even Latin texts that are written in languages that may feature extensive amounts of accented characters.<BR> See [[#Dealing with special characters]] for more. ==== Lynx in Windows ==== In addition to above instructions, there are intricacies specific to Windows. If you want to use Wikimedia's secure servers, get a version of Lynx that supports SSL. To find out if yours already does, go to Options and see if the User-Agent header contains <CODE>OpenSSL</CODE>. The assumed character set should be <CODE>utf-8</CODE>, as this is also the default charset used by Wikipedia. The display character set can be different, such as <CODE>cp850</CODE>, but editable text will always be in <CODE>utf-8</CODE>. In Windows, the display font should be Lucida Console instead of 'Raster fonts', as Lucida Console supports a greater amount of characters. The display font can be changed in window properties: In Windows XP, click the Lynx window icon (to the left of the title), choose Properties, and switch to the Font tab, which typically lists only Raster fonts and Lucida Console. ===== Lynx configuration files ===== Configuration files for Lynx are simple text files and can be edited from any text editor that supports Unix linebreaks. In Windows 9x, the built-in text editor for this is [[WordPad]], because [[Windows Notepad|Notepad]] in these old Windows versions does not support the Unix Line Feed. '''<CODE>lynx.cfg</CODE>''' is the config file for Lynx; the global config file in Windows is always located in the same folder as the Lynx executable, wherever it has been installed to. A typical location is <CODE>C:\Program Files\Lynx</CODE>. If Lynx is installed in that folder, then Windows Vista and newer usually require administrator access to edit the file (via User Account Control). '''<CODE>lynx.rc</CODE>''' is a per-user Lynx User Defaults File saved from the Options page. Settings in it take priority over the global config file. In Windows Vista, the per-user User Defaults file can be in <CODE>C:\Users\''Username''\AppData\Local\temp\lynx.rc</CODE>. If the file is in the <CODE>temp</CODE> directory, care is advised when using automated cleanup tools like Disk Cleanup. Lynx Option file syntax is different between global (lynx.cfg) and per-user (lynx.rc) configuration files. <CODE>lynx.cfg</CODE> is extensive; very often, almost all options are placed into it, along with explanatory comments for each option. If it's not so, there's an official online version at [http://lynx.isc.org/lynx2.8.7/lynx2-8-7/lynx.cfg lynx.isc.org/lynx2.8.7/lynx2-8-7/lynx.cfg] — Keep in mind that if your Lynx version is different, change the numbers in the URL accordingly, as some options may be version-specific. The best way to find an option is by using the text editor's find feature. When not in active use, an option is commented out with a hash <CODE>#</CODE> and its default setting is on; To use an option, delete the hash character before it. The config file may occasionally not contain a specific option, but it can be added by the user. ===== Defaults to reconsider ===== The following options are often found as defaults in Lynx binaries compiled for Windows and might not meet formatting conventions used in Wikipedia. These options can be edited from <CODE>lynx.cfg</CODE> and are usually not specified in the Options page. Before editing, back up the file and rename it to <CODE>lynx.cfg.old</CODE>, for example. ====== Collapsed <NOWIKI><BR></NOWIKI> tags ====== The <CODE>COLLAPSE_BR_TAGS:</CODE> option should be set to <CODE>FALSE</CODE>, as in the example below: COLLAPSE_BR_TAGS:FALSE The reason is that some editors intentionally use more than one <CODE><NOWIKI><BR></NOWIKI></CODE> tag, especially in locations where conventional paragraph breaks are not allowed. ====== Justified text ====== Graphical browsers do not show this, since justification is not used. For this, set JUSTIFY:FALSE ====== Numbered links ====== As Wikipedia articles very often feature linked content in tables, the numbers in brackets before or next to links may be distracting. Set these following options: DEFAULT_KEYPAD_MODE:LINKS_ARE_NOT_NUMBERED NUMBER_LINKS_ON_LEFT:FALSE ====== Editing ====== The typical key combination to invoke an out-of-Lynx editor in Windows is Ctrl+x+e and not Ctrl+E+e like in Unices and elsewhere; this can be changed in the config file. Both an internal and external editor can be used, according to taste and preferences. Avoid Windows Notepad for reasons stated above. And only since Windows XP does WordPad have full Unicode support (with some reservations).<br> An example with Vim, configured to use the mediawiki syntax: SYSTEM_EDITOR:C:\Progra~1\Vim\vim73\vim.exe -c "setf mediawiki" Note the double quotes ^ ====== Colour issues ====== When using an in-window editor like Vim and after exiting back into Lynx, any colour theme Lynx uses is rendered inoperable (links and buttons not highlighted anymore), so the best practice is to never show colors in Options (in section Appearance), and save the settings. ===Other browsers=== ==== Conkeror ==== [[Conkeror]] can edit text boxes using an external editor by pressing {{key press|Ctrl|i}} on a focused text box. Details on setting up this feature can be found on the [http://conkeror.org/ExternalEditing External Editing] page from the Conkeror website. ==== dwb ==== [https://bitbucket.org/portix/dwb dwb] allows editing a text area with an external editor by typing {{key press|Ctrl|e}} when the cursor is in the text area. This key-binding can be changed on the <code>dwb:keys</code> page under the <code>open_editor</code> option, and the editor is defined on the <code>dwb:settings</code> page. ==== elinks ==== The text-only browser [[elinks]] also provides a function to edit text areas. The key combination {{key press|Ctrl|T}} calls an external editor, e.g. [[Vim (text editor)|Vim]]. This allows also to use syntax highlighting, edit functions, spelling corrections and saving local copies. ==== Luakit ==== [https://luakit.github.io/ Luakit] is able to edit text boxes using an external editor by pressing {{key press|Ctrl|e}} on the focused text box. <code>editor</code> and <code>open_editor</code> Lua modules powers the external editor functionality. User configuration is done by editing a <code>userconf.lua</code> file and key bindings are changed with the <code>add_binds</code> and <code>remove_binds</code> functions. ==== Nyxt ==== [https://nyxt.atlas.engineer/ Nyxt] is able to open an external editor on a current input field. The default keymap is <code>C-c '</code> when using CUA keybindings. The editor path can be changed by configuring the <code>external-editor-program</code> browser slot. The <code>edit-with-external-editor</code> command is used to open an editor. ==== qutebrowser ==== [[qutebrowser]] can open an external editor on a selected text area by typing {{key press|Ctrl|e}} or by using the <code>:open-editor</code> command. Settings can be changed using the <code>:set</code> command, with the editor defined in the <code>editor.command</code> section. The key-binding can be changed by using <code>config.bind()</code> in <code>config.py</code> or with the <code>:bind</code> command. ==== Vieb ==== [https://vieb.dev/ Vieb] can open an external editor on a focused input field by typing {{key press|Ctrl|i}} while in Insert mode. To change the mapping for the action, use the <code>imap</code> command on the <code>action.editWithVim</code> action. To change the editor, use the <code>set vimcommand=</code> command. ==== vimb ==== [https://fanglingsu.github.io/vimb/ vimb] is able to open an external editor on a hinted form area by typing <code>;e</code> or by pressing {{key press|Ctrl|t}} on a form field while in Input Mode. The editor is defined by changing the <code>:set editor-command</code> setting and changing the key mapping is done by using <code>:map</code> to change mappings. Note that there are various key mapping modes for mapping commands. ==== vimprobable ==== [https://sourceforge.net/p/vimprobable/wiki/Home/ vimprobable] can open text boxes in an external editor by typing {{key press|Ctrl|t}} while in Insert Mode. User configuration is done by editing a <code>vimprobablerc</code> file. To change the key binding, use the <code>map</code> command on the <code>openeditor</code> function. To define a different editor, use the <code>handler</code> command to change the <code>vimprobableedit</code> URI schema. ==== w3m ==== [[w3m]] opens an external editor for text areas by default. To change the external editor, press <code>o</code> to open the Options screen and change the Editor field. If the Editor field is left blank, w3m will use the <code>$EDITOR</code> environment variable. ==== webmacs ==== [https://github.com/parkouss/webmacs/ webmacs] can edit text fields using an external editor by pressing {{key press|Ctrl|x}} {{key press|e}} on a selected text field. Configuring the external editor is done by editing <code>__init__.py</code> found in the <code>~/.webmacs/init</code> directory and changing the <code>external-editor-command</code> variable. The <code>define_key()</code> and <code>undefine_key()</code> functions define and undefine a command to a keymap respectively. ==== xombrero ==== [[xombrero]] is able to edit a selected text element in an external editor by pressing {{key press|Ctrl|i}} while in Insert Mode or by entering the <code>:editelement</code> command. Settings can be changed by editing a <code>xombrero.conf</code> file. To change the key binding, create a <code>keybinding</code> entry for the <code>editelement</code> command. The editor is defined by creating an entry for the <code>external_editor</code> setting. ===Command-line tools=== Some [[command line interface|command line]] tools allow you to download articles, edit them using your favorite text editor, and upload the edited articles back into Wikipedia (or into any MediaWiki server). This bypasses the need for a web browser. These are (at least): * [http://search.cpan.org/~markj/WWW-Mediawiki-Client/bin/mvs mvs], a [[Perl]] program available from [[CPAN]]. [[Meta:WWW::Mediawiki::Client]] has more information. Unfortunately, mvs uses the name of the local file as the title of the page for the wiki remote server. If you need title pages in UTF-8 for Russian, Japanese or Arabic for example, you won't be able to upload such files. It seems that Mediawiki::Client as well as Perl libraries are not enough advanced in managing UTF-8 characters to be fully operational, even if your terminal and shell are correctly set for UTF-8. But see [http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=libwww-mediawiki-client-perl Debian bug reports]. * [[mw:Manual:Pywikibot]] is an extensive library and set of utilities for doing innumerable things with Wikipedia. It can also do something as simple as editing Wikipedia pages. It has some ways to avoid transmitting titles in UTF-8 wrongly, for example it allows to incorporate the name of the title ''within'' the file itself and to use another command line tool. The local filename could then be written in simple ASCII. Here is an example of a file, named locally 'foo.wiki', using pagefromfile.py (from [[mw:Manual:Pywikibot]]): <div style="height:auto; overflow:auto;"><pre> {{-start-}}'''Демография''', или наука о народонаселении, изучает численность, состав, размещение и движение населения. {{-stop-}} {{-start-}}'''人口学'''はヒトの人口の科学的研究をいい、主としてその大きさ、構造、そしてその成長発展を研究対象とする。 {{-stop-}} {{-start-}}'''Demography''' is the scientific study of human populations primarily with respect to their size, their structure and their development. {{-stop-}} {{-start-}}'''الديمغرافية''': علم يتناول دراسة المجتمعات البشرية من حيث حجومها و بناها و تطورها و خصائصها العامة و لا سيما من النواحي الكمية. {{-stop-}} </pre></div> In the above example, the command line to upload the four pages in one submission (the 'start' and 'stop' markups drive successively the four different pages Демография, 人口学, Demography and الديمغرافية) is: <pre> python pagefromfile.py -file:foo.wiki </pre> ===Former MediaWiki feature === For MediaWiki Version 1.5 through 1.21, the software allowed you to edit any resource using any external tool. See [[mw:Manual:External editors]] for details. This was removed in version 1.22. ==How to set up specific editors for Wikipedia editing== ===Atom=== [[Atom_(text_editor)|Atom]] requires at least one of the two packages to support syntax highlighting. Install packages using '''Command-,''' - '''Install''' and search for: * language-mediawiki * language-markdown ===Bluefish=== [[Bluefish_(software)|Bluefish]] supports Mediawiki syntax by default. If the auto-detection of the document language fails select the menu Document → Language → Mediawiki to enable syntax highlighting and auto completion. Specific Mediawiki syntax highlighting options can be configured in the Preferences panel under Language support → Mediawiki. ===GNU Emacs=== A few [[Emacs]] ''major mode'' implementations are available for editing MediaWiki syntax: * [http://github.com/hexmode/mediawiki-el mediawiki.el on github]. "… adds the ability to edit sites hosted on Mediawiki (including Wikipedia, of course)." * wikitext-mode.el, see [https://www.emacswiki.org/emacs/WikitextMode WikitextMode on EmacsWiki]. Derived from WikipediaMode v.0.3.3. Source is [https://www.emacswiki.org/emacs/wikitext-mode.el available] but documentation has [[link rot|link rotted]]. * [[Wikipedia:wikipedia-mode.el|wikipedia-mode.el]] (obsolete) is a simple major mode that mostly provides [[syntax highlighting]] for MediaWiki [[mark-up]]. * [http://www.gna.org/projects/wikipedia-el/ wikipedia.el] (obsolete) is a much more advanced major mode. It provides [[WYSIWYG]] editor for Wikipedia articles. Note, however, that it is developed using the current [[Concurrent Versions System|CVS]] version of GNU Emacs, may not be compatible with older versions, and has been effectively discontinued because it's not being actively maintained. Also, the mode was in the [[Software release life cycle#Alpha|alpha stage of development]] when it was orphaned, so use it at your own risk. ====Line formatting==== <code>longlines.el</code> is now part of the default GNU Emacs distribution. The following information is retained for reference. Wikipedia articles [[Wikipedia:don't use line breaks|don't use line breaks]]. Because of this, you may want to install one of the following: * [http://www.emacswiki.org/elisp/longlines.el longlines.el] — implements "word wrap" functionality for Emacs (<code>longlines.el</code> is now part of GNU Emacs). [[Wikipedia:Wikipedia-mode.el#Installing longlines-mode|Installation instructions for <code>longlines.el</code>]]. * [http://homepage1.nifty.com/bmonkey/emacs/elisp/screen-lines.el screen-lines.el] — redefines movement commands to operate in terms of screen lines as opposed to logical lines ====Access methods==== [http://www.emacswiki.org/emacs/WikipediaFs wikipediafs.el] can be used along with one of the aforementioned major modes, when using the virtual [http://wikipediafs.sourceforge.net/ Wikipedia filesystem]. ===jEdit=== For [[jEdit]] (Java-supporting OSes) there is a plugin available at http://www.djini.de/software/mwjed/ . Apart from providing syntax highlighting for Wikipedia markup, it can communicate directly with the Wikipedia website using the HttpClient component from the [[Jakarta Project]]. ''(Unavailable as of 2012-03-20.)'' ===Kate/KWrite=== [[Kate (text editor)|Kate]] (text editor on KDE framework) supports MediaWiki syntax highlighting by default. Choose <code>Tools → Highlighting → Markup → Mediawiki</code>. It recognizes everything in default markup: * HTML tags and entities * Wiki control characters * Templates * Variables * Keywords * Links * Section titles * Tables * {{tag|nowiki}} sections * Wiki tags Highlighting can be configured in <code>Settings → Configure Kate → Fonts & Colors → Highlighting Text Styles</code> and select "Markup/MediaWiki" in the drop-down menu. There is also a highlighting import tool: <code>Settings → Configure Kate → Fonts & Colors → Highlighting Text Styles → Highlight: → Import button</code>. Kate dynamically wraps lines. ===gedit=== [[gedit]] is a cross-platform, free software text editor that comes bundled with [[Ubuntu (operating system)|Ubuntu]] Linux by default. A [[GPL]]-licensed MediaWiki syntax highlight mode is shipped by default with ''gedit 3.10'' and newer. For older versions, you can download it at https://github.com/jpfleury/gedit-mediawiki/archive/master.zip, unzip, and copy the language file to the correct folder, or you can run the following in a GNU/Linux shell: * For gedit 2.x: <div style="margin-left:1em;"><syntaxhighlight lang="bash"> wget --output-document=master.zip https://github.com/jpfleury/gedit-mediawiki/archive/master.zip unzip master.zip mkdir -p ~/.local/share/gtksourceview-2.0/language-specs/ cp gedit-mediawiki-master/mediawiki.lang ~/.local/share/gtksourceview-2.0/language-specs/ </syntaxhighlight></div> * For gedit 3.x: <div style="margin-left:1em;"><syntaxhighlight lang="bash"> wget --output-document=master.zip https://github.com/jpfleury/gedit-mediawiki/archive/master.zip unzip master.zip mkdir -p ~/.local/share/gtksourceview-3.0/language-specs/ cp gedit-mediawiki-master/mediawiki.lang ~/.local/share/gtksourceview-3.0/language-specs/ </syntaxhighlight></div> To select the MediaWiki syntax highlight mode, go to the gedit menu ''View > Highlight Mode > Others'' and select ''MediaWiki''. ===NoteTab=== A [http://www.notetab.com/clipbooks/wiki.zip Clip Library plugin] for the [[NoteTab]] (Windows) text editor contains some functions to automate wiki markup. ===SubEthaEdit=== A [http://www.codingmonkeys.de/subethaedit/modes.html#Wikipedia.mode syntax highlighting mode] is available for [[SubEthaEdit]] (macOS) as well. After downloading the mode bundle, drop it in <code>/Library/Application Support/SubEthaEdit/Modes/</code> (system-wide) or <code>~/Library/Application Support/SubEthaEdit/Modes/</code> (user-specific). You may need to create the final two directories by hand. The mode will be automatically selected for files with a .wiki or .Wikipedia extension. ===TextMate=== A "MediaWiki" bundle is available in the [[TextMate]] for [[macOS]] bundle subversion repository. The bundle could ne enabled through the app preference pane GUI by checking a tickbox. To learn how to load this bundle manualy, see the [http://macromates.com/textmate/manual/bundles#getting_more_bundles TextMate manual page] about installing more bundles, or view this [[shell script]] that downloads and installs it. The bundle does syntax highlighting, code completion, and other actions. For [[Sublime Text]] 2 users, note that you may enable this bundle as well, since Sublime Text 2 supports TextMate bundles. ===Sublime Text=== [https://github.com/tosher/Mediawiker Mediawiker] is a Sublime Text package that enables editing MediaWiki pages. More information about the plugin and its configuration can be found in the [https://github.com/tosher/Mediawiker/wiki mediawiker wiki]. For Wikipedia it is necessary to set the ''https'' to true, inserting it in the package global or user configuration. An example configuration for English Wikipedia is the following: <syntaxhighlight lang="json"> "mediawiki_site": { "English wikipedia": { "host": "en.wikipedia.org", "path": "/w/", "pagepath": "/wiki/", "username": "your_username", "password": "your_password", "domain": "", "https": true, "force_login": true }, }, </syntaxhighlight> ===Vedit=== [http://koti.mbnet.fi/pkl/vedit/wiki/wiki_tools.htm Wiki Tools] for [[VEDIT]] contains syntax highlighting, keyboard configuration, User and Tools menus and several macros for inserting and editing wiki tags and for some more complex operations such as add/delete/copy/paste columns in a wiki table. Installation instructions included, as well as instructions for configuring ''It's All Text!'' for Vedit. ===Vim=== Please feel free to contribute improvements to the below scripts, or check the [https://www.vim.org/maillist.php#vim-dev vim-dev list] if anyone has requested the upload of mediawiki.vim Syntax & FileType plugin. If not, request it and/or post the reasons why they are not here. {{as of | 2017 | March}}, it is not in [https://github.com/vim/vim/tree/master/runtime/syntax the Vim source control tree's "syntax/" directory].) The below scripts are also posted in the [http://www.vim.org/scripts/script.php?script_id=1787 vim.org script collection], where they are occasionally updated (but not since 2011-11-17) with newer versions taken from community contributions on this site. Feel free to remind [[User:Mvc|mvc]] to upload a newer copy periodically if those become stale, since they were uploaded from his vim.org account. ====$HOME/.vim/syntax/mediawiki.vim==== To make [[Vim (text editor)|Vim]] support the MediaWiki markup used on Wikipedia (basically syntax highlighting), save the following lines to "<kbd>~/.vim/syntax/mediawiki.vim</kbd>" or "<kbd>vimfiles\syntax\mediawiki.vim</kbd>". If any of the directories above don't exist you may create them (the Unix/Linux command is <kbd>[[mkdir]]</kbd>). A raw mediawiki.vim file for easy downloading exists on GitHub:<br/>https://raw.githubusercontent.com/chikamichi/mediawiki.vim/master/syntax/mediawiki.vim When using Vim in Windows, creating and saving mediawiki.vim in Vim itself is preferable, otherwise the file may break. {{cot|title=File <samp>mediawiki.vim</samp>}} <syntaxhighlight lang="vim"> " mediawiki.vim (formerly named Wikipedia.vim) " " Vim syntax file " Language: MediaWiki, http://www.mediawiki.org/ " Maintainer: This syntax file needs a maintainer in order to ship " with Vim. Please contact [[User:Unforgettableid]] if you want " to volunteer. " Home: http://en.wikipedia.org/wiki/Wikipedia:Text_editor_support#Vim " Last Change: 2011 Sep 19 " Credits: [[User:Aepd87]], [[User:Danny373]], [[User:Ingo Karkat]], et al. " " Published on Wikipedia in 2003-04 and declared authorless. " " Based on the HTML syntax file. Probably too closely based, in fact. " There may well be name collisions everywhere, but ignorance is bliss, " so they say. " " To do: plug-in support for downloading and uploading to the server. if !exists("main_syntax") if version < 600 syntax clear elseif exists("b:current_syntax") finish endif let main_syntax = "mediawiki" endif syntax case ignore if v:version >= 700 syntax spell toplevel endif " Mark illegal characters sy match htmlError "[<>&]" " Tags sy region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,@htmlPreproc sy region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,@htmlPreproc sy match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=@htmlPreproc sy region htmlEndTag start=+</+ end=+>+ contains=htmlTagN,htmlTagError sy region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster sy match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster sy match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster sy match htmlTagError contained "[^>]<"ms=s+1 " Allowed HTML tag names sy keyword htmlTagName contained big blockquote br caption center cite code sy keyword htmlTagName contained dd del div dl dt font hr ins li sy keyword htmlTagName contained ol p pre rb rp rt ruby s small span strike sub sy keyword htmlTagName contained sup table td th tr tt ul var sy match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\)\>" " Allowed Wiki tag names sy keyword htmlTagName contained math nowiki references source syntaxhighlight " Allowed arg names sy keyword htmlArg contained align lang dir width height nowrap bgcolor clear sy keyword htmlArg contained noshade cite datetime size face color type start sy keyword htmlArg contained value compact summary border frame rules sy keyword htmlArg contained cellspacing cellpadding valign char charoff sy keyword htmlArg contained colgroup col span abbr axis headers scope rowspan sy keyword htmlArg contained colspan id class name style title " Special characters sy match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};" " Comments sy region htmlComment start=+<!+ end=+>+ contains=htmlCommentPart,htmlCommentError sy match htmlCommentError contained "[^><!]" sy region htmlCommentPart contained start=+--+ end=+--\s*+ contains=@htmlPreProc sy region htmlComment start=+<!DOCTYPE+ keepend end=+>+ if !exists("html_no_rendering") sy cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,@htmlPreproc sy region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic sy region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic sy region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic sy region htmlBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlBoldItalicUnderline sy region htmlBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlBoldItalicUnderline sy region htmlBoldUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop sy region htmlBoldUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop sy region htmlBoldItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic sy region htmlUnderline start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic sy region htmlUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic sy region htmlUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic sy region htmlUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlUnderlineItalicBold sy region htmlUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlUnderlineItalicBold sy region htmlUnderlineItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop sy region htmlUnderlineItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop sy region htmlUnderlineBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop sy region htmlUnderlineBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop sy region htmlItalic start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline sy region htmlItalic start="<em\>" end="</em>"me=e-5 contains=@htmlTop sy region htmlItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlItalicBoldUnderline sy region htmlItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlItalicBoldUnderline sy region htmlItalicBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop sy region htmlItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlItalicUnderlineBold sy region htmlItalicUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop sy region htmlItalicUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop sy region htmlH1 start="<h1\>" end="</h1>"me=e-5 contains=@htmlTop sy region htmlH2 start="<h2\>" end="</h2>"me=e-5 contains=@htmlTop sy region htmlH3 start="<h3\>" end="</h3>"me=e-5 contains=@htmlTop sy region htmlH4 start="<h4\>" end="</h4>"me=e-5 contains=@htmlTop sy region htmlH5 start="<h5\>" end="</h5>"me=e-5 contains=@htmlTop sy region htmlH6 start="<h6\>" end="</h6>"me=e-5 contains=@htmlTop endif " No htmlTop and wikiPre inside HTML preformatted areas, because " MediaWiki renders everything in there literally (HTML tags and " entities, too): <pre> tags work as the combination of <nowiki> and " the standard HTML <pre> tag: the content will preformatted, and it " will not be parsed, but shown as in the wikitext source. " " With wikiPre, indented lines would be rendered differently from " unindented lines. sy match htmlPreTag /<pre\>[^>]*>/ contains=htmlTag sy match htmlPreEndTag /<\/pre>/ contains=htmlEndTag sy match wikiNowikiTag /<nowiki>/ contains=htmlTag sy match wikiNowikiEndTag /<\/nowiki>/ contains=htmlEndTag sy match wikiSourceTag /<source\s\+[^>]\+>/ contains=htmlTag sy match wikiSourceEndTag /<\/source>/ contains=htmlEndTag sy match wikiSyntaxHLTag /<syntaxhighlight\s\+[^>]\+>/ contains=htmlTag sy match wikiSyntaxHLEndTag /<\/syntaxhighlight>/ contains=htmlEndTag " Note: Cannot use 'start="<pre>"rs=e', so still have the <pre> tag " highlighted correctly via separate sy-match. Unfortunately, this will " also highlight <pre> tags inside the preformatted region. sy region htmlPre start="<pre\>[^>]*>" end="<\/pre>"me=e-6 contains=htmlPreTag sy region wikiNowiki start="<nowiki>" end="<\/nowiki>"me=e-9 contains=wikiNowikiTag sy region wikiSource start="<source\s\+[^>]\+>" keepend end="<\/source>"me=e-9 contains=wikiSourceTag sy region wikiSyntaxHL start="<syntaxhighlight\s\+[^>]\+>" keepend end="<\/syntaxhighlight>"me=e-18 contains=wikiSyntaxHLTag sy include @TeX syntax/tex.vim unlet b:current_syntax sy region wikiTeX matchgroup=htmlTag start="<math>" end="<\/math>" contains=@texMathZoneGroup,wikiNowiki,wikiNowikiEndTag sy region wikiRef matchgroup=htmlTag start="<ref>" end="<\/ref>" contains=wikiNowiki,wikiNowikiEndTag sy cluster wikiText contains=wikiLink,wikiTemplate,wikiNowiki,wikiNowikiEndTag,wikiItalic,wikiBold,wikiBoldAndItalic " Tables sy cluster wikiTableFormat contains=wikiTemplate,htmlString,htmlArg,htmlValue sy region wikiTable matchgroup=wikiTableSeparator start="{|" end="|}" contains=wikiTableHeaderLine,wikiTableCaptionLine,wikiTableNewRow,wikiTableHeadingCell,wikiTableNormalCell,@wikiText sy match wikiTableSeparator /^!/ contained sy match wikiTableSeparator /^|/ contained sy match wikiTableSeparator /^|[+-]/ contained sy match wikiTableSeparator /||/ contained sy match wikiTableSeparator /!!/ contained sy match wikiTableFormatEnd /[!|]/ contained sy match wikiTableHeadingCell /\(^!\|!!\)\([^!|]*|\)\?.*/ contains=wikiTableSeparator,@wikiText,wikiTableHeadingFormat " Require at least one '=' in the format, to avoid spurious matches (e.g. " the | in [[foo|bar]] might be taken as the final |, indicating the beginning " of the cell). The same is done for wikiTableNormalFormat below. sy match wikiTableHeadingFormat /\%(^!\|!!\)[^!|]\+=[^!|]\+\([!|]\)\(\1\)\@!/me=e-1 contains=@wikiTableFormat,wikiTableSeparator nextgroup=wikiTableFormatEnd sy match wikiTableNormalCell /\(^|\|||\)\([^|]*|\)\?.*/ contains=wikiTableSeparator,@wikiText,wikiTableNormalFormat sy match wikiTableNormalFormat /\(^|\|||\)[^|]\+=[^|]\+||\@!/me=e-1 contains=@wikiTableFormat,wikiTableSeparator nextgroup=wikiTableFormatEnd sy match wikiTableHeaderLine /\(^{|\)\@<=.*$/ contained contains=@wikiTableFormat sy match wikiTableCaptionLine /^|+.*$/ contained contains=wikiTableSeparator,@wikiText sy match wikiTableNewRow /^|-.*$/ contained contains=wikiTableSeparator,@wikiTableFormat sy cluster wikiTop contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag sy region wikiItalic start=+'\@<!'''\@!+ end=+''+ oneline contains=@wikiTop,wikiItalicBold sy region wikiBold start=+'''+ end=+'''+ oneline contains=@wikiTop,wikiBoldItalic sy region wikiBoldAndItalic start=+'''''+ end=+'''''+ oneline contains=@wikiTop sy region wikiBoldItalic contained start=+'\@<!'''\@!+ end=+''+ oneline contains=@wikiTop sy region wikiItalicBold contained start=+'''+ end=+'''+ oneline contains=@wikiTop sy region wikiH1 start="^=" end="=" oneline contains=@wikiTop sy region wikiH2 start="^==" end="==" oneline contains=@wikiTop sy region wikiH3 start="^===" end="===" oneline contains=@wikiTop sy region wikiH4 start="^====" end="====" oneline contains=@wikiTop sy region wikiH5 start="^=====" end="=====" oneline contains=@wikiTop sy region wikiH6 start="^======" end="======" oneline contains=@wikiTop sy region wikiLink start="\[\[" end="\]\]\(s\|'s\|es\|ing\|\)" oneline contains=wikiLink,wikiNowiki,wikiNowikiEndTag sy region wikiLink start="https\?://" end="\W*\_s"me=s-1 oneline sy region wikiLink start="\[http:" end="\]" oneline contains=wikiNowiki,wikiNowikiEndTag sy region wikiLink start="\[https:" end="\]" oneline contains=wikiNowiki,wikiNowikiEndTag sy region wikiLink start="\[ftp:" end="\]" oneline contains=wikiNowiki,wikiNowikiEndTag sy region wikiLink start="\[gopher:" end="\]" oneline contains=wikiNowiki,wikiNowikiEndTag sy region wikiLink start="\[news:" end="\]" oneline contains=wikiNowiki,wikiNowikiEndTag sy region wikiLink start="\[mailto:" end="\]" oneline contains=wikiNowiki,wikiNowikiEndTag sy match wikiTemplateName /{{\s*\w\+/hs=s+2 contained sy region wikiTemplate start="{{" end="}}" keepend extend contains=wikiNowiki,wikiNowikiEndTag,wikiTemplateName,wikiTemplateParam,wikiTemplate,wikiLink sy region wikiTemplateParam start="{{{\s*\d" end="}}}" extend contains=wikiTemplateName sy match wikiParaFormatChar /^[\:|\*|;|#]\+/ sy match wikiParaFormatChar /^-----*/ sy match wikiPre /^\ .*$/ contains=wikiNowiki,wikiNowikiEndTag " HTML highlighting if version < 508 command! -nargs=+ HtmlHiLink hi link <args> else command! -nargs=+ HtmlHiLink hi def link <args> endif if version >= 508 || !exists("did_html_syn_inits") HtmlHiLink htmlTag Function HtmlHiLink htmlEndTag Identifier HtmlHiLink htmlArg Type HtmlHiLink htmlTagName htmlStatement HtmlHiLink htmlSpecialTagName Exception HtmlHiLink htmlValue String HtmlHiLink htmlSpecialChar Special if !exists("html_no_rendering") HtmlHiLink htmlTitle Title HtmlHiLink htmlH1 htmlTitle HtmlHiLink htmlH2 htmlTitle HtmlHiLink htmlH3 htmlTitle HtmlHiLink htmlH4 htmlTitle HtmlHiLink htmlH5 htmlTitle HtmlHiLink htmlH6 htmlTitle HtmlHiLink htmlPreProc PreProc HtmlHiLink htmlHead htmlPreProc HtmlHiLink htmlPreProcAttrName htmlPreProc HtmlHiLink htmlPreStmt htmlPreProc HtmlHiLink htmlSpecial Special HtmlHiLink htmlCssDefinition htmlSpecial HtmlHiLink htmlEvent htmlSpecial HtmlHiLink htmlSpecialChar htmlSpecial HtmlHiLink htmlComment Comment HtmlHiLink htmlCommentPart htmlComment HtmlHiLink htmlCssStyleComment htmlComment HtmlHiLink htmlString String HtmlHiLink htmlPreAttr htmlString HtmlHiLink htmlValue htmlString HtmlHiLink htmlError Error HtmlHiLink htmlBadArg htmlError HtmlHiLink htmlBadTag htmlError HtmlHiLink htmlCommentError htmlError HtmlHiLink htmlPreError htmlError HtmlHiLink htmlPreProcAttrError htmlError HtmlHiLink htmlTagError htmlError HtmlHiLink htmlStatement Statement HtmlHiLink htmlConstant Constant HtmlHiLink htmlBoldItalicUnderline htmlBoldUnderlineItalic HtmlHiLink htmlUnderlineItalicBold htmlBoldUnderlineItalic HtmlHiLink htmlUnderlineBoldItalic htmlBoldUnderlineItalic HtmlHiLink htmlItalicBoldUnderline htmlBoldUnderlineItalic HtmlHiLink htmlItalicUnderlineBold htmlBoldUnderlineItalic HtmlHiLink htmlItalicBold htmlBoldItalic HtmlHiLink htmlItalicUnderline htmlUnderlineItalic HtmlHiLink htmlUnderlineBold htmlBoldUnderline HtmlHiLink htmlLink Underlined if !exists("html_my_rendering") hi def htmlBold term=bold cterm=bold gui=bold hi def htmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline hi def htmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline hi def htmlUnderline term=underline cterm=underline gui=underline hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline hi def htmlItalic term=italic cterm=italic gui=italic endif endif " !exists("html_no_rendering") if version < 508 let did_html_syn_inits = 1 endif endif " version >= 508 || !exists("did_html_syn_inits") " Wiki highlighting HtmlHiLink wikiItalic htmlItalic HtmlHiLink wikiBold htmlBold HtmlHiLink wikiBoldItalic htmlBoldItalic HtmlHiLink wikiItalicBold htmlBoldItalic HtmlHiLink wikiBoldAndItalic htmlBoldItalic HtmlHiLink wikiH1 htmlTitle HtmlHiLink wikiH2 htmlTitle HtmlHiLink wikiH3 htmlTitle HtmlHiLink wikiH4 htmlTitle HtmlHiLink wikiH5 htmlTitle HtmlHiLink wikiH6 htmlTitle HtmlHiLink wikiLink htmlLink HtmlHiLink wikiTemplate htmlSpecial HtmlHiLink wikiTemplateParam htmlSpecial HtmlHiLink wikiTemplateName Type HtmlHiLink wikiParaFormatChar htmlSpecial HtmlHiLink wikiPre htmlConstant HtmlHiLink wikiRef htmlComment HtmlHiLink htmlPre wikiPre HtmlHiLink wikiSource wikiPre HtmlHiLink wikiSyntaxHL wikiPre HtmlHiLink wikiTableSeparator Statement HtmlHiLink wikiTableFormatEnd wikiTableSeparator HtmlHiLink wikiTableHeadingCell htmlBold let b:current_syntax = "mediawiki" delcommand HtmlHiLink if main_syntax == "mediawiki" unlet main_syntax endif " vim: set et sts=2 sw=2: </syntaxhighlight> {{cob}} ====$HOME/.vim/ftdetect/mediawiki.vim==== =====Basic filetype detection===== To autodetect files ending in "{{tt|.wiki}}", add the following lines to "<kbd>.vim/ftdetect/mediawiki.vim</kbd>" or "<kbd>vimfiles\ftdetect\mediawiki.vim</kbd>" (or create the file if it doesn't exist): A raw mediawiki.vim file for easy downloading exists on GitHub:<br> https://raw.githubusercontent.com/chikamichi/mediawiki.vim/master/ftdetect/mediawiki.vim {{File title| $HOME/.vim/ftdetect/mediawiki.vim}} <syntaxhighlight lang="vim"> if has("autocmd") au BufRead,BufNewFile *.mw set filetype=mediawiki au BufRead,BufNewFile *.wiki set filetype=mediawiki au BufRead,BufNewFile *.mediawiki set filetype=mediawiki au BufRead,BufNewFile *.wikipedia.org* set filetype=mediawiki au BufRead,BufNewFile *.wikibooks.org* set filetype=mediawiki au BufRead,BufNewFile *.wikimedia.org* set filetype=mediawiki endif </syntaxhighlight> Alternatively, the command "<kbd>:setf mediawiki</kbd>" will temporarily set the syntax for the current file. =====Mozex Firefox extension fix===== If you use the <b>Mozex Firefox extension</b>,<ref name="Mozex">{{cite web |last=Marek |first=Vladimir |title=Mozex |publisher=MozDev |date=2009-12-27 |url= http://mozex.mozdev.org/ |url-status=dead |archiveurl= https://web.archive.org/web/20200708154331/http://mozex.mozdev.org/ |archivedate=2020-07-08}}</ref> <b>Mozex</b> creates a temporary file ending in "{{tt|.txt}}" rather than "{{tt|.wiki}}" so the above autodetection will not work in combination with that add-on. One solution is to have <b>Mozex</b> invoke vim with these arguments: -c "setf mediawiki" A complete editor command can look some thing like that gnome-terminal -e "vim -c 'setf mediawiki' $1" According to the surviving download mirrors of the now-defunct MozDev site, Mozex was last updated on 11 March 2010 (v. 1.9.12),<ref>{{cite web |title=Index of /pub/mirrors/mozdev.org/mozex/ |publisher=ibiblio.org |date=2010-03-11 |url= https://mirrors.ibiblio.org/pub/mirrors/mozdev.org/mozex/ |accessdate=2025-05-03}}</ref> and per this version's install.rdf file, it supports Firefox 3.7.*. Mozex also supports the Mozilla Application Suite,<ref>{{cite web |last=Marek |first=Vladimir |title=Installation |work=Mozex |publisher=MozDev |url=http://mozex.mozdev.org/installation.html |url-status=dead |archiveurl= https://web.archive.org/web/20200602033602/http://mozex.mozdev.org/installation.html |archivedate=2020-06-02}}</ref> its continuation SeaMonkey up to version 1.1.19, [[Classilla]] (for Mac), RetroZilla,<ref>{{cite web |author=rn10950 |title=RetroZilla |publisher=GitHub |date=2024-05-26 |url=https://github.com/rn10950/RetroZilla |accessdate=2024-05-23}}</ref> and further derivatives. =====Adapt to MediaWiki lines without line breaks===== Wikipedia articles often only have line-breaks at the end of each paragraph, a situation Vim by default doesn't handle as other text editors. Save the following lines to "<kbd>~/.vim/ftplugin/mediawiki.vim</kbd>" or "<kbd>vimfiles\ftplugin\mediawiki.vim</kbd>" to make it as you may be used to from Notepad: {{File title| $HOME/.vim/ftplugin/mediawiki.vim}} <syntaxhighlight lang="vim"> " Many MediaWiki wikis prefer line breaks only at the end of paragraphs " (like in a text processor), which results in long, wrapping lines. setlocal wrap linebreak setlocal textwidth=0 " No auto-wrap at all. setlocal formatoptions-=t formatoptions-=c formatoptions-=a formatoptions+=l " Make navigation more amenable to the long wrapping lines. noremap <buffer> k gk noremap <buffer> j gj noremap <buffer> <Up> gk noremap <buffer> <Down> gj noremap <buffer> 0 g0 noremap <buffer> ^ g^ noremap <buffer> $ g$ noremap <buffer> D dg$ noremap <buffer> C cg$ noremap <buffer> A g$a inoremap <buffer> <Up> <C-O>gk inoremap <buffer> <Down> <C-O>gj </syntaxhighlight> =====Additional gimmicks===== Additional to that you may want to save the following lines to "<kbd>~/.vim/ftplugin/mediawiki.vim</kbd>" or "<kbd>vimfiles\ftplugin\mediawiki.vim</kbd>" for some more gimmicks (you may need to put "<kbd>filetype plugin on</kbd>" in your <code>vimrc</code>): <div style="height:auto; overflow:auto;"> {{File title| $HOME/.vim/ftplugin/mediawiki.vim}} <syntaxhighlight lang="vim"> " utf-8 should be set if not already done globally setlocal fileencoding=utf-8 setlocal matchpairs+=<:> " Treat lists, indented text and tables as comment lines and continue with the " same formatting in the next line (i.e. insert the comment leader) when hitting " <CR> or using "o". setlocal comments=n:#,n:*,n:\:,s:{\|,m:\|,ex:\|} setlocal formatoptions+=roq " match HTML tags (taken directly from $VIM/ftplugin/html.vim) if exists("loaded_matchit") let b:match_ignorecase=0 let b:match_skip = 's:Comment' let b:match_words = '<:>,' . \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' . \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' . \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>' endif " Other useful mappings " Insert a matching = automatically while starting a new header. inoremap <buffer> <silent> = <C-R>=(getline('.')==''\|\|getline('.')=~'^=\+$')?"==\<Lt>Left>":"="<CR> " Enable folding based on ==sections== setlocal foldexpr=getline(v:lnum)=~'^\\(=\\+\\)[^=]\\+\\1\\(\\s*<!--.*-->\\)\\=\\s*$'?\">\".(len(matchstr(getline(v:lnum),'^=\\+'))-1):\"=\" setlocal fdm=expr </syntaxhighlight></div> ===== GVim Syntax menu ===== Add in Syntax menu the option Wiki {{File title| $HOME/.vim/synmenu.vim}} <syntaxhighlight lang="vim"> an 50.150.450 &Syntax.WXYZ.Wiki :cal SetSyn("mediawiki")<CR> </syntaxhighlight> ==== vim-mediawiki-editor ==== [https://github.com/aquach/vim-mediawiki-editor vim-mediawiki-editor] can on copy articles directly from vim, display diff between changes version on the server and our etc. ===Notepad++=== [[Notepad++]] is a free text and [[Source code editor|source code editor]] for [[Microsoft Windows]]. It allows users to create their own syntax highlighting scheme; users can customize a new scheme using the mediawiki markup scheme, or [[User:MjolnirPants/mediawiki lang npp|install an existing version]] provided by the Wikipedia user [[User:MjolnirPants|MjolnirPants]]. Notepad++ supports plugins; there is a 2009 mediaWiki plugin for the 32-bit version that can be downloaded at [http://www.cab.i24.cc/projects/wikieditor/ http://www.cab.i24.cc/projects/wikieditor/] ([https://web.archive.org/web/20231001185805/http://www.cab.i24.cc/projects/wikieditor/ Internet Archive]). ===LibreOffice Writer=== The previous methods allow a Wikipedia Edit page to be processed more efficiently. [[LibreOffice Writer|LibreOffice (LO) Writer]] can be used for this purpose; but using LO Writer to convert a formatted document into Wikipedia edit format is also possible. This requires using styles and other LO features, explained in LO Writer Help > MediaWiki Formats; for example the Heading 2 style must be used if a heading is to be enclosed within a pair of "==". This is supported, at least, in LO 5 under Windows 10 with the appropriate 32- or 64-bit [[Java Runtime Environment]] (JRE) present and enabled in LO; the procedure is File > Export > MediaWiki (.txt). See [[Help:WordToWiki]]. ===Offline MediaWiki Code Editor=== [https://wikicodeeditor.wordpress.com Offline MediaWiki Code Editor] is a multilingual freeware offline application programmed in ''AutoHotkey'' script language for those ''Windows''® users who edit articles in ''Wikipedia'' and other projects of the ''Wikimedia Foundation''. It includes tools and assistants with a simple and intuitive user-friendly Graphical User Interface (GUI) which helps the user to generate much of the ''MediaWiki'' code. Among other gifts the assistants help the user to: {{columns-list|colwidth=20em| *Apply list style *Build links *Split in columns *Insert special characters *Insert inline references *Insert images *Insert image galleries *Insert tables *Browse/Concatenate files *Compare versions of a document *Convert to HTML and preview *Two-windows mode }} The application makes easier and faster the edition of articles, even if the user lacks previous knowledge of the markup rules. It helps to prevent mistakes during the process of edition, and to pay less attention to the sintax. Although the application program was designed for users with no previous knowledge of the ''MediaWiki'' language, it is also useful for experts, once it saves time and reduces the possibility of typing errors. Although is not a visual editor, it offers the possibility to test offline most of your code in your default web browser. This tests simulate the behavior that would show the wiki code in a ''Wikipedia'' page. The installer may be downloaded free from the [https://wikicodeeditor.wordpress.com Offline MediaWiki Code Editor] site. Both the installer and the application interface are available in English, Spanish, German and French. Last update can be downloaded from [https://ln5.sync.com/dl/4f2354260/bjpw49kv-5schka8s-hp489h27-thgbzkue here]. ==In-browser editors== ===wikEd=== [[User:Cacycle/wikEd|wikEd]] is a full-featured in-browser text editor that adds enhanced text processing functions to Wikipedia and other MediaWiki edit pages ({{as of|2009|10|lc=on}}, wikEd works with [[Mozilla Firefox|Firefox]], [[SeaMonkey]], [[Safari (web browser)|Safari]] and [[Google Chrome]], but not with [[Internet Explorer]] or [[Opera (web browser)|Opera]]). Features include: * Powerful search and replace (including Regular expressions) * Wikicode syntax highlighting * Fullscreen editing mode * Edit preview and show changes on the same page without reloading * MS-Word and web page import (including tables) * 1-click fixing common mistakes wikEd can simply be enabled in [[Special:Preferences#mw-prefsection-gadgets|Preferences::Gadgets]] (on wiki installations where wikEd is not installed as a gadget, a small code snippet can be pasted to your [[Special:Mypage/common.js|''common.js'']] page or it can be run locally as a [[Greasemonkey]] user script). For detailed installation instructions see the [[User:Cacycle/wikEd#Installation|wikEd homepage]]. === QuickWikiEditor === With this [[Firefox]] add-on it is possible to make little edits to wiki-articles without having to leave or reload the page, so the flow in reading an article is barely disturbed. It is available at [https://addons.mozilla.org/en-US/firefox/addon/quickwikieditor_updated/ addons.mozilla.org].<!-- 2022-04-02 "Last updated 3 years ago" --> === Surfingkeys === [https://github.com/brookhong/Surfingkeys Surfingkeys] is a Chrome and Firefox extension that brings [[Vim (text editor)|Vim]]-like keyboard shortcuts that can be customized using JavaScript. Among the list of features is a Vim editor powered by [[Ace (editor)|Ace]]. To enter the Vim editor, press {{key press|I}} and use a hint letter to pick an input box. Alternatively if a text box was selected via insert mode or mouse click, {{key press|Ctrl|i}} opens the editor. For <code>input</code> and <code>select</code> elements, {{key press|Enter}} saves the text. For <code>textarea</code> elements such as for editing a page, {{key press|Ctrl|Enter}} will save the text. In all cases, <code>:w</code> will also save the written text and {{key press|Esc}} or <code>:q</code> will leave the editor without saving changes. === wasavi === [https://github.com/akahuku/wasavi wasavi] is an extension for Chrome, Firefox, and Opera that changes the textarea in a page to a Vim-like editor. Almost all Vim/ex commands are supported. To launch wasavi, press {{key press|Ctrl|enter}} to start the editor. ==Dealing with special characters== Wikipedia encodes text using the [[UTF-8]] character set, which allows using many non-English characters and special symbols. Such characters may appear even in articles where you wouldn't expect them due to the use of interwiki links to non-English versions of the article. Therefore, using an editor that does not mangle these characters or replace them with question marks is very important. Check your editor's documentation to make sure that it supports Unicode or UTF-8, and enable it if needed. You don't necessarily need a special editor; recent versions of [[Notepad (Windows)|Notepad]] and [[Microsoft Office Word|Microsoft Word]] support Unicode, for example. An extensive list of Unicode-supporting editors is available for [http://www.alanwood.net/unicode/utilities_editors.html Windows] and [http://www.alanwood.net/unicode/utilities.html other operating systems] (see also: [[Comparison of text editors]]). If your editor does not support UTF-8, then copy-paste from web browser may mangle the characters. For example, pasting from Windows Clipboard automatically converts characters to whatever character set your editor uses and replace any characters not included in this character set with question marks. You can avoid this by using one of the helper applications or browser plugins mentioned above. For example, ''It's All Text!'' does not mangle any characters. When editing an article with special characters using a new editor, using the "Show changes" button (next to "Show preview") to see exactly what your edit will change is a good idea. If areas with special characters that you didn't intend to modify are highlighted as red, that means they will be corrupted, even though both versions may look the same to you because you don't have foreign fonts installed. [http://www.babelstone.co.uk/Software/BabelPad.html BabelPad] is a free editor for Windows with special support for dealing with Unicode, and is ideal if you need to determine which of several similar-looking characters an article is using, or deal with hard-to-edit Unicode control codes (like for multidirectional text). == Enabling Wikipedia VisualEditor== [[File:VisualEditor text format menu.png|300px|right|VisualEditor's text formatting menu]] {| style="margin: 1em auto 1em auto;" |- | style="; font-size:120%; width:32%" | '''To enable [[Wikipedia:VisualEditor|VisualEditor]]''': |- | Log in, [[Special:Preferences#mw-prefsection-editing|uncheck ''Temporarily disable the visual editor while it is in beta'']], optionally [[Special:Preferences#mw-prefsection-editing|change ''Editing mode'']] to ''Show me both editor tabs'', and save your preferences. |} ==See also== * [[Wikipedia:Tools]] **[[VisualEditor]] **[[Wikipedia:Tools/Editing tools]] * [[Wikipedia:AutoWikiBrowser|AutoWikiBrowser]] ** [[M:MWiki-Browser|MWiki-Browser]]. A fork of AutoWikiBrowser (last release in July 2007). [[Category:Wikipedia tools|Text]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:" end="
(
edit
)
Template:As of
(
edit
)
Template:Cite web
(
edit
)
Template:Cob
(
edit
)
Template:Columns-list
(
edit
)
Template:Cot
(
edit
)
Template:Dead
(
edit
)
Template:File title
(
edit
)
Template:Key press
(
edit
)
Template:Myprefs
(
edit
)
Template:Outdated
(
edit
)
Template:Tag
(
edit
)
Template:Tt
(
edit
)
Template:Update
(
edit
)
Template:Wikipedia how-to
(
edit
)