Yank单词仅按句点分隔

时间:2011-10-27 09:27:44

标签: vim

我在文件中有这样的一行

<echo>The app vendor is... app.server.name</echo>

将光标放在“服务器”中的“r”上,如何在不进入可视模式的情况下抽出“app.server.name”,或者不必猜测要抽出的单词数量。

yiw只会在句点之间拉出这个词。

2 个答案:

答案 0 :(得分:20)

Byt<

B(让你到达标点符号的开头)

yt<(向前猛冲,但不包括“&lt;”)。

答案 1 :(得分:11)

1。快速而肮脏:在“单词”匹配中包含点

 :se iskeyword+=46

现在 y i w 会做你想做的事情:)

2。正确的解决方案:定义文本对象

正如Benoit所提到的,上述可能是你不想要的副作用 1

In an earlier answervim: select inside dots)我描述了如何对文本对象进行definte以选择内部点(如下所示)。您可以使用它作为基础来定义一个类似的文本对象,用于选择包含点的单词:

这不需要对iskeyword设置进​​行任何更改 :)

<子>

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 上的光标):

someobject.some-property-with-hyphens.SUB.otherproperty
     
      
  • v 在视觉模式中选择some-property-with-hyphens.
  •   
  • v a 在视觉模式中选择.some-property-with-hyphens.
  •   
  • v i 在视觉模式中选择some-property-with-hyphens
  •   
     

动作可以链接并接受count

     
      
  • v 在视觉模式中选择some-property-with-hyphens.SUB.
  •   
  • v 2。 在视觉模式中选择some-property-with-hyphens.SUB.
  •   
  • v 2 a 在视觉模式中选择.some-property-with-hyphens.SUB.
  •   
  • v 2 i 在视觉模式中选择some-property-with-hyphens.SUB
  •   
     

您可以将运算符用作任何编辑命令的运算符:

     
      
  • d 产生someobject.SUB.otherproperty
  •   
  • c i 短名称会产生someobject.shortname.SUB.otherproperty
  •   
  • c 2 get(“结果为someobject.get("otherproperty
  •   
     

与光标一起开始并不重要。请注意,为方便起见,所有可视模式映射都将光标定位在选择的末尾(因此您可以通过例如%和其他动作继续扩展选择。)


1 在此处查看一些背景信息:vim: select inside dots