如果我在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 .
答案 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
删除一个没有空格的单词