作者siuoly (放空)
看板Editor
标题[vim ] 执行vim脚本中的部分区块程式码技巧
时间Mon Jul 19 14:13:32 2021
作法:
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://webptt.com/cn.aspx?n=bbs/Editor/M.1626675214.A.437.html
※ 编辑: siuoly (219.85.141.196 台湾), 07/19/2021 19:45:28
1F:推 mars90226: 推分享,不过应该是快捷键Alt+s? 07/20 14:14
对,第一个例子是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
3F:→ bootleq: 我现在都还在用 07/24 23:09
4F:→ siuoly: 谢谢分享 我估狗没找到,原来有人做过了 07/28 09:25