我在文件中有这样的一行
Run Code Online (Sandbox Code Playgroud)<echo>The app vendor is... app.server.name</echo>
将光标放在"服务器"中的"r"上,如何在不进入可视模式的情况下拉动"app.server.name",或者不必猜测要抽出的单词数量.
yiw 只会在这些时期之间拉扯这个词.
seh*_*ehe 11
:se iskeyword+=46
Run Code Online (Sandbox Code Playgroud)
现在yiw会做你想要的:)
正如Benoit所提到的,上述可能是你不想要的副作用1
在早期的答案中(vim:选择内部点)我描述了如何definte文本对象以选择内部点(如下所示).您可以使用它作为基础来定义一个类似的文本对象,选择包含点的单词:
这不需要对iskeyword设置进行任何更改 :)
Run Code Online (Sandbox Code Playgroud)xnoremap <silent>. f.oT.o xnoremap <silent>a. f.oF.o xnoremap <silent>i. t.oT.o onoremap <silent>. :<C-u>exec 'normal v' . v:count1 . '.'<CR> onoremap <silent>a. :<C-u>exec 'normal v' . v:count1 . 'a.'<CR> onoremap <silent>i. :<C-u>exec 'normal v' . v:count1 . 'i.'<CR>以下缓冲区内容的示例(字母上的光标
w):Run Code Online (Sandbox Code Playgroud)someobject.some-property-with-hyphens.SUB.otherproperty
- v.
some-property-with-hyphens.在视觉模式中选择- va.
.some-property-with-hyphens.在视觉模式中选择- vi.
some-property-with-hyphens在视觉模式中选择动作可以链接并接受
count:
- v..
some-property-with-hyphens.SUB.在视觉模式中选择- v2. 也选择
some-property-with-hyphens.SUB.在视觉模式- v2a.
.some-property-with-hyphens.SUB.在视觉模式中选择- v2i.
some-property-with-hyphens.SUB在视觉模式中选择您可以将运算符用作任何编辑命令的运算符:
- d. 结果是
someobject.SUB.otherproperty- ci.shortname 结果是
someobject.shortname.SUB.otherproperty- c2.get(" 结果是
someobject.get("otherproperty在光标开始的'点分隔标识符'中的位置无关紧要.请注意,为方便起见,所有可视模式映射都将光标定位在选择的末尾(因此您可以通过例如
%其他运动继续扩展选择).
1在这里看到一些背景信息:vim:选择内部点