如何解决如何在Vim中的Matlab之类的两行之间进行选择?
在Matlab中,有一种方法可以在两个预定义的类型标记之间选择代码。我想使用##
作为块标记在Python上复制相同的内容。例如,假设光标位于变量Block 2
的{{1}}中:
y1
我想将以下代码块放入我的寄存器中
## Block 1
import numpy as np
import matplotlib.pyplot as plt
## Block 2
x = np.linspace(0,np.pi*4,100)
y1 = np.sin(x) # <== My cursor is here
y2 = np.cos(x)
y3 = np.tan(x)
## Block 3
for i in range(5):
print(i)
plt.plot(x,y)
plt.show()
================================================
编辑1:我在整个stackoverflow上进行了搜索,但是找不到有人问类似的问题。多数是如何在python中选择函数或类。我知道这是有可能的,因为我找到了一个可以执行此操作的插件wmvanvliet/jupyter-vim(有关工作原理的视频,请参见自述文件的第一件事)。但这是对REPL的全面介绍,它使我的启动时间增加了200ms。
我敢肯定有一种简单的vim方法可以做到这一点。我只是找不到
解决方法
您可以使用
/^##
查找块的开始和结束位置。
如果光标位于中间,则可以使用N
转到上一个匹配点(即,块的开头),按v
进入可视模式,然后点击{{ 1}}转到下一个块开始。由于您不希望拉动下一个块的开始,因此需要使用n
向上移动一行(还有其他方法,但是这样做很有效,因为无论如何在块之间都有一个空行)。 / p>
将它们放在一起:
k
将选择光标所在的块。
如果要键入的字符太多,则可以将其设置为函数或宏。 Here是一个很好的教程,介绍了如何将命令组合到一个宏中。如果我们想制作一个宏并将其保存在寄存器b中(我想是用于代码块),我们可以做
/^##<CR>Nvnk
并使用qb/^##<CR>Nvnkq
执行宏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。