麥誠之工作效率回顧週記—第 8 期—Sublime Text 文字處理大法(二)每行一個遊標進行多行同步文字處理
今期的 Sublime Text 快捷鍵主題是每行一個遊標的 CTRL+SHIFT+L (Mac 的 CMD+SHIFT+L)。
和上一期的 CTRL+D 不同。這招是當每行都有相同的模式,但又沒有任何相同的文字供我們使用 CTRL+D 或 ALT+F3 時,便可以使用這招建立一行一個遊標。
我們可以選擇需要處理的行,然後按 CTRL+SHIFT+L,就可以將這多行的選取範圍變成一行一個遊標。這樣,只要我們左右操作,便可以多行一併移動或一併增加刪除文字。配合上 CTRL+左/右及 HOME/END 鍵,可以整個詞語地移動。
其實,我們的思維是應以詞語作為移動單位的。這些多行相同的模式,每行的詞語空間應相同或部份相同,我們可以以此作為定位。而每行就算相同模式,也會因應其內容文字長短不一,所以要左右移動時,更方便的會是配合 CTRL 做詞語間跳動。
CTRL+SHIFT+L 將每行都分出一個遊標
第一個例子:假設我們有一個列表,常見的一種操作是在每行的開頭加上一些列點符號,例如 –, * 等。或者加上 1., 2., 3. 等作為有序列表。
這樣可以通過選擇這幾行,再按 CTRL+SHIFT+L分拆至一行一個遊標,按 HOME 移到每行最前面,便可以方便地多行批量加入文字或標記了。
Arithmetic 自動數數字替換
而如果想每行有數字遞增遞減等,例如有序列表或年份的排序等。這時可以配合 Sublime Text 內置的 Arithmetic 功能。選擇所有的數字,然後按 CTRL+SHIFT+P 打開指令框,選取 Arithmetic(由於是 A 字頭,所以一般會是第一或第二個選項)。
這個 Arithmetic 功能可以將選擇的數字進行運算。例如加減乘除配上 x 及 i 兩個變數,x 是所選擇原有的值,i 是 0—N 的遞增整數。
要製作基本的 1—N 列表,我們可以選入 i+1,這樣便可以有 1., 2., 3. 等有序列表。
又例如,如果想逐個值 +1/-1 等,可以輸入 x+i 或 x-i,這方便一些年份遞增遞減的整理,如下圖的文字,一開始從只有一年的網址,通過複製每行,再在每行開頭輸入用來下載檔案的指令,及將年份替換成逐年遞減。
例子:批量清理每行資訊
再示範一個例子,這是我從澳門天文台上找到的天氣 API 的狀態對照表。假設我只保留中文資訊,及以冒號相隔,則可以:
- 先按 CTRL+A 全選,
- CTRL+SHIFT+L 分開遊標,
- 再按 HOME 統一定位,
- 再 CTRL+右 到中文後面,
- 按 SHIFT+END及刪除 就可以批量將所有中文字後的字符都刪除。
過程中如果左右移動錯誤,例如在英文詞語間,由於詞語量不一而左右移動出差位移,則可以再按 HOME 重新定位。
使用了 CTRL+D、ALT+F3、CTRL+SHIFT+L 加上詞語間移動,便可以方便在不同近似模式的文字間批量輸入或替換文字,加上 Arithmetic 數數字替換,便能應付各種日常工作遇到的多行批量處理難題。
— 麥誠 Makzan,2021-11-29。
我是麥誠軒(Makzan),除了正職外,平常我要麼辦本地賽與辦世界賽,要麼任教編程與網站開發的在職培訓。現正轉型將面授培訓內容寫成電子書、網上教材等,至今撰寫了 7 本書, 2 個視頻教學課程。
如果我的文章有價值,請訂閱贊助我持續創作分享。