簡體   English   中英

可以強制使用確切(不是最大)行長的編輯器?

[英]Editors that can enforce exact (not maximum) line length?

有誰知道編輯器能夠強制使用確切的行長(如果允許按文件名/擴展名關聯最大行長,則是獎勵)?

我的確切行長是指編輯器將始終將填充的每一行保存為最大行長(由用戶定義)。 例如,如果文件的行長應為120個字符,則文件中的每一行都應為120個字符長,並在需要時用空格填充,然后加上相應的換行符。 當某人編輯一行時,如果行長達到最大長度,編輯器將阻止他們鍵入內容。

平台是Win XP / Vista。

我不知道可以處理這種類型的輸入的編輯器,但是,我可以說總體上來說,實際創建以這種方式工作的系統並不難。

Vim

:syn match Error /^.{,119}$/
:syn match Error /.{121,}/

這將導致所有長度!= 120的行都用純紅色背景突出顯示(在默認配色方案中)。

如果將此代碼(不帶前導冒號)寫入$VIMRUNTIME/syntax/foo.vim ,然后放置

:au BufRead,BufNewFile *.foo    set filetype=foo
:au Syntax foo  source $VIMRUNTIME/syntax/foo.vim

vimrc或通常的ftdetectsynload.vim位置中,則只要啟用了語法突出顯示功能,這些規則將自動應用於您在Vim中打開的任何*.foo文件。

(如果要添加到現有語法文件,請參見:h mysyntaxfile-add ,請參見:h rtp以獲得平台上默認的$VIMRUNTIME路徑。)

Zeus編輯器無法執行此規則,但是通過使用兩階段搜索和替換 ,可以將文件以半自動方式轉換為這種格式。

第一步:通過運行以下正則表達式搜索,確保所有行均超過120個字符,並替換以填充字符串。

 Search: (.*)\n
Replace: \1                              \n

注意:上面顯示的替換字符串應具有120個空格字符 ,而不僅僅是顯示的30個字符

第二步:使用此正則表達式搜索並替換在120個字符標記處的行。

 Search: ^(.{120,120})(.*)\n
Replace: /1\n

此時,文件中的所有行的長度將恰好為120個字符。

但是要確保這些長度不變,請確保禁用保存時修剪白色線條的Zeus選項;)

同樣,由於Zeus是可編寫腳本的,因此可以通過編寫一個簡單的宏腳本來運行這兩個操作來使該過程半自動化。

最后,宙斯可以選擇在觸發器上運行宏腳本,以便可以將宏添加到保存觸發器以使其成為半自動的。

我確信可以將任何可編寫腳本的編輯器配置為執行類似操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM