当前位置:  开发笔记 > 开发工具 > 正文

在VIM中删除光标后面或周围的单词

如何解决《在VIM中删除光标后面或周围的单词》经验,为你挑选了10个好方法。

我现在正VIM从TextMate 切换到.我发现^+W在INSERT模式下非常有用.但是,我不仅要删除光标前的单词,还要删除光标后面或周围的单词.

我做了一些谷歌搜索,但我唯一能找到的是^+W删除光标之前的字.



1> Amjith..:

正常模式:

daw : delete the word under the cursor    
caw : delete the word under the cursor and put you in insert mode 


将它想象为daw是有帮助的:删除一个单词和caw:改变一个单词.

2> 小智..:

I think it's just daw

daw - delete a word


@AK_迟到的响应,但如果你在一个单词的中间,`dw`将从光标删除到单词的结尾,而`daw`将删除整个单词和空格.`diw`将删除整个单词而不触及它周围的空格.
@REACHUS最初的字符'd`表示你'删除'.'a'是一种参数,指定删除包括分隔符.最后是'w',另一个`参数` - 如果你将 - 指定一个`word`单位将被删除.
`dw`和`daw`有什么区别?

3> Whaledawg..:

你应该做的是为一系列命令创建某个键的imap,在这种情况下,命令会使你进入正常模式,删除当前单词,然后让你回到插入:

:imap  diwi


":h diw"为很多有用的shrtcts!
使用的奖励积分.它在Normal模式下执行一个命令并直接跳回到Insert,所以像`imap diw`这样的东西也可以.它也不会创建一个撤销点,几乎总是这样做.
额外点与c交换d并删除尾随i ;-)

4> Andy..:

以下适用于普通模式:我同意Dan Olson的回答,即对于大多数删除,您应该处于正常模式.更多细节如下.

如果光标在单词内:
diw删除单词(不包括空格)
daw以删除单词周围(包括下一个单词前的空格).

如果光标位于单词的开头,只需按dw.

这可以乘以通常的移动数字,例如2w来向前移动2个单词,所以d2w删除两个单词.

插入模式^ w
在Vim中使用hjkl进行移动的想法是,将手放在主行上会更有效率.在一个单词的末尾^ w非常适合快速删除单词.如果你已进入插入模式,输入一些文本并使用箭头键结束在你反对主行哲学的单词的中间.
如果您处于正常模式并且想要更改单词,则可以简单地使用c(更改)而不是d(删除),如果您想要完全更改单词,并重新进入插入模式而无需i返回打字.



5> Nadia Alraml..:

你的意思是?

dw


迟到了,但是dw会从当前位置删除到单词的结尾,从开头删除整个单词使用diw或daw

6> Dan Olson..:

在插入模式下看起来没有任何内置方式,这就是问题所在.其他一些答案对于普通模式是正确的,并且指出可以创建自定义映射以在插入模式下添加功能.

老实说,你应该在普通模式下完成大部分删除操作.^ W很清楚,但是我不确定我是否可以想到我宁愿这样做而不是esc进入正常模式并拥有更强大的删除命令.

Vim以这种方式与许多其他编辑器(包括TextMate)截然不同.如果您有效地使用它,您可能会发现您不会在插入模式下花费太多时间.


"它看起来不像是一种方式......" - 有无数的方法可以做到这一点 - 没有*内置的方式,afaik.虽然我完全同意Dan关于插入模式与普通模式的说法,但您当然可以简单地定义插入模式映射,请参阅":help imap",如果您确实需要插入模式中的功能,则可以执行任何您想要实现的操作.

7> krmld..:

要删除两个空格之间的所有字符,请在正常模式下:

daW

要删除一个单词:

daw 



8> 小智..:

删除光标所用diw
的整个单词要删除光标所在的整个单词,ciw
如果你不想删除整个单词但要删除你所在的位置,请使用插入模式.dw/cw



9> 小智..:

不幸的是,插入模式没有这样的命令。在VIM中,要删除光标下的整个单词,可以viwd在NORMAL模式下键入。这意味着“ V isual块 nner W¯¯ ORD d elete”。使用大写字母W来包含标点符号。



10> 0xF..:

由于删除单词的方法有很多,因此我们来举例说明。

假设您编辑:

foo-bar quux

并在光标位于“栏”中的“ a”上时调用命令:

foo-bquux  # dw:  letters then spaces right of cursor
foo-quux   # daw: letters on both sides of cursor then spaces on the right 
foo- quux  # diw: letters on both sides of cursor
foo-bquux  # dW:  non-whitespace then spaces right of cursor
quux       # daW: non-whitespace on both sides of cursor then spaces on the right
 quux      # diW: non-whitespace on both sides of cursor

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有