[vim ] 執行vim腳本中的部分區塊程式碼技巧
作法:
nnoremap <m-s> vip:yank z <cr>:execute substitute( @z , '\n".\{-1,}\ze\n' ,
'' , 'g')<cr>
--> Alt + s 執行游標所在的段落程式碼
寫vim腳本的時候,要測試會用 :source %,執行整個文件腳本。
但我想要一次執行文件中個別段落的腳本。讓以下段落一,二分開執行。
echo "段落一"
echo 123
echo 123+456
" echo "this is a comment"
echo "Hello world"
echo "段落二"
for i in range(10)
echo i
endfor
//-----------------------------------
實行步驟:
1選取整個段落的文字
vip
2複製整個段落內文到register z當中
: yank z <Enter>
3執行register中,複製的內文
:execute @z <Enter>
3(改進) 內文中,有時候會有 註解 , (引號") 開頭的行,必須另外移除 註解的行,否則
後面接續的腳本 也會被註解
使用substitute()把註解的內文移除,再度執行code。
:execute substitute( @z , '\n".\{-1,}\ze\n' , '' , 'g') <Enter>
總結, 把所有步驟一次完成,快捷鍵Alt+s
nnoremap <m-s> vip:yank z <cr>:execute substitute( @z , '\n".\{-1,}\ze\n'
, '' , 'g')<cr>
另外補充: 執行文件當前行腳本快捷鍵,這也很實用。 (快捷鍵Ctrl + s )
nnoremap <c-s> :execute getline(".")<cr>
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.85.141.196 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Editor/M.1626675214.A.437.html
※ 編輯: siuoly (219.85.141.196 臺灣), 07/19/2021 19:45:28
推
07/20 14:14,
3年前
, 1F
07/20 14:14, 1F
對,第一個例子是Alt+s,第二個補充例子是Ctrl+s快捷鍵。我改回來了。
其實還有還可以用 其他方法做分界,不一定要連續行區段。 比如
"-------
執行分界內的code
"-------
還有C++還python也可以用類似方法分塊執行code。只是作法類似就沒寫了。
而且其實vscode就有這種功能了.... 唉
※ 編輯: siuoly (219.85.141.196 臺灣), 07/23/2021 21:29:08
※ 編輯: siuoly (219.85.141.196 臺灣), 07/23/2021 21:30:22
推
07/24 23:09,
3年前
, 2F
07/24 23:09, 2F
→
07/24 23:09,
3年前
, 3F
07/24 23:09, 3F
→
07/28 09:25,
3年前
, 4F
07/28 09:25, 4F
Editor 近期熱門文章
PTT數位生活區 即時熱門文章