我在最新版本的 arch linux 5.5.6-arch1-1 上使用最新版本的 vim 8.2.148。
如果我想从光标复制到句子中的一个字母,我可以这样做,例如在这句话中,如果我的光标位于句子的开头并且我想猛拉直到复制的 c 我会给出命令yuc
,它将复制“如果我愿意”。
另一个同样有效的示例是从字符串的开头猛拉到此字符串中“屏幕截图”的第二个实例的开头:
/home/user/linux_config/script_yad/screenshots/change_screenshots_directory.sh
Run Code Online (Sandbox Code Playgroud)
但是,如果我的光标在这句话的开头,并且我想拉到并包括第二个句子,我该怎么做?
我认为这样的命令在结构上可能看起来像yt2"sentence"
虽然这个命令不起作用。
显然,使用字母 s 进行 yank 不会令人满意。
我希望在不使用视觉模式的情况下实现这一目标。
这是否需要插件,如果需要,是哪个?
这可以在没有插件的情况下完成吗?
您可以使用:
y2/screenshot<CR>
Run Code Online (Sandbox Code Playgroud)
或者,更简单地说:
y2/screen<CR>
Run Code Online (Sandbox Code Playgroud)
这将从光标位置猛拉,直到同一行上出现单词“screenshot”的第二个实例。
(注意<CR>
这里的意思是按“回车”键,完成搜索。)
如果您启用了增量搜索突出显示 ( set incsearch
),您将看到 Vim 突出显示第二个匹配项。
您似乎将角色的动作与句子的动作混为一谈。该t
议案(关于“直到”,这是t
不u
)只需要单个字符。拉到同一位置的另一种方法是y6ts
,但这需要您计算s
句子中的's 以查看“屏幕截图”的第二个实例开头的那个是该s
行的第 6 个。(有插件可以帮助解决这个问题。)
使用/
to 搜索(相对于t
、f
、T
或F
动作)时有一些注意事项,因为该/
搜索可以在不同的行上找到匹配项,如果发生这种情况,您的 yank 操作现在将获取包含换行符的内容,这在粘贴时可能会令人惊讶或意外它稍后。
最后,当要使用的动作不明显或您需要更大的灵活性时,使用视觉模式是获得视觉反馈并能够调整操作选择的好方法。
例如,您可以开始,vts
然后按;
重复该动作,直到到达第二个“屏幕截图”(事实证明是 5 次)。比没有突出显示的第 6 个更容易!y
到达那里后,您只需按下即可猛拉它。
或者v/screen<CR>
,然后您意识到它是下一个,按n
,然后您注意到首字母s
被选中,按h
向右移动一次,然后y
猛拉它。
(解决您的评论:上面的视觉模式解决方案优于使用鼠标 IMO。vts;;;;;y
是 9 次击键,但其中 5 次在同一个键上。另外,您的手没有离开键盘。而且您不必数字母在选择之前,您只能通过视觉帮助进行计数。相比之下,拖动鼠标更慢。)
如果您想研究可能有助于这种运动的插件,vim-easymotion是一个值得考虑的好插件。
归档时间: |
|
查看次数: |
365 次 |
最近记录: |