是否有移动到视觉选择开始或结束的动作?我知道 o ,而在视觉模式下,两者之间交替,但我需要能够准确选择开始。总体目标是用括号围绕视觉选择区域。
跟进:
根据评论,我能够使用以下宏实现此功能。我的想法是:
<ESC>
退出可视模式`>
转到上一次视觉选择的结尾a)
附加一个右括号<ESC>
退出插入模式`<
转到上一个视觉选择的开头i(
插入左括号<ESC>
再次退出插入模式。例如:
map \q <ESC>`>a)<ESC>`<i(<ESC>
根据另一条评论,我们有一个更简洁的解决方案:
map \q c()<ESC>P
答案 0 :(得分:80)
有两个相关的内置标记存储第一个和第二个的位置
当前缓冲区中最后一个视觉选择的最后一个字符。
要将光标移动到这些标记指向的位置,请使用
分别是命令`<
和`>
。
(请参阅:help `>
,:help `<
。)
答案 1 :(得分:19)
如果您只想围绕一个视觉选择,那么已经完成了工作,即由编写this plugin的{{3}}编写surround
的tim教皇。它用您喜欢的分隔符围绕单词或视觉选择。
选择您的视觉选择,说i like vim
点击S)
获取(i like vim)
或S(
获取( i like vim )
,将其更改为[i like vim]
键入cs]
(更改周边)并删除ds]
以最终获得i like vim
。
答案 2 :(得分:13)
使用圆括号围绕视觉选择区域的最简单方法&#34;是:
c
将视觉选择区域改为()
并将P
改回中间位置。 = c()<ESC>P
我建议用以下方法定义一个新的.vimrc可视模式命令(例如&#34; \ q&#34;):
:vmap \q c()<ESC>P
这种方法也适用于可视矩形区域(<C-V>
):它
put&#34;(&#34;&#34;)&#34;围绕每个街区
答案 3 :(得分:10)
如果你不能使用Surrond.vim,这是一种方法:
v
或V
进行视觉选择。<Esc>
。`>a)<Esc>
以在选择的最后一个字符后插入一个右括号。`<i(<Esc>
以在选择的第一个字符之前插入一个左括号。