使用AltSearch格式化Kindle讀書筆記

2022-07-05 11:42:10 字數 1984 閱讀 5337

altsearch

是libreoffice writer的乙個用於自動化執行複雜文字替換操作的擴充套件,能夠在不需要複雜程式設計的條件下進行一些文件格式的手動與批量轉換和調整。該擴充套件除了支援普通文字與正規表示式的查詢與替換外,還能夠進行文字與段落樣式的匹配與替換,這是其他的排版軟體,包括微軟的office,所不具備的。利用這些功能,將其寫為簡單的批處理指令碼,就可以自動地格式化檔案,滿足常見的學習與工作需求,大大提高工作效率。本文以格式化由kindle 匯出的筆記為例,介紹altsearch的基本使用方法。

由kindle ipad版匯出的芝加哥格式的筆記直接存為libreoffice writer檔案,其格式基本與純文字無異,並不適合結構化的瀏覽或發布為豆瓣筆記。所以,需要對文字格式進行調整。對此,首先在libreoffice writer中點選綠色望遠鏡按鈕,開啟altsearch對話方塊:

然後依次執行如下步驟:

搜尋「筆記」並刪除後面的(原版書)頁碼:

將所有段落設為「quotations」樣式:

將所有以「筆記」開頭的段落設為「text body」樣式:

上述步驟手動操作起來比較繁瑣,我們可以利用altsearch的批處理模式將其寫為指令碼。點選altsearch對話方塊中的「batch」按鈕:

在如下開啟的批處理模式對話方塊中點選「edit」,開啟文字編輯器編輯指令碼。需要注意的是,如果是第一次執行altsearch,點選「edit」後會提示使用什麼編輯器進行編輯,直接輸入編輯器的命令名確認即可(在linux下可以使用kate,在windows下用notepad)。

然後,將下面的指令碼拷貝到檔案末尾「[end]」的前一行即可。

[name] process the selected kindle notes in chicago format

[parameters] msgoff regular currselection

[find]^標註\(.*\)\s*-\s*第\s*\d+\s*頁·

[replace]

[command] replaceall

[find]^(筆記\s*-\s*)第\s*\d+\s*頁·

[replace]\1

[command] replaceall

[find]位置\s*(\d+)\s*\p

[replace]p\1

[command] replaceall

[find].*

[replace]\p

[command] replaceall

[find]^\s*筆記

[replace]\p

[command] replaceall

可以看出,這個指令碼的語法非常簡單:方括號中的單詞表示需要執行的命令,括號之後則為該命令執行所需的引數。目前用到命令有:

find:指定待查詢的文字或正規表示式。

replace:指定需替換的文字或樣式

command:指定需要執行的命令。replaceall則表示對所有匹配的文字執行替換。

更多altsearch的功能可以查閱其說明書。

接下來,點選「refresh」鈕,則可以看到剛才新新增進去的指令碼功能:

這時,在libreoffice writer選中所有需要處理的文字,在altsearch對話方塊中選中需要執行的指令碼功能,點選「execute」,便可以完成自動化處理工作。最後,根據個人需要,可以再手動設定kindle圖書中各個章節的標題樣式。至此,就可以得到乙份漂亮的讀書筆記了。

格式化,強調 數值格式化

聚合函式返回的的數值型別的值有個特點就是沒有被格式化。通過前面的帶 sum 聚合函式的示例,我們可以看到這一點 注意合計值 命令,或者在物件檢視器中選中 displayformat 屬性。在上節的示例中,格式化操作是針對一物件或物件內的表示式,在物件內僅有乙個表示式時它還能正常工作,不過當物件內不有...

python 格式化和format格式化

格式 name flags width precision typecode name 可選,用於選擇指定的key flags 可選,可提供的值有 右對齊,整數前加正號,負數前加負號 左對齊,正數錢無符號,負數前加負號 空格 右對齊 正數前加空格,負數前加負號 0 右對齊,正數前無符號,負數前加負號...

format格式化的使用

說明 format 通過 來替換 進行格式化,叫做佔位符 形式的格式化,是從c語言繼承過來的,printf style 字串格式化語法 1,s i love s.format python 會列印 i love python 2,s i love i am s.format python 18 會列...