如何在Vim中像Matlab一样在两行之间select?
How to select between two lines like Matlab in Vim?
在 Matlab 中,有一种方法可以在两个预定义的类型标记之间 select 编码。我想使用 ##
作为块标记在 Python 上复制相同的内容。例如,假设光标位于变量 y1
上的 Block 2
中:
## 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()
我想将以下块拉入我的寄存器
## 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)
============================================= ==
编辑 1:我搜索了整个 Whosebug,但找不到任何人提出类似的问题。其中大部分是如何 select 函数或 类 在 python 中。我知道这是可能的,因为我找到了一个可以执行此操作的插件,wmvanvliet/jupyter-vim(请参阅自述文件的第一部分以获取其工作视频)。但它是一个完整的 REPL,它使我的启动时间增加了 200 毫秒。
我相信有一种简单的 vim 方法可以做到这一点。我就是找不到
您可以使用
/^##
找到块的开始和结束位置。
如果你的光标在中间,你可以使用N
转到上一个命中(即块的开始),按v
进入可视模式,然后命中n
转到下一个块开始。由于您不想拉下一个块开始,因此您需要使用 k
向上移动一行(还有其他方法,但这很好用,因为无论如何块之间都有一个空行)。
综合起来:
/^##<CR>Nvnk
将 select 你光标所在的块。
如果输入的字符太多,您可以将其变成函数或宏。 Here 是关于如何将命令组合成宏的很好的教程。如果我们想制作一个宏并将其保存在寄存器 b 中(我猜是为了块?),我们可以这样做
qb/^##<CR>Nvnkq
并用@b
执行宏。
在 Matlab 中,有一种方法可以在两个预定义的类型标记之间 select 编码。我想使用 ##
作为块标记在 Python 上复制相同的内容。例如,假设光标位于变量 y1
上的 Block 2
中:
## 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()
我想将以下块拉入我的寄存器
## 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)
============================================= ==
编辑 1:我搜索了整个 Whosebug,但找不到任何人提出类似的问题。其中大部分是如何 select 函数或 类 在 python 中。我知道这是可能的,因为我找到了一个可以执行此操作的插件,wmvanvliet/jupyter-vim(请参阅自述文件的第一部分以获取其工作视频)。但它是一个完整的 REPL,它使我的启动时间增加了 200 毫秒。
我相信有一种简单的 vim 方法可以做到这一点。我就是找不到
您可以使用
/^##
找到块的开始和结束位置。
如果你的光标在中间,你可以使用N
转到上一个命中(即块的开始),按v
进入可视模式,然后命中n
转到下一个块开始。由于您不想拉下一个块开始,因此您需要使用 k
向上移动一行(还有其他方法,但这很好用,因为无论如何块之间都有一个空行)。
综合起来:
/^##<CR>Nvnk
将 select 你光标所在的块。
如果输入的字符太多,您可以将其变成函数或宏。 Here 是关于如何将命令组合成宏的很好的教程。如果我们想制作一个宏并将其保存在寄存器 b 中(我猜是为了块?),我们可以这样做
qb/^##<CR>Nvnkq
并用@b
执行宏。