vim - 如何...猛拉 util 短语

vim - 如何...猛拉 util 短语

我在最新版本的 arch linux 5.5.6-arch1-1 上使用最新版本的 vim 8.2.148。

如果我想从光标复制到句子中的一个字母,我可以这样做,例如在这句话中,如果我的光标位于句子的开头并且我想复制直到副本的 c 为止,我会发出命令yuc,这将复制“如果我想”。

另一个同样有效的示例是从字符串的开头拉到该字符串中第二个“screenshots”实例的开头:

/home/user/linux_config/script_yad/screenshots/change_screenshots_directory.sh

但是,如果我的光标位于这句话的开头,并且我想拉动直到并包括该句子的第二个实例,我该怎么做?

我认为这样的命令在结构上可能看起来像这样,yt2"sentence"尽管该命令不起作用。

显然使用字母 s 来拉取不会令人满意。

我希望在不使用视觉模式的情况下实现这一目标。

这是否需要插件,如果需要,是哪个?

这可以在没有插件的情况下完成吗?如何实现?

答案1

您可以使用:

y2/screenshot<CR>

或者,更简单地说:

y2/screen<CR>

这将从光标位置拉出,直到同一行上出现第二个单词“screenshot”。

(注意,<CR>这里的意思是按“返回”键,完成搜索。)

如果您启用了增量搜索突出显示 ( set incsearch),您将看到 Vim 突出显示第二个匹配项。

你似乎把这个动作混为一谈了特点将动议定为一句话。动作t(对于“until”,it'st和 not u)仅需要一个字符。拉到同一位置的另一种方法是y6ts,但这需要您计算s句子中的 ,以查看“screenshot”第二个实例开头的那个是s该行的第六个。 (有一些插件可以帮助解决这个问题。)

/使用搜索(相对于tf或动作)时有一些注意事项,因为搜索可以在不同的行上找到匹配项,如果发生这种情况,您的复制操作现在将获取包含换行符T的内容,这在粘贴时可能会令人惊讶或意外稍后再说。F/

最后,当要使用的动作不明显或需要更多灵活性时,使用视觉模式是获得视觉反馈并能够调整操作选择的好方法。

例如,您可以从 开始vts,然后按;重复该动作,直到到达第二个“屏幕截图”(结果是 5 次。)比数第六个(没有突出显示)更容易!到达那里后,您只需按下即可y将其拉出。

或者v/screen<CR>,然后您意识到这是下一个,按n,然后您注意到第一个字母s已被选中,按h向右移动一次,然后y将其拉出。

(针对您的评论:在我看来,上述视觉模式解决方案优于使用鼠标。vts;;;;;y需要 9 次击键,但其中 5 次在同一键上。此外,您的手还没有离开键盘。而且您不必数字母相比之下,在选择之前,您只能通过视觉帮助进行计数。)

如果您想研究一个可能有助于这种运动的插件,vim-easymotion是一个值得考虑的好问题。

相关内容