我正在尝试学习VI / VIM。我想知道如何将文本从光标中删除到文件中的其他位置。我知道如何删除一行(dd)和多行(5dd)以及一行(d $)的结尾,但不是,例如,从光标到下一行的中间或下一行的中间两三行。
感谢您的任何提示。 干杯!
答案 0 :(得分:2)
您可以在d
之后使用任何动作。例如,要删除两个单词,您可以执行d2w
。或者要删除左侧的10个字符,您可以执行d10h
,或删除下两行,执行d2j
。对于像“删除下一行中间”这样更复杂的内容,我通常会v
进入选择模式,使用hjkl选择我需要的内容,然后点击d
将其删除。如果您执行阻止选择模式Ctrl+v
,则可以选择需要删除的阻止并点击d
。希望有所帮助。
答案 1 :(得分:1)
你是什么意思"中间"?
您使用d{motion}
删除,其中包括:
d5w - delete the next 5 words
d/test - delete up to the word test
见
:help d
:help motion
和帮助中链接的motion.txt(也在线http://vimdoc.sourceforge.net/htmldoc/motion.html)
答案 2 :(得分:0)
我曾经有过vi宏来删除标记。例如使用ma
制作标记a,然后将光标放在您想要的位置:
mb'a"ad'b
将标记b并从标记a到b删除到缓冲区' a'
mb'a"ay'b
将复制(不删除)
"ap
会收回文字。
(从记忆中这是基于整行的,而不是"在一条线上的位置")