如何跳到视觉select的开始/结束?
是否有移动到视觉select的开始或结束? 我知道o而在视觉模式之间交替,但我需要能够精确select的开始。 总体目标是用圆括号围绕视觉select的区域。
基于评论,我能够使用下面的macros实现这个。 这个想法是:
- 退出可视模式
-   `<去前一个视觉select的结尾
-   a)附加一个闭合的括号
- 退出插入模式
-   `<去前一个视觉select的开始
-   i(插入一个开头的括号
- 再次退出插入模式。
例如:
 map \q <ESC>`>a)<ESC>`<i(<ESC> 
基于另一个评论,我们有一个更简洁的解决scheme,
 map \qc()<ESC>P 
	
 最简单的方法是用圆括号包围一个视觉选定的区域,然后插入()并将其放回到midle中。 
 di()<ESC>P 
我build议定义一个新的.vimrc可视模式命令(例如“\ q”):
 :vmap \q di()<ESC>P 
更新 :正如@duckworthd明智地指出,当选定区域的最后一个字符是行中的最后一个字符时,以前失败。
 新版本:用()将视觉select的区域切换到中间。 
 :vmap \qc()<ESC>P 
 这种方法也适用于直观的矩形区域( <CV> ):它在每个块线周围放置“(”“)” 
 有两个相关的内置标记存储当前缓冲区中最后一个视觉select的第一个和最后一个字符的位置。 为了将光标移动到这些标记指向的位置,分别使用命令`<和`> 。  (请参阅:help `> :help `< 。) 
 在Visual Selection单击o 。 它会将光标的位置改变为select的另一端。 然后O跳回来。 
 如果你只是想包围一个视觉select,那么已经完成了工作,即由编写这个插件的蒂姆·波普(Tim Pope)编写的“ surround 。 它用你喜欢的分隔符围绕着文字或视觉select。 
 select你的视觉select,比如i like vim命中S)得到(i like vim)或S(得到( i like vim ) ,改变这个[i like vim]typescs] (改变周围),并删除ds]最后让i like vim 。 
如果你不能使用Surrond.vim,这是一个办法:
-  用v或v做视觉select。
-  用<Esc>离开它。
-  键入`>a)<Esc>在select的最后一个字符后插入一个右括号。
-  input`<i(<Esc>在select的第一个字符之前插入左括号。