發表文章

目前顯示的是有「emacs」標籤的文章

Emacs 的強項

 最近在測試及重新安裝 Debian 13 的系統,配合 Emacs 把系統設定檔安裝起來。 ssh 到遠端,直接在 emacs 下使用 C-d /ssh:foo@bar:~/ 就可以連到遠端 bar 系統,使用者 foo 登入其中,搭配 sudo 還可以就地把權限升上去,不用一直來回到終端機上設定參數。 Dired 和 eshell mode 就很好用了。連到遠端 Tramp 的幫助極高,還可以把遠端的圖片拉回來看。在系統安裝 emacs-eat 的話可以取得不錯的終端機操作手感。真正可以體會到「 Emacs 簡直就是操作系統」這一句話。除了 bash 這類 shell 的支援,也可以呼叫其他軟體來開啟檔案,以彌補其弱項;不用全部都需要完美的支援,只要恰如其份即可。 在 common lisp 的支援上有 slime 支援,它可以遠端開啟 swank server 連接,讓程式開發如在近端一般,如目前的 Debian 11 中 sbcl 版本不太支援新版本的 cffi 套件,但是在遠端開啟一個新版本的 sbcl 環境,使用 slime-connect 到指定的位置,slime 一樣可以建立起來。對於新系統的應用及開發有很大的幫助。也增加了許多新應用的想法。

自由軟體操作說明書

 Emacs   The Emacs Editor Keyboard Macros : 鍵盤巨集,在 Emacs 可以記錄鍵盤輸入的順序,方便重複的輸入及按鍵作用。  SLIME: The Superior Lisp Interaction Mode for Emacs :common lisp 開發環境 Common Lisp The Common Lisp Cookbook   Database Access and Persistence : 資料庫學習參考資料。   Mito :Mito 是另一個物件關係映射器,支援 MySQL、PostgreSQL 和 SQLite3 。   Awesome Common Lisp :蒐集 common lisp 可推薦的模組及應用程式。 Practical Common Lisp :實用 Common lisp,Common lisp 入門。 On Lisp :進一步的 Common Lisp 學習書。 ASDF: Another System Definition Facility : 於 common lisp 用於定義系統。  Maxima   Maxima Documentation :maxima 說明文件。 文件應用 PlantUML :圖表製作。 Pandoc :通用文件轉換器,轉換各種文件格式。 將常用的參考資料放在網路上,以方便查詢。

將 common lisp 放在 USB 隨身碟中

圖片
 在 Windows 使用環境中無法在未安裝 sbcl 的環境中使用 common lisp。在網路上有一此方便啟動 common lisp 環境的工具,例如 Roswell ,但是今天想要介紹另一款實用的方式 LispStick!   ListStick! 是用於 Microsoft Windows 的完整 Common Lisp 開發環境。它 包含 SBCL,Emacs,SLIME 和 Quicklisp 。且 它僅適用於其自己的安裝目錄。 對於在 USB 隨身碟上進行安裝,所以說 您將始終擁有Common Lisp 項目和 Quicklisp 安裝。 下載和安裝 下載及解壓縮以下檔案 Lispstick ZIP 。只需將 Lispstick zip 文件解壓縮到您選擇的磁碟上即可。 您最終會得到一些目錄,例如D:\ LispStick。 然後點擊其中包含的 RUN.BAT 檔案,以啟動 Emacs / SLIME / SBCL。 升級 LispStick 依 LispStick 網頁中,以上提到的 Emacs / SLIME / SBCL / Quicklisp  都可以各自升級到最新版本。請見 LispStick! 。 心得 在使用  LispStick 安裝在隨身碟中後,我可以在未安裝 SBCL 的電腦上使用 common lisp 及使用 Emacs。而調整軟體中的 RUN.BAT 可以配合實際使用需求,升級 Emacs 及 SBCL。它不會一開始就安裝很多花俏的模組,使用上單純很多。  壓力容器設計 各申機械設計工作室

壓寶計劃電腦軟體工具-123

圖片
 專有軟體 作業系統: Windows 10 專業版。作為啟用電腦系統設備之作業系統。 壓力容器強度計算軟體: PV Elite 。使用 ASME CODE 壓力容器建造法規內容,提供計算參數的設定及計算評估報告。 防毒軟體: 卡巴斯基安全軟體。以提供電腦程式操作及網路瀏覽之防護作用。 CAD: AutoCAD 。提供常用之 CAD 檔案編輯及出版使用。 自由/ 免費軟體 Office 系統: LibreOffice。用來編輯、審閱 MS Office 檔案文件。 排版系統: LaTex。用來編輯、排版必要的文書文件。 向量圖形編輯: Inkscape 。用來編輯及設計 SVG 等向量圖形。 圖形編輯: GIMP。用來編輯 png 及 jpeg 等圖形檔案。 文件編輯:Emacs。多功能文件編輯器。 common lisp : SBCL。專業的 common lisp 實現。 直播軟體: OBS Studio。用來錄製桌面及應用程式操作過程的工具。 電腦代數系統: Maxima 。用來公式推導及程式計算。 網頁瀏覽器: Firefox。一個開放原始碼的網頁瀏覽器。 影像編輯器: Shotcut。一個實用的影片編輯工具。 資料庫:sqlite3,一種檔案型資料庫。 在 emacs 使用 maxima-mode  並驗證程式計算結果: 碟形端板厚度計算-JIS   以上內容會依造時間及經驗增修。 壓寶計劃/ Ya-Bao Project    

Emacs Slime mode : slime-tramp 對應遠端檔案路徑

遠端使用 swank 伺服器 在 Emacs slime-connect 連接遠端 SBCL (common lisp) 。 M-x slime-connect  Host: localhost  Port: 4005 Close old connections first? (y or n) y Versions differ: nil (slime) vs. 2.31 (swank). Continue? (y or n) y slime-tramp 的用途 讓 SLIME 在遠端 Lisp 回報檔案路徑時,可以自動轉換成 TRAMP 格式路徑 (像 /ssh:remote-host:/path/to/file.lisp ), 這樣 Emacs 不需要額外的 sshfs 掛載就能直接打開遠端檔案。 不需要手動維護 slime-filename-translations 的 alist,適合「只用 ssh 連線,不掛載遠端檔案」的情境。   自動路徑轉換 當 Lisp 回傳例如: #P"/home/user/project/foo.lisp" Emacs 會自動轉成: /ssh:remote-host:/home/user/project/foo.lisp 相關參數 slime-translate-from-lisp-filename-function      從 Lisp 傳回路徑 → 轉換為 Emacs 可以理解的檔案路徑。 slime-translate-to-lisp-filename-function      從 Emacs 的檔案路徑 → 轉換成 Lisp 端可以理解的路徑。   這兩個通常由 slime-filename-translations 自動設定,不需要手動修改 在 Emacs init.lisp 設定遠端檔案修改儲存 (require 'slime) (slime-setup '( slime-cl-indent                       ...

批次修改檔名-Emacs Dired

圖片
將 pdf 檔中的圖像擷取圖像,並重新創建新的 pdf 檔 在 PDF 轉出的圖像的檔名,為 out-1-001.png ... out-10-100.png,其中每頁的圖像數量不一致。如果要把其載入 pdflatex 使用時,於 main.tex 中手動輸入 \includegraphics[width=\textwidth]{out-1-001.png}\newpage \includegraphics[width=\textwidth]{out-1-002.png}\newpage \includegraphics[width=\textwidth]{out-1-003.png}\newpage ... \includegraphics[width=\textwidth]{out-10-100.png}\newpage 由於圖像檔名沒有規則的順序,所以在手動加入圖像時要依目前的圖像導入。此時會花一些時間處理。 在 Emacs Dired 批次修改目錄中的檔名 將 Dired 進入要修改的目錄之中,鍵入( C-x C-q ), 啟用 wdired 模式,將所需修改的檔名修改完成後, 按下 wdired-finish-edit (快捷鍵 C-c C-c ) 確認修改。 如此輸入 main.tex 時就可以有規則性的使用圖檔名。

X2Go 中 Emacs GUI 中的中文輸入

圖片
 為何要用 X2Go 連接遠端伺服器? 使用 Debian/Linux 很久了,從接觸 Emacs 作為主要的編輯器之後,它就伴隨著我在工作上解決各稱問題。最近我使用的筆電在過了十年之後到了壽命的終結。而此時剛好接到一個案子要到客戶的公司進行認證會議,急需一個熟悉的作業環境。後來以網路進行遠端作業控制伺服器上的資料。以前是以 git 把所有的工作環境及作業資料對伺服器及外出用的筆電同步作業;就是把伺服器的資料同步到筆電之上,以避免網路斷線無法以遠端作業的狀態。然而現在行動網路越來越方便,及懶的去操作複雜的同步作業,而開始使用網路操作遠端。我使用的方式比較老套,首先使用 ssh X11 Forwarding 把 Emacs GUI 拉到我的筆電下作業,當然就會發生一件事,就是網路太慢, Emacs 啟動與操作都被深深的影響。這是 X window 的協議在網路上傳輸太多資料了,所以改用 X2Go 連接伺服器,它可以在網路上頻寬節省很多消耗。而在順利的連接上遠端後會發現,     在 Emacs GUI 下無法輸入中文,即無法啟動中文輸入法(我是用 Hime)。在本機上是可以的,卻一直在 X2Go 上無法使 Emacs GUI 上輸入中文。 在 Linux / X window 下輸入中文 Localization (正體中文)/Traditional Chinese (正體中文) 安裝 X2Go 字型 emacs中文问题(输入法无法呼出) 在試著使用很多方式去驅動 X window 下的中文輸入,許多日之後在 Libreoffice 、 gedit 及 urxvt 都可以輸入中文之後, Emacs GUI 就是無法使用 X window 下的 xim system 輸入中文。一直到最近,我查到網路上說明 Emacs GUI 要驅動 XIM 要加上 xfont-75-dpi 及 xfont-100-dpi 字型的支援才能驅動,我認為在伺服端已經達到了這個要求,而且在本機端可以直接輸入中文;所以卡了很久。在換了新的電腦後再次安裝 X2Go 時,這才發現,X2Go 安裝過程中可以增加 75-dpi 及 100-dpi 的字型。在重新加上這些字型之後,連上遠端的系統之後,就突然可以在 Emacs GUI 上輸入中文。   原...

emacs 中對於字元編碼的查詢指令

圖片
在網路上搜尋到的結果  指令一:使用 C-x 8 RET   步驟   按 C-x 8 RET。   Emacs 將在迷你緩衝區中顯示游標處字元的 Unicode 字元碼。    效果   此指令將打開一個迷你緩衝區,並在其中顯示游標處字元的 Unicode 字元碼。  指令二:使用 C-u C-x =   步驟   將游標移動到要查看字元碼的字元上。   按 C-u C-x =。   效果  此指令將在訊息區域中顯示游標處字元的 Unicode 字元碼。 比較  這兩種指令都可用於查看游標處字元的 Unicode 字元碼。但是, C-x 8 RET 指令會打開一個迷你緩衝區,而  C-u C-x = 指令會在訊息區域中顯示結果。  建議  如果您只想查看游標處字元的 Unicode 字元碼,建議使用  C-u C-x = 指令。此指令更簡單,並且不會打開一個迷你緩衝區。    各申機械計工作室 相關資料

Common lisp 連接微控制器:操作 8x8 LED 陣列

圖片
Common lisp 連接 Arduino UNO 微控制器,操作 8x8 LED 陣列  影片演示     各申機械設計工作室:電子電路實作  

Emacs org-mode 9.4 呼叫 (org-insert-structure-template)

 在 Emacs 中目前最吸睛的套件應該是 org-mode 了。它有著強捍的功能及穩定的品質,但是有個問題是,它幾次升級後都有些在向後支援的設定上令人苦惱。 這次發現的問題是,在 tty 環境下使用 Emacs 26.1 搭配 org-mode 9.4 會有一個狀況,就是要使用 'C-c C-, ' 呼叫 ( org-insert-structure-template ) 功能時, terminal 無法辨示 'C-,' 而送給 emacs ',' 訊號,所以它被解讀為 'C-c ,' (org-priority &optional ACTION SHOW)。 目前的解法: 使用 Emacs gui 程式。 在 .emacs.d/init.el 中加入 (require 'org-tempo) 就可以使用 <s TAB 產生 #+begin_src #+end_src 一來和較舊的版本行為一致,二來可以避開無法呼叫 ( org-insert-structure-template ) 的問題。   參考: org-priority and org-insert-structure-template key binding clash org mode: Structure Templates  

Emacs 與 PDF 檔案互動

 在開發壓力容器強度計算程式時常常需要對照參考文件,有很多文件都是 PDF 檔。要找某一個說明時,在向前跳轉 100 頁時常常會忘了剛才是在哪一頁。後來在網路上看到 Emacs 下有人開發了可以和 PDF 互動的模組 "Interleave",它可以和 org-mode 產生互動。讓人可以使用 org 記錄書籤位置,並可以寫下相關的筆記。 可以讓 org 和 PDF 互動的套件: interleave 另一個套件為 org-noter