%s/\(\w\)\s\+\(\w\)/\1 \2/g
% - global
s - search
\( - escape (
\w - (any letter, digit)
\) - escape )
\(\w\) - remember letter/digit before space as \1
\s - whitespace
\+ - escape +
\s\+ - 1 or more whitespace space
\(\w\) - remember letter/digit after space(s) as \2
/ - replcae with
\1 - remembered last letter/digit before space
' ' - space character here - single space
\2 - remembered first letter/digit after white space(s).
/ - end of replace
g - globally
8条答案
按热度按时间1l5u6lss1#
这对我很有效:
:s/\s\+/ /g
xxslljrj2#
ciw
,然后退出到正常模式,尽管只有在空间上才有效。hfwmuf9z3#
请尝试将所有双空格(重复零次或多次)替换为单个空格。
ttp71kqs4#
我使用(绑定到热键)
i
-插入模式k
-向上一行J
-将行连接在一起无论光标在空格内还是在
word3
的w
上,都可以使用此方法,并将光标放在刚刚连接的单词的开头。如果您希望它与word2
上的2
一起使用,只需将第一个i
替换为a
。afdcj2ne5#
cqoc49vn6#
我会分两步完成
1.$ //游标移至行尾的空白处
a7qyws3x7#
在3次击键中,将此添加到您的
init.vim
(neovim)或.vimrc
(vim):现在,在NORMAL模式下,您可以使用“deleteirrelevantspace”替换为单个空格,使用“deleteallspace”删除所有空格。
这适用于当前或下一个空格块。不幸的是,它不能与点
.
操作符重复。6g8kf2rb8#
如果您正在编辑word2右侧第二个空格上的
dt<nextchar>
,则可以使用dtw
。