在vim中删除带引号的单词
如果我有以下文字:在vim中删除带引号的单词,vim,Vim,如果我有以下文字: ['abc'] 和光标在第一个引号上 dw给了我[abc'] d2w给了我['] d3w给了我[ 因此,如何删除'abc'并保留[]这在一开始可能有点违反直觉,但对于这些类型的任务,您可以使用“搜索和替换” 在vim中,您正在查找:s,找到字符串“abc”并将其替换为空字符串 您应该使用类似于Don提到的内容。对于单行,有几个选项: “切割til”与ct]或“删除til”与dt]。更多信息可用(您可以向后删除、拖动til等) “删除查找”(通过目标删除):df' 可
['abc']
和光标在第一个引号上
- dw给了我
[abc']
- d2w给了我
[']
- d3w给了我
[
因此,如何删除
'abc'
并保留[]
这在一开始可能有点违反直觉,但对于这些类型的任务,您可以使用“搜索和替换”
在vim中,您正在查找:s
,找到字符串“abc”并将其替换为空字符串
您应该使用类似于Don提到的内容。对于单行,有几个选项:
['one','two','three']
,并且光标位于第一个'
,则可以使用dfspacebar或x2dw生成['two','three']
其他有用的线程:
d
f
空间的回答很好,但有些人可能会发现使用一种不管光标在单词上的位置如何都能工作的映射是有益的,比如:
nnoremap [something] :normal vf,oF'xx<CR>
要删除方括号内的所有内容,请使用da'
a'
text对象选择光标下由单引号包围的文本,包括引号本身
见:
“带引号的字符串”。从上一个引号中选择文本,直到下一个引号
这个文本对象非常智能,如果一行中有多个带引号的字符串,Vim将找出哪些对组成字符串。Vim还可以识别字符串中的转义引号(默认转义字符是\
,但即使您可以通过'quoteescape'
选项进行配置。)您的意思是:s/'abc'//,还是您在寻找其他内容?通常我只想删除列表中的元素;所以我可以有一个类似于['1'、'2'、'3']的列表,我试图找到一种最少按键的方法来删除列表中的一些元素。在这种情况下使用搜索是不好的,因为我必须输入更多的内容。使它不起作用的是字符串周围的引号,如果没有引号,一个简单的“dw”或“dwx”(表示逗号)将work@ggorlen,是的。我猜我的是一个dup,我在寻找解决方案时没有找到它,我喜欢di[
或di]
(记忆法,“方括号内删除”)这类东西。另外,只需一次按键,您就可以在不同的位置重复相同的命令,“点”
(这同样适用于ct]
和df'
等)。这正是我所需要的。我不知道'cut til'功能,我将在文档中介绍。谢谢只有当光标位于第一个字符处时,上面的答案才有效。如@filbranden所述,正确答案应为da。在其他情况下,它也会帮助你用圆点重复它,你的光标可以在引号内或上方的任何地方我同意——这是一个重复,它是规范的,所以我将投票作为一个重复关闭。尽管如此,df[space]
删除了后面的逗号和空格,因此很高兴知道这两个字符。OP@Thomas可以随意将复选标记移动到该答案。di]
也可以。
['one', 'two', 'three'] => ['two', 'three']
d i [