我正在尝试选择多个不在连续块中的行。例如,我想在不选择第2行的情况下同时选择第1行和第3行:
1. this is line 1
2. this is line 2
3. this is line 3
最初,我认为这将是一项琐事任务,但在花了相当长的一段时间后谷歌无济于事,我意识到这可能不是一个简单/常见的任务。
非常感谢您的帮助。
修改 谢谢你的回复。我将提供一些有关我如何提出问题的详细信息。
我试图使用Tabularize:
来对齐像下面这样的块代码1. name1="Woof"
2. lucky_dog = lucky( "dog_one"= name1,
3. "dog_two"= name1 )
4. name2="Howl"
我希望它像这样对齐:
1. name1 = "Woof"
2. lucky_dog = lucky( "dog_one"= name1,
3. "dog_two"= name1 )
4. name2 = "Howl"
但是我不能这样做,因为Tabularize会考虑第三行,并将所有内容整合到:
1.name1 = "Woof"
2.lucky_dog = lucky( "dog_one"= name1,
3. "dog_two" = name1 )
4.name2 = "Howl"
我相信我可以想到一些正则表达式技巧来存档所需的结果,我刚开始想到我可以简单地选择第1,2,4行并使它们对齐。
然后我意识到这不是一件容易的事。
因此问题。
感谢您的回复!
答案 0 :(得分:12)
现在有一个出色的插件可以在Vim中实现多选:Vim-multiple-cursors:
答案 1 :(得分:9)
无法在vim中选择不同的文本块。
您可以做的是确定一个共同的,独特的模式,由您想要操作的行共享,并使用'global'ex-command或'g'来执行此操作:
:g/shared unique pattern/ex or normal command here
例如,要将行复制到寄存器,请说“a”寄存器:
:g/shared unique pattern/normal "Ayy
将它们粘贴到“ap
”在yy之前出现的大写字母告诉vim你要复制并将这些行附加到寄存器。
像sydill一样,如果你能告诉我们你想要用这些线做什么,那么我们可以更好地帮助你。
答案 2 :(得分:3)
This script似乎提供了您正在寻找的功能。