[Vim] 初次見面,你好

學了 FileMaker 一陣子,有時候還會需要其他程式工具的輔助,暫時脫離 FileMaker,用不同的工具將問題做更好的處理,當然最後來是會丟回 FileMaker 做後續的應用,每一個軟體有他的擅長之處,今天要介紹的就是我最近學到的編輯器工具 – Vim

Vim 是 Unix 家族下功能強大的一個文字編輯器,由 Vi 演化而來,在 Vim 底下甚至可以不用透過滑鼠就可以操作文字編輯,只是各種指令對於初學者來說比較不容易適應,有一段不容易越過的初學學習曲線,但據說只要學會了以後,就會得到很大的好處。好的,那我們就來學習一下。(vi 與 vim 的指令整理

範例介紹

最近有機會學習到 Vim 這個工具,是因為看了 FileMaker Magazine 的這個影片 – Custom Function Database – Part 1

這個影片主要是想將 FileMaker 的各式 Custom Function 整理到自己設計的 Database 中做記錄、管理及應用,FileMaker Function 的一個大宗來源是 briandunning.com 網站,這個網站收集了幾百個以上的 Custom Function,Matt Petrowsky 以這個網站為例,示範如何擷取各個 Custom Function 的 ID 的方法。

螢幕快照 2017-12-24 下午8.33.03.png

這邊的 ID,指的是每一個函數在網站中對應的 ID,可以藉由這個 ID 去找到相對應的網頁,我們點入其中一個 Custom Function 來看會比較清楚,FixExcelImport ( value ) 的介紹網址是: briandunning.com/cf/2094

/cf/2094,指的應該就是在這個網站裡面第 2094 個 custom function,cf 指的就是 custom function,所以可以想像在 list 頁面,如果我們到網站的原始碼去看,會看到各個 Custom Function 的對應網址是這樣:

briandunning.com/cf/xxxx
briandunning.com/cf/xxoo
briandunning.com/cf/xoox
briandunning.com/cf/ooxx

所以,如果我們要把所有 Custom Function 對應的 ID 給抓取下來,我們可以去辨認 /cf/ 這樣的一個「記號」,然後抓取後方的數字,就可以達成了,用 Vim 可以輕鬆做到這件事情。

請 Vim 出場

因為 Vim 是 Unix 中自帶的編輯器,我用 Mac 可以自動將他呼叫出來,打開 iTerm 或終端機都可以,輸入:

vim -u NONE

進入 Vim 的操作介面

螢幕快照 2017-12-24 下午8.53.40.png

將原始碼讀入 Vim 中

在 Vim 有分瀏覽、編輯、跟指令三種模式,一開始進入為瀏覽模式,我們按 " : " 先進入指令模式,可以看到游標移動到最下方,這時候可以開始輸入指令

螢幕快照 2017-12-24 下午8.57.38.png

因為我們要讀入 briandunning.com 網站這網頁的原始碼,我們輸入以下的指令並執行

:read !curl -s http://www.briandunning.com/filemaker-custom-functions/recentlist.php

可以看到整個網頁的原始碼被讀到 Vim 裡面了

螢幕快照 2017-12-24 下午9.02.08.png

利用重複記號 /cf/,找出 ID

要進入 Vim 的指令模式,記得要先輸入 " : “,輸入下面指令並執行

:%!egrep -o '\/cf\/[0-9]+'

註:egrep 可以找出重複的部分,關於 egrep 的介紹螢幕快照 2017-12-24 下午9.19.00.png

去掉重複記號 /cf/

利用「取代」功能來去掉重複記號:/cf/

輸入 " : “進入指令模式,輸入下面指令並執行:

:%s/\/cf\///g

得到只剩數字 ID 的部分

螢幕快照 2017-12-24 下午9.24.32.png

排序

輸入 " : “進入指令模式,輸入下面指令並執行:

:sort n

螢幕快照 2017-12-24 下午9.26.42.png

瀏覽模式輸入大寫G,到最末一行,檢查到可能有重複的數字 ID,像是 2094, 2095 等等

G

螢幕快照 2017-12-24 下午9.28.20.png

去除重複 ID

:%!uniq

螢幕快照 2017-12-24 下午9.31.01.png

儲存成 txt 檔案

:w ~Desktop/briandunning_ids.txt

桌面上出現這個檔案,任務完成。

螢幕快照 2017-12-24 下午9.35.30.png

對「[Vim] 初次見面,你好」的想法

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s