<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/main.xsl"?>
<b:blog xmlns="http://www.w3.org/1999/xhtml" xmlns:b="http://blog.othree.net"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://blog.othree.net http://blog.othree.net/blooog.xsd">
	<b:blogTitle>O3noBLOG</b:blogTitle>
	<b:blogDescription></b:blogDescription>
	<b:entries>
		<b:entriesMeta>
			<b:listType>c</b:listType>
			<b:listData listID="vim">vim</b:listData>
		</b:entriesMeta>

		<b:entry entryID="000500" baseName="auto-complete-on-vim">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-03-22</b:date>
				<b:time>23:23:38</b:time>
			</b:datetime>
			<b:category>vim</b:category>
			<b:title>vim的自動完成</b:title>
			<b:content>
				<b:summary>我食言了，上一篇文章發完後，我還是一直在搞vim的設定，基本上都是在弄自動完成的部份，我是很希望弄到像Visual Studio新版那樣，邊打字選項就會邊過濾，物件的結構程式也都會知道，要拿物件的屬性時，自動完成也能正確顯示選擇，就這樣弄了好一陣子，昨天晚上我終於成功了，不過又遇到syntax complete在windows會出錯的奇怪現象，一直搞到凌晨四點，連CLANNAD都忘了看還是沒有解決，一直到今天才成功迴避這個錯誤。 現在我vim關於自動完成相關的plugin有四個：supertab、snippetsEmu、OmniCppCompletion、autocomplpop。supertab是用Tab鍵觸發自動完成功能用的，本來要使用Omni Auto Completion要先按Ctrl+X再按Ctrl+O，很不方便。snippetsEmu則是用關鍵字完成一段預先設定的內容，舉例來說，我只要輸入"doc4s"，再按Tab就可以插入完整的HTML 4 Strict文件宣告，這功能可以減少很多重複的工作，像是if迴圈、for迴圈都可以用這個功能來快速完成。這兩個我之前都有介紹過，而剩下的兩個剛好就一個完成我的一個需求，OmniCppCompletion讓我可以在編寫物件導向程式時有更完整的自動完成功能，autocomplpop讓自動完成的選項在你輸入時就自動出現，並且隨著你輸入的內容不斷過濾選項。...</b:summary>
				<b:mainContent><p>我食言了，<a href="http://blog.othree.net/log/2008/02/29/vim-1/">上一篇文章</a>發完後，我還是一直在搞vim的設定，基本上都是在弄自動完成的部份，我是很希望弄到像Visual Studio新版那樣，邊打字選項就會邊過濾，物件的結構程式也都會知道，要拿物件的屬性時，自動完成也能正確顯示選擇，就這樣弄了好一陣子，昨天晚上我終於成功了，不過又遇到syntax complete在windows會出錯的奇怪現象，一直搞到凌晨四點，連CLANNAD都忘了看還是沒有解決，一直到今天才成功迴避這個錯誤。</p>

<p>現在我vim關於自動完成相關的plugin有四個：<a href="http://www.vim.org/scripts/script.php?script_id=182">supertab</a>、<a href="http://www.vim.org/scripts/script.php?script_id=1318">snippetsEmu</a>、<a href="http://www.vim.org/scripts/script.php?script_id=1520">OmniCppCompletion</a>、<a href="http://www.vim.org/scripts/script.php?script_id=1879">autocomplpop</a>。supertab是用Tab鍵觸發自動完成功能用的，本來要使用Omni Auto Completion要先按Ctrl+X再按Ctrl+O，很不方便。snippetsEmu則是用關鍵字完成一段預先設定的內容，舉例來說，我只要輸入"doc4s"，再按Tab就可以插入完整的HTML 4 Strict文件宣告，這功能可以減少很多重複的工作，像是if迴圈、for迴圈都可以用這個功能來快速完成。這兩個我之前都有介紹過，而剩下的兩個剛好就一個完成我的一個需求，OmniCppCompletion讓我可以在編寫物件導向程式時有更完整的自動完成功能，autocomplpop讓自動完成的選項在你輸入時就自動出現，並且隨著你輸入的內容不斷過濾選項。</p></b:mainContent>
				<b:extendContent><p>OmniCppCompletion雖然功能強大，不過還沒辦法做到和Visual Studio那樣即時反應，必須要藉由<a href="http://ctags.sourceforge.net/">ctags</a>來建立tags檔案紀錄資訊才可以用，說明文件有提到透過keybinding來建立tags檔案的方法，是讓方便性提昇不少，每寫完一個class的介面按一下就可以了，不過我還是希望能做到更即時的效果，之後還會繼續找相關的文件。OmniCppCompletion在安裝和使用上比較沒什麼問題，只是檔案多了點，又沒有用vimball封裝，在linux上要用命令列裝比較麻煩。</p>

<p>至於autocomplpop這個套件在安裝和使用上我就遇到比較多問題了，原本我除了特定幾個檔案類型有設定對應的omnifunc外，其他的都是設定用syntax complete，要使用syntax檔案的定義來做自動完成，不過這個function在windows不知道為什麼一直會出錯，加上這功能是自動觸發的，所以我在安裝測試的時後就不斷的看到錯誤訊息，如果我不設定omnifunc的話，也會一直看到omnifunc不存在的訊息，最後我只好自己寫一個nullcomplete.vim放在autoload目錄裡面。</p><pre><code>function! nullcomplete#Complete(findstart, base)
    if a:findstart
        return -1
    else
        return []
    endif
endfunc</code></pre><p>這個nullcomplete是直接回傳沒有相符的資料，接著把沒有檔案類型的omnifunc設成它，vimrc裡看起來像這樣：</p><pre><code>setl omnifunc=nullcomplete#Complete
autocmd FileType * setl omnifunc=nullcomplete#Complete
autocmd FileType python setl omnifunc=pythoncomplete#Complete
autocmd FileType javascript setl omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html setl omnifunc=htmlcomplete#CompleteTags noci
autocmd FileType css setl omnifunc=csscomplete#CompleteCSS noci
autocmd FileType xml setl omnifunc=xmlcomplete#CompleteTags
autocmd FileType php setl omnifunc=phpcomplete#CompletePHP
autocmd FileType c setl omnifunc=ccomplete#Complete</code></pre><p>除了這個問題之外，autocomplpop其實也是有看你輸入的東西來決定要不要執行自動完成，不過預設支援的只有ruby、scheme、(x)html這幾種檔案格式，其他的只會做檔案內的關鍵字自動完成（自動完成出現過的字），於是我做了一分給CSS用的設定，一樣放在vimrc裡就可以了：</p><pre><code>let g:AutoComplPop_Behavior = {
      \   'css' : [
      \     {
      \       'command'  : &quot;\&amp;lt;C-n&amp;gt;&quot;,
      \       'pattern'  : '\k\k$',
      \       'excluded' : '{|}|^$',
      \       'repeat'   : 0,
      \     },
      \     {
      \       'command'  : &quot;\&amp;lt;C-x&gt;\&amp;lt;C-f&amp;gt;&quot;,
      \       'pattern'  : (has('win32') || has('win64') ? '\f[/\\]\f*$' : '\f[/]\f*$'),
      \       'excluded' : '[*/\\][/\\]\f*$\|[^[:print:]]\f*$',
      \       'repeat'   : 1,
      \     },
      \     {
      \       'command'  : &quot;\&amp;lt;C-x&amp;gt;\&amp;lt;C-o&amp;gt;&quot;,
      \       'pattern'  : '\k$',
      \       'excluded' : '^$',
      \       'repeat'   : 1,
      \     },
      \     {
      \       'command'  : &quot;\&amp;lt;C-x&amp;gt;\&amp;lt;C-o&amp;gt;&quot;,
      \       'pattern'  : '\k*\: ',
      \       'excluded' : '^$',
      \       'repeat'   : 1,
      \     },
      \   ],
      \ }</code></pre><p>這樣是處理完我遇到的幾個問題，不過我要給遠端的linux主機套用時卻又遇到不一樣的問題，沒想到autocomplpop要vim 7.1才支援，7.0還不行，結果為了這個問題折騰一下午，最後晚上用ssh遠端把ubuntu從7.04升級，說實在的還蠻刺激的，只不過我不知道現在是變7.10還是8.04就是XD。</p>

<p>現在雖然可以用，不過其實系統還有點神秘，首先是根據autocomplpop.vim檔案內的預設，其實除了上面四種檔案以外，應該只有實體檔案名稱自動完成和關鍵字自動完成，但是我每次測試它都會執行omni auto completion，不然就是我搞錯ctrl+n的功能設定了。另外就是syntax completion在windows上搞不定的錯誤訊息，實在非常惱人，它錯就算了，最讓人搞不懂的是，有時候它丟出一堆錯誤後就正常運作了。另外我的nullcomplete雖然是回傳沒符合的，但實際上總是會跑出一個。</p></b:extendContent>
			</b:content>

			<b:comments commentCount="2"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000492" baseName="vim_1">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-02-29</b:date>
				<b:time>00:36:40</b:time>
			</b:datetime>
			<b:category>vim</b:category>
			<b:title>我現在的Vim設定</b:title>
			<b:content>
				<b:summary>這兩三天都沒在寫code，反而又再次弄起了Vim設定，一開始的目標是讓之前的Tab鍵自動完成的功能和snippet（想知道snippet是什麼的可以看看c9s的在 Vim 上使用 Slippery Snippet這篇文章，裡面有一段影片），雖然沒學過Vim的script，不過我還是下去翻snippetEmu的原始碼，結果發現到它會判斷有沒有安裝supertab這個plugin，我才發現原來supertab就是Tab鍵觸發自動完成，把它裝起來就達成我的需求，一下子省事不少。之後我又升級了snippetEmu到最新版，還裝了安裝新版snippetEmu所用的vbs檔所需要的Vimball外掛，另外之前就會用到的還有The NERD Commenter，這些東西已經能滿足我目前的大部分需求了，應該好一陣子不會修改設定，接下來需要記住多些指令才行。...</b:summary>
				<b:mainContent><p>這兩三天都沒在寫code，反而又再次弄起了Vim設定，一開始的目標是讓之前的<a href="http://blog.othree.net/log/2008/01/23/gvim-setting-complete/">Tab鍵自動完成</a>的功能和snippet（想知道snippet是什麼的可以看看c9s的<a href="http://c9s.blogspot.com/2007/06/vim-snippet.html" title="Textmate-Like ">在 Vim 上使用 Slippery Snippet</a>這篇文章，裡面有一段影片），雖然沒學過Vim的script，不過我還是下去翻<a href="http://vim.sourceforge.net/scripts/script.php?script_id=1318">snippetEmu</a>的原始碼，結果發現到它會判斷有沒有安裝<a href="http://www.vim.org/scripts/script.php?script_id=182">supertab</a>這個plugin，我才發現原來supertab就是Tab鍵觸發自動完成，把它裝起來就達成我的需求，一下子省事不少。之後我又升級了snippetEmu到最新版，還裝了安裝新版snippetEmu所用的vbs檔所需要的<a href="http://vim.sourceforge.net/scripts/script.php?script_id=1502">Vimball</a>外掛，另外之前就會用到的還有<a href="http://vim.sourceforge.net/scripts/script.php?script_id=1218">The <span class="caps">NERD</span> Commenter</a>，這些東西已經能滿足我目前的大部分需求了，應該好一陣子不會修改設定，接下來需要記住多些指令才行。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="2"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000486" baseName="gvim-setting-complete">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-01-23</b:date>
				<b:time>01:05:07</b:time>
			</b:datetime>
			<b:category>vim</b:category>
			<b:title>gVim設定完成</b:title>
			<b:content>
				<b:summary>最近幾天都在調整家裏和學校電腦的gVim設定，離上次在Windows上用Vim已經好一陣子了，這段時間都是用MadEdit來做為主要的編輯器，不過MadEdit對我來說還有幾個缺點，第一是同時開太多檔案會出錯，第二是預設背景色是白的，要整個重新設定很麻煩，所以最近又重新把Vim裝起來，調整他的設定檔，現在已經調到差不多了，其實還有一些目標想達成，不過還不算必要，而且還找不太到資料，所以就先暫緩。這次我是使用Cornelius的Enhanced Vim Package for Windows為基礎，多加入我之前的一些設定和這次找到的新設定，最後挑了一組還不錯的顏色，然後簡單修改一下，中間比較辛苦的是在字型設定的部份，還好Tiberius剛好發表了程設字型新歡 Inconsolata這篇文章，剛好切中我的問題所在，真是如有神助XD。 在功能的加強上，我找到讓Omni Auto Completion變得更簡單的方法了，之前也說過要Ctrl+x, Ctrl+n兩次組合鍵實在很麻煩，沒想到我在網路上搜尋的過程中，意外發現到這個設定檔，節錄自動完成的部份過來如下： &quot; Omni補完関連 &quot; $VIMRUNTIME/autoload/htmlcomplete.vimの645行目をコメントアウントしておくとhtmlの補完が小文字になる set completeopt=menu,preview,menuone &quot; 補完表示設定 &quot; TabでOmni補完及びポップアップメニューの選択 function InsertTabWrapper(is_shift) if pumvisible() return a:is_shift ? &quot;\&lt;C-p&gt;&quot; : &quot;\&lt;C-n&gt;&quot; endif let col = col('.') - 1 if !col ||...</b:summary>
				<b:mainContent><p>最近幾天都在調整家裏和學校電腦的gVim設定，離上次在Windows上用Vim已經好一陣子了，這段時間都是用<a href="http://madedit.sourceforge.net/">MadEdit</a>來做為主要的編輯器，不過MadEdit對我來說還有幾個缺點，第一是同時開太多檔案會出錯，第二是預設背景色是白的，要整個重新設定很麻煩，所以最近又重新把Vim裝起來，調整他的設定檔，現在已經調到差不多了，其實還有一些目標想達成，不過還不算必要，而且還找不太到資料，所以就先暫緩。這次我是使用Cornelius的<a href="http://c9s.blogspot.com/2007/09/enhanced-gvim-package-for-win32.html">Enhanced Vim Package for Windows</a>為基礎，多加入我之前的一些設定和這次找到的新設定，最後挑了一組還不錯的顏色，然後簡單修改一下，中間比較辛苦的是在字型設定的部份，還好Tiberius剛好發表了<a href="http://sbt.idv.tw/blog/tiberius/2008/01/21/793">程設字型新歡 Inconsolata</a>這篇文章，剛好切中我的問題所在，真是如有神助XD。</p>

<p>在功能的加強上，我找到讓Omni Auto Completion變得更簡單的方法了，之前也說過要Ctrl+x, Ctrl+n兩次組合鍵實在很麻煩，沒想到我在網路上搜尋的過程中，意外發現到<a href="http://relaxedcolumn.blog8.fc2.com/blog-entry-101.html">這個設定檔</a>，節錄自動完成的部份過來如下：</p><pre><code>&quot; Omni補完関連
&quot; $VIMRUNTIME/autoload/htmlcomplete.vimの645行目をコメントアウントしておくとhtmlの補完が小文字になる

set completeopt=menu,preview,menuone &quot; 補完表示設定

&quot; TabでOmni補完及びポップアップメニューの選択
function InsertTabWrapper(is_shift)
    if pumvisible()
        return a:is_shift ? &quot;\&lt;C-p&gt;&quot; : &quot;\&lt;C-n&gt;&quot;
    endif
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k\|&lt;\|/' &quot; htmlで補完できるように&lt;,/でもOmni補完
        return &quot;\&lt;tab&gt;&quot;
    elseif exists('&amp;omnifunc') &amp;&amp; &amp;omnifunc == ''
        return a:is_shift ? &quot;\&lt;C-p&gt;&quot; : &quot;\&lt;C-n&gt;&quot;
    else
        return &quot;\&lt;C-x&gt;\&lt;C-o&gt;&quot;
    endif
endfunction
inoremap &lt;tab&gt; &lt;C-r&gt;=InsertTabWrapper(0)&lt;CR&gt;
&quot; Shift-Tabはうまくいかないようだ
&quot; inoremap &lt;S-tab&gt; &lt;C-r&gt;=InsertTabWrapper(1)&lt;CR&gt;

&quot; CRでOmni確定&amp;改行
function InsertCrWrapper()
    return pumvisible() ? &quot;\&lt;C-y&gt;\&lt;CR&gt;&quot; : &quot;\&lt;CR&gt;&quot;
endfunction
inoremap &lt;CR&gt; &lt;C-r&gt;=InsertCrWrapper()&lt;CR&gt;</code></pre><p>這個設定可以使用Tab鍵來進行自動完成，如果只是直接想要輸入tab，那也可以輸入shift+tab，實際用起來真是想像以上的方便。不過Tab鍵在原來的Enhanced Vim中已經先指派給Snippets了，我是把這部份設定mark起來。</p>

<p><a href="http://www.flickr.com/photos/othree/2209556530/" title="Flickr 上 othree 的 工作環境設定中"><img src="http://farm3.static.flickr.com/2263/2209556530_1039643691.jpg" width="500" height="366" alt="工作環境設定中" /></a></p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000326" baseName="vim-7-1">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2006-05-11</b:date>
				<b:time>23:36:46</b:time>
			</b:datetime>
			<b:category>vim</b:category>
			<b:title>Vim 7</b:title>
			<b:content>
				<b:summary>Vim7正式版Release了，幾個新功能之前也介紹過了，現在幾乎都還沒有什麼rpm套件可以裝，所以建議還是先抓原始碼下來自己compile，別忘了./configure時要加上--enable-multibyte才能支援非英語的編碼。...</b:summary>
				<b:mainContent><p><a href="http://www.vim.org">Vim7</a>正式版Release了，幾個新功能之前也介紹過了，現在幾乎都還沒有什麼rpm套件可以裝，所以建議還是先抓原始碼下來自己compile，別忘了<code>./configure</code>時要加上<code>--enable-multibyte</code>才能支援非英語的編碼。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000322" baseName="vim-7-beta">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2006-04-08</b:date>
				<b:time>23:28:51</b:time>
			</b:datetime>
			<b:category>vim</b:category>
			<b:title>Vim 7 beta</b:title>
			<b:content>
				<b:summary>Vim前些日子發佈了公開測試的beta版，我也正式的來看有哪些新功能，沒想到有tab和自動完成（這裡叫Omni completion），經過一天的調整後終於兩個功能都可以用了。附圖如下，另外也可以抓我的rc檔回去，需要說得只有我設定Ctrl+N是產生新tab，Ctrl+\是切換tab（本來想用[和]的，不過[的部份放在rc檔裡面還有問題，所以乾脆做成單循環）。另外自動完成是Ctrl+X後Ctrl+O。...</b:summary>
				<b:mainContent><p><a href="http://www.vim.org/">Vim</a>前些日子發佈了公開測試的beta版，我也正式的來看有哪些新功能，沒想到有tab和自動完成（這裡叫Omni completion），經過一天的調整後終於兩個功能都可以用了。附圖如下，另外也可以抓我的<a href="http://blog.othree.net/log/2006/04/08/vim-7-beta/vimrc">rc檔</a>回去，需要說得只有我設定<strong>Ctrl+N</strong>是產生新tab，<strong>Ctrl+\</strong>是切換tab（本來想用<strong>[</strong>和<strong>]</strong>的，不過[的部份放在rc檔裡面還有問題，所以乾脆做成單循環）。另外自動完成是<strong>Ctrl+X</strong>後<strong>Ctrl+O</strong>。</p>

<p><img src="http://blog.othree.net/log/2006/04/08/vim-7-beta/vim7.png" alt="上有tab，下有自動完成" /></p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="2"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000139" baseName="vim">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2005-04-24</b:date>
				<b:time>00:01:49</b:time>
			</b:datetime>
			<b:category>vim</b:category>
			<b:title>vim</b:title>
			<b:content>
				<b:summary>最近在學，真是好物啊，我一開始只是為了找一個免費的文字編輯軟體支援各國編碼可以讓我取代EmEditor，也剛好我有打算學Linux系統，於是我看上了vim。確定要學vim後，我就買了本歐萊禮的精通vi，還在網路上找到了大家來學VIM（一個歷久彌新的編輯器）這篇教學，加上一些範例的設定，花了一個晚上（到四點），總算讓我的vim支援多國語系編碼，更讚的是他還會自動判斷，我還沒辦法讓EmEditor能做到這件事呢，我一開始是照piaip的設定，不過還是一直有些怪問題，後來是把fileencodings裡面我不會用到的編碼都砍掉，只留下utf-8、sjis、Big5之後才正常的。 既然要用vim，總不能只是讓它自動判斷編碼而已，當然他的異能也要好好研究研究，真不愧是指令式的編輯器，有很多功能都很有趣，其中我覺得最讚的是搜尋和取代可以直接用上regular expression，而且命令的語法和perl的一樣，搜尋就直接 / ，取代就是 s// ，對我來說算是很熟悉的東西，雖然我perl不是很強，不過也寫過一段時間的perl CGI。基本的編輯功能我大概都會用了，接下來比較需要習慣的大概是選取和複製的功能吧。然後我還想弄出好看一點的color scheme，或許網路上也會有其他人弄好的吧，我應該會先找找看。...</b:summary>
				<b:mainContent><p>最近在學，真是好物啊，我一開始只是為了找一個免費的文字編輯軟體支援各國編碼可以讓我取代<a href="http://www.emeditor.com/">EmEditor</a>，也剛好我有打算學Linux系統，於是我看上了<a href="http://www.vim.org/">vim</a>。確定要學vim後，我就買了本<a href="http://www.oreilly.com.tw/">歐萊禮</a>的<a href="http://www.oreilly.com.tw/product_unix.php?id=a066">精通vi</a>，還在網路上找到了<a href="http://www.study-area.org/tips/vim/">大家來學VIM（一個歷久彌新的編輯器）</a>這篇教學，加上一些範例的設定，花了一個晚上（到四點），總算讓我的vim支援多國語系編碼，更讚的是他還會自動判斷，我還沒辦法讓EmEditor能做到這件事呢，我一開始是照<a href="http://ntu.csie.org/~piaip/vim/win32-utf8.vim.html">piaip的設定</a>，不過還是一直有些怪問題，後來是把fileencodings裡面我不會用到的編碼都砍掉，只留下utf-8、sjis、Big5之後才正常的。</p>

<p>既然要用vim，總不能只是讓它自動判斷編碼而已，當然他的異能也要好好研究研究，真不愧是指令式的編輯器，有很多功能都很有趣，其中我覺得最讚的是搜尋和取代可以直接用上regular expression，而且命令的語法和perl的一樣，搜尋就直接 / ，取代就是 s// ，對我來說算是很熟悉的東西，雖然我perl不是很強，不過也寫過一段時間的perl <span class="caps">CGI</span>。基本的編輯功能我大概都會用了，接下來比較需要習慣的大概是選取和複製的功能吧。然後我還想弄出好看一點的color scheme，或許網路上也會有其他人弄好的吧，我應該會先找找看。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="2"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

	</b:entries>
</b:blog>
