說明:文字編輯器支援

通常,使用成熟的文字編輯器編寫維基條目,要比使用瀏覽器中的標凖文字編輯區編寫方便得多。文字編輯器會提供許多非常有用的功能,例如拼寫檢查,尋找替換,操作和語法突顯等,特別有助於編寫條目,尤其是條目很長的時候。文字編輯器還可以快速、簡單儲存條目的本地版本,以方便將來的離線編輯。

本文包含一些用外部編輯器或瀏覽器內建編輯器來編寫維基條目的指南。

怎樣在文字編輯器打開條目

當然,你可以用手工的方法來使用外部的GUI文字編輯器:首先選擇瀏覽器中文字編輯區的所有內容(比如使用Ctrl-A或⌘A),然後把內容複製並貼到一個外部編輯器當中,開始編輯,最後再把編輯好的內容重新複製並貼回瀏覽器的文字編輯區。

但某些軟件可能會提供更有效的方法:

Mozilla和Mozilla Firefox

如果你使用MozillaMozilla Firefox瀏覽器,你可以使用以下方法來呼叫外部編輯器編輯網頁中的文本框,這就不用在瀏覽器和編輯器之間複製、貼上了。

當你完成編輯時,你需要在編輯器中儲存,然後點擊瀏覽器的文本框,文本框中的文字就會被更新成你在編輯器中編輯的結果。然後你就可以點擊「預覽」。如果你希望在預覽之後繼續編輯,點擊瀏覽器中的「後退」,然後在你的編輯器中編輯。你也可以在開始編輯之前就預覽,然後在編輯器中編輯,儲存,預覽,繼續編輯,儲存,預覽,直到你滿意,而不需要在這中間點擊「後退」。

用It's All Text!來呼叫外部編輯器(如vim,gvim,notepad,wordpad等)

如果你在Windows或Linux使用Firefox2或3®,並且習慣 vim(或者幾乎所有其他編輯器), It's All Text是你最好的選擇,它易於安裝和使用。你只需要點擊一次滑鼠來安裝Firefox的這個附加元件,然後Firefox會提示你重新啟動以啟用這個附加元件。

然後,你需要為這個附加元件指定編輯器的路徑。

There are two ways to bring up the Preferences window: (0)Switch to edit mode by clicking the Edit tab of a wiki page,or use the shortcut Shift+Alt+e,with the "accesskey" being Shift+Alt(in some other systems,the "accesskey" may be the Alt key; see Keyboard shortcuts for more details),then (1) Right click in the textarea; a dropdown menu will appear; move the cursor to It's All Text for another dropdown menu, and select Preferences at the bottom of this menu; or (2) Right click at the little button "Edit" at the lower-right corner of the textarea window. The path to your editor can be put in the Editor box of the Preferences window.

To invoke vim,you need to use the graphical version of vim called gvim, and thus put the path /usr/bin/gvim in the Editor box of the Preferences window. Putting /usr/bin/vim will not work; see below on how to get vim to work.

Once the above is done,to edit a wiki page,switch to Edit mode(as mentioned above)to bring up the textarea,and click at the little Edit button at the lower-right corner of the textarea.

To maximize the gvim window,press Alt+F5 in the xfce desktop environment.

After editing,you can save(write)the current file in gvim by pressing :w, then toggle back to the textarea of the wiki page(by pressing Alt+Tab if you use xfce or other desktop environments); you would see the textarea background turned yellow briefly, meaning that the textarea had been just modified and saved. Actually,each time you save the edited file,it takes about 1 or 2 seconds for the textarea to turn yellow briefly,indicating the saved version of the wiki article had been loaded into the textarea. You would see this color effect if your gvim widow did not occupy the whole monitor screen,and a portion of the text area could be seen beside the gvim window while editing.

All vim macros previously developed for use in editing latex files,html files,etc. worked.(See below in case you need to use vim instead of gvim.)

To preview what you have just edited,just toggle back to the wiki window(by pressing Alt+Tab if you use xfce), then type Shift+Alt+p. If you want to continue to see what you have just edited with gvim and included in the textarea,you can go back to the edit textarea by pressing Alt+LeftArrow to get your Firefox to display the previous page.

The location of the saved files edited with gvim are in the directory

  ~/.mozilla/firefox/default*/itsalltext/

with the filenames having the syntax:

  IP_address.random_code.txt

e.g.

  en.wikipedia.org.23311k351x.txt

The files in this directory will be removed. So if you want to preserve a text file for later editing,you may want to change the filename and move the file to another directory.

Another tip: While editing with It's All Text with gvim,if you were previewing the previous saved version of the text in Wikipedia,to preview a newer version,you want to first save this newer version in gvim. Then toggle back to the Wikipedia window,press Alt+RightArrow to go back to the edit textarea of the wiki article,wait for 1 or 2 seconds for the textarea to turn yellow briefly indicating that the newer version of the article had been loaded to the textarea. Next, press Shift+Alt+p to preview this newer version. To save the edited wiki page,you can use the shortcut Shift+Alt+s.

Getting vim to work with It's All Text: Some macro may work under vim,but not under gvim for some reasons (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 vim command within that X terminal, or generally your preferred editor. Assume that the filename of this script is wiki.edit.vim, and that you put the script in the directory /home_dir/bin/ so that the path of the script would be

  /home_dir/bin/wiki.edit.vim

Put the above path in the Preferences box(instead of /usr/bin/gvim)of It's All Text. It should work. Note that /home_dir/ is the complete path to your home directory from the root(/)directory; don't use ~/(tilde)instead of /home_dir/; it won't work.

The listing of the script wiki.edit.vim is given below:

#! /bin/sh
# $Id$
# vql, Thu, 27 Sep 2007, 17:56:09 EDT
#
# To pop up an X terminal (xterm) and run vim command within this
# terminal window.
# This script is intended to be invoked by the Firefox addon It's
# All Text for editing wiki pages
#
# The arguments for xterm are the same as those used to open up
# X terminals in laptop io2.  See ~/manuals/laptop.io2.fc3.html,
# Section on xfce.
# For gray background: (NOT NEEDED, since the X terminal would be
#   closed down after quitting the wiki file); the \ is for
#   continuation to the next line:
#
#   -bg gray \
#
# For font size:
#   -fn -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1 \
#
# For the sidebar:
#   -sb
#
# For the size of the window (80 columns, 39 lines, right justified)
#   -geometry 80x39+800 \
#
# For executing vim on the file being the first argument of the script
#   -e /usr/bin/vim $argv[1]
#
# Exit codes:
# 0 = no problem
#
# Updated for generic Bourne shell by Eeera 2008-03-27

/usr/bin/xterm \
   -sb \
   -fn -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1 \
   -geometry 80x39+800 \
   -e /usr/bin/vim "$1"

You can delete one or more xterm options used in the above script such as -sb,-fn,-geometry,etc.,if you don't need them. For example,the option -bg was already deleted, as explained in the comment block of the script. Enjoy editing wiki pages!

外部編輯器特性

從1.5版的MediaWiKi開始,可以使用任意外部工具來編輯維基資源。細節請參見Help:外部編輯器

文字瀏覽器

純文字瀏覽器elinks也提供一種編輯文字區的功能。組合鍵Ctrl-T會調用一個外部編輯器(比如Vim),這便可以使用語法突顯、各種編輯功能、拼寫檢查並可以儲存本地的備份。

w3m

w3m默認情況下就會使用外部編輯器來編輯文字區。

Lynx

Lynx使用外部編輯器編輯文字區的方法是:把光標放在文字區內,按組合鍵Ctrl-X + e。用戶也可以自訂快捷鍵。一些軟件包打包者可能使用lynx本身的設定檔來自訂快捷鍵。

命令列工具

There are also command line tools that allow you to download articles,edit them using your favorite text editor,and upload the edited articles back into the Wikipedia(or into any MediaWiki server). This bypasses the need for a web browser. These are(at least):

  • mvs,a Perl program available from CPAN. There's more information at Meta:WWW::Mediawiki::Client. 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 the management of UTF-8 characters to be fully operational,even if your terminal and shell are correctly set for UTF-8. But see Debian bug reports.
  • mwiki is a program to retrieve and upload articles from/to wikipedia servers. It is also capable of editing(sub)sections of articles. It stores the pagename(and other information)inside the file and seems to work well with UTF-8.
  • Meta:pywikipedia 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 the wrong transmission of titles in UTF-8,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 Meta:pywikipedia):
{{-start-}}'''Демография'', или наука о народонаселении, изучает численность, состав, размещение и движение населения. 
{{-stop-}}

{{-start-}}'''人口学'''はヒトの人口の科学的研究をいい、主としてその大きさ、構造 2そしてその成長発展を研究対象とする。
{{-stop-}}

{{-start-}}'''Demography''' is the scientific study of human populations primarily with respect to their size, their structure and their development
{{-stop-}}

{{-start-}}'''الديمغرافية''': علم يتناول دراسة المجتمعات البشرية من حيث حجومها و بناها و تطورها و خصائصها العامة و لا سيما من النواحي الكمية.
{{-stop-}}

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:

  python pagefromfile.py -file:foo.wiki

Wikipediafs

使用POSIX相容的操作系統(如Linux或Mac OS X)的用戶也可以使用基於PythonFUSEWikipedia filesystem虛擬檔案系統。它可以使用戶在編輯任何基於Mediawiki的系統上的文章,就好像編輯本地檔案一樣。

如何設置特定的編輯器來編輯維基百科

GNU Emacs

There are a couple of Emacs major modes available for editing Wikipedia articles:

  • wikipedia-mode.el is a simple major mode that mostly provides syntax highlighting for wikipedia markup.
  • wikipedia.el is a much more advanced major mode which provides WYSIWYG editing of wikipedia articles. Note,however,that it is developed using the current 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 alpha stage of development when it was orphaned,so use it at your own risk.

Since Wikipedia articles don't use line breaks,you may want to install screen-lines.el,which redefines movement commands to work in terms of screen lines as opposed to text lines,or install longlines.el,which implements "word wrap" functionality for Emacs(longlines.el is now part of GNU Emacs). Installation instructions are here.

Eclipse外掛程式

Eclipse(跨平台)有一個專用於維基百科的外掛程式。With an automatically updating outline of the article. It has many features which are very helpful for editing wikipedia. It also downloads articles directly from Wikipedia and has highlighting.

Vim

為使Vim(支援平台:Amiga,Linux,Mac OS X,Windows,OpenVMS,OS/2,Unix)支援維基上所使用的MediaWiKi標記語言,需要把以下代碼儲存到個人vim目錄下的"syntax/MediaWiki.vim"檔案中。默認情況下,在Unix系統中,此目錄位於"~/.vim/syntax",在Windows系統中,此目錄位於"C:\Program Files\Vim\vimfiles\syntax"。如果你的系統中還不存在此目錄,新建一個即可(在Unix或Linux中命令是mkdir)。 (若只是需要語法突顯,參見It's All Text檢視如何使用這firefox擴展設置vim/gvim來編輯維基頁面。)

" Taken from
" http://en.wikipedia.org/wiki/Wikipedia:Text_editor_support#Vim

" Wikipedia syntax file for Vim
" 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 = "html"
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
" Wikipedia 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
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 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="\[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 region wikiTemplate start="{{" end="}}" contains=wikiNowiki,wikiNowikiEndTag

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 wikiParaFormatChar htmlSpecial
HtmlHiLink wikiPre            htmlConstant
HtmlHiLink wikiRef            htmlComment

HtmlHiLink wikiSource         wikiPre
HtmlHiLink wikiSyntaxHL       wikiPre


let b:current_syntax = "html"

delcommand HtmlHiLink

if main_syntax == "html"
unlet main_syntax
endif

" vim: set et sts=2 sw=2:


要自動檢測以".wiki"結尾的檔案,在".vim/ftdetect/MediaWiki.vim"或"vimfiles/ftdetect/MediaWiki.vim"中加入下面欄位(如果此檔案不存在,新建一個):

autocmd BufRead,BufNewFile *.wiki		setfiletype MediaWiki
autocmd BufRead,BufNewFile *.wikipedia.org*	setfiletype MediaWiki

或者,使用":setf Wikipedia"命令,可以臨時地為當前檔案設置語法類型。

前面提到的Firefox擴展Mozex會使用".txt"擴展名創建臨時檔案,而不是使用".wiki"作為擴展名,所以上面的自動檢測檔案類型的方法不能支援此外掛程式。一種解決辦法是讓Mozex調用vim時加上下面的參數:

-c "setf MediaWiki"

維基百科條目通常在每段結尾只使用斷行符,而vim在默認設置下不能完美地處理這種情況。把下面的欄位加到"~/.vim/ftplugin/MediaWiki.vim"或"vimfiles\ftplugin\MediaWiki.vim"中會使情況變得好些(別忘了在vimrc中加上"filetype plugin on")。


" Wikipedia prefers 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-=tc formatoptions+=l
if v:version >= 602 | setlocal formatoptions-=a | endif

" 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


上面的vim指令碼也放在vim.org指令碼集合上,也會不時地與這裏的最新的版本進行更新。請提醒mvc定期上載最新的版本。

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.

Kate/KWrite

關於Kate(GNU/Linux的KDE環境),在維基共享資源有一個XML格式的語法突顯規則。這個規則可以辨識出HTML標籤和實體、維基語法、模板、變數、關鍵詞、連結、章節標題、表格及<nowiki>部分。

安裝這個模板的方法是,將下載的模板複製到你的KDE主目錄~/.kde/share/apps/katepart/syntax/實現單用戶的設置,或進行全域設置:

  • 大部分情況下,複製到$(PREFIX)/share/apps/katepart/syntax/即可。
  • Ubuntu Linux中,要複製到/usr/share/kde4/apps/katepart/syntax/
  • OpenSUSE-Linux中,要設置PREFIX=/opt/kde3/

另外還有一個匯入工具:设置 → 配置Kate → 高亮语法 → 下载

SubEthaEdit

A syntax highlighting mode is available for SubEthaEdit(Mac OS X)as well. After downloading the mode bundle,drop it in /Library/Application Support/SubEthaEdit/Modes/(system-wide)or ~/Library/Application Support/SubEthaEdit/Modes/(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(cross-platform)bundle subversion repository. To learn how to load this bundle,see the TextMate manual page about installing more bundles. The bundle for now(8 August 2006)only does syntax highlighting,but the ability to fetch and post articles is coming soon.

NoteTab

A Clip Library plugin for the NoteTab(Windows)text editor contains some functions to automate Wiki markup.

Notepad++

Notepad++是免費的純文字原碼編輯器,在Windows執行。其可用來自製語法凸顯方案,如用mediawiki markup scheme自訂新方案,或安裝維基百科用戶MjolnirPants提供的現有版本;Github都有適用的語法凸顯方案:MediaWiki_userDefineLang__Obsidian_Theme_.xmlMediawikiMarkup_Improved_bySaurabhPatil.xmlMediawiki_SL.xml

Notepad++支援擴件;32位元版有適用的2009 mediaWiki擴件,可在http://www.cab.i24.cc/projects/wikieditor/下載。

瀏覽器內的編輯器

wikEd

wikEd是功能強大的瀏覽器內文字編輯器,增強了大量維基的頁面編輯過程中的文字處理功能(目前只適用於Firefox 1.5以上、Mozilla 1.3以上、SeaMonkeyWebKitGoogle ChromeSafari)。

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)
  • Single-click fixing of common mistakes

wikEd can either be installed by pasting a small code snippet to your monobook.js page or locally as a Greasemonkey user script. For detailed installation instructions see the wikEd homepage.

處理特定字元

The English Wikipedia(and most others)are now encoded using the UTF-8 character set,which allows the use of many foreign language 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 foreign-language versions of the article. Therefore,it's very important to use an editor that does not mangle these characters or replace them with question marks. 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 and Microsoft Word support Unicode,for example. An extensive list of Unicode-supporting editors is available for Windows and 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 is used in your editor and any characters not included in this character set are replaced 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 making an edit to an article with special characters using a new editor,it's a good idea to use the "Show changes" button(next to "Show preview")to see exactly what changes your edit will make - 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.

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).

參見