删除vim中的单词周围,取代前导空格而不是空格

时间:2016-05-20 13:09:51

标签: vim

如果我在vim中删除了带有daw的单词,那么在该单词之后它会消耗一个空白

如果我想在句子末尾添加单词,我该如何粘贴单词?

我经常在粘贴的字词和句号之间留下空格,例如hello.变为hellopasted_word .而不是hello pasted_word.

因此,缓冲区pasted_word<WHITESPACE>在插入之前应该变为<WHITESPACE>pasted_word。 我可以在必要时将尾随空格交换到前导空格吗?

修改

这就是我所做的:

|x|是正常模式下的光标位置。

Hello, on|l|y you can help.

daw

Hello, you can help.

Hello, you can hel|p|.

p

Hello, you can helponly .

4 个答案:

答案 0 :(得分:2)

为什么不 b h d a w ?它可能不具吸引力'因为它感觉不通用,但它有效

答案 1 :(得分:1)

daw删除后面的单词和空格

我认为最好使用特殊粘贴命令插入空格然后粘贴文本。这涵盖了行首和类似场景中的单词问题。

使用diw删除文字,使用特殊粘贴

的映射
:nnoremap sp a<space><esc>p

或者从要删除的单词前的空格开始daw,它会删除单词前面的空格。

:nmap  dbs bhdaw

现在dbs提供了您所需的行为

答案 2 :(得分:1)

我会选择viwohx。与bh不同,它也适用于单字母单词。

viw选择当前单词,o将光标移动到选区的开头,h,向左移动,然后按照您已知的方式x剪切。< / p>

现在的问题是,如果你的话在第一行。现在,我没有看到任何简单的解决方案,不需要更复杂的事情,例如下面的映射,我也在字词前加一个空格。

:nnoremap <expr> bds col('.')==1 ? 'viwx:let @"=" ".@"'."\<cr>" : 'viwohx'

答案 3 :(得分:0)

diw删除一个没有空格的单词