删除vim中单词周围的内容,用前导空格代替单词后面的空格

删除vim中单词周围的内容,用前导空格代替单词后面的空格,vim,Vim,如果我在vim中删除一个带有daw的单词,它也会在该单词后使用一个空格 如果我想在句末添加单词,我如何粘贴单词 我经常在粘贴的单词和句号之间出现空白,例如hello。变成hellopasted\u单词。而不是hello粘贴的单词。 因此,在插入之前,缓冲区pasted_-word应该变成pasted_-word。 我是否可以在必要时将尾随空格替换为前导空格 编辑 这就是我所做的: | x |是正常模式下的光标位置 您好,您可以帮忙。 按daw 您好,您可以帮忙。 你好,你可以帮我。 按p: 您好

如果我在vim中删除一个带有
daw
的单词,它也会在该单词后使用一个空格

如果我想在句末添加单词,我如何粘贴单词

我经常在粘贴的单词和句号之间出现空白,例如
hello。
变成
hellopasted\u单词。
而不是
hello粘贴的单词。

因此,在插入之前,缓冲区
pasted_-word
应该变成
pasted_-word
。 我是否可以在必要时将尾随空格替换为前导空格

编辑

这就是我所做的:

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

您好,您可以帮忙。

daw

您好,您可以帮忙。

你好,你可以帮我。

p


您好,您只能提供帮助。

为什么不呢?它可能不吸引人,因为它让人感觉不一般,但它很有效

为什么不呢?它可能不吸引人,因为它感觉不通用,但它可以工作

daw
删除它后面的单词和空格

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

使用diw删除文本,使用映射进行特殊粘贴


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

daw
删除单词及其后面的空格

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

使用diw删除文本,使用映射进行特殊粘贴


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

我会选择
viwohx
。与
bh
不同,它还可以处理单字母单词

viw
选择当前单词,
o
将光标移动到选择的开始处,
h
,向左移动,然后如您所知进行剪切

现在的问题是,如果你的话在第一行。现在我看不到任何简单的解决方案不需要更复杂的东西,比如下面的映射,在这里我还为单词cut预加了一个空格

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

我会选择
viwohx
。与
bh
不同,它还可以处理单字母单词

viw
选择当前单词,
o
将光标移动到选择的开始处,
h
,向左移动,然后如您所知进行剪切

现在的问题是,如果你的话在第一行。现在我看不到任何简单的解决方案不需要更复杂的东西,比如下面的映射,在这里我还为单词cut预加了一个空格

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

diw
删除后面没有空格的单词

diw
删除后面没有空格的单词

我无法在本地vim(7.3版)上复制此内容。它在没有空格的情况下按预期工作。您使用的是什么版本的vim?我使用的是7.4,它是什么意思“按预期工作”?预期会出现什么结果?如果在单词前的空格中使用
daw
,则会得到所需的结果。即,字放入寄存器前的空格。你可以将它映射到另一个自定义映射哦,哇,我从来没有注意到!谢谢:-)请写下来作为回答。你在编辑中描述的是预期的行为。vim中的字符是:
一个单词由一系列非空白字符组成,用空格分隔。空行也被视为单词。
,因此单词后的空格将被复制,而不是单词前的空格。我无法在本地vim(版本7.3)上复制此内容。它在没有空格的情况下按预期工作。您使用的是什么版本的vim?我使用的是7.4,它是什么意思“按预期工作”?预期会出现什么结果?如果在单词前的空格中使用
daw
,则会得到所需的结果。即,字放入寄存器前的空格。你可以将它映射到另一个自定义映射哦,哇,我从来没有注意到!谢谢:-)请写下来作为回答。你在编辑中描述的是预期的行为。vim中的字符是:
一个单词由一系列非空白字符组成,用空格分隔。空行也被认为是单词。
,因此单词后的空格将被复制,而不是单词前的空格。解决了我的问题,类似于@sudo bangbang的答案。非常感谢。解决了我的问题,类似于@sudo bangbang的答案。非常感谢。但之前也没有空间。此空格可用于将单词cut粘贴回句子末尾,但前面没有空格。这个空格对于粘贴回句子末尾的单词cut很有用。
:nnoremap <expr> bds col('.')==1 ? 'viwx:let @"=" ".@"'."\<cr>" : 'viwohx'