说我有以下文字
word1 word2 word3 word4
,光标位于word2
和word3
之间。
word2
和word3
之间的多个空格的最快方法是什么?:s/ */ /g
但是,我认为可能会有更快的像diw
但是对于空格。
当光标位于w
word3
或2
或word2
上时,策略也会有效。
答案 0 :(得分:29)
这对我有用:
:s/\s\+/ /g
答案 1 :(得分:18)
ciw
然后退回到正常模式,虽然只有你在空间时它才会起作用。
答案 2 :(得分:11)
尝试用一个空格替换所有双重空格(重复零次或多次)。
:s/ \+/ /g
答案 3 :(得分:1)
我使用(绑定到热键)
i<enter><esc>kJ
i
- 插入模式
k
- 上一行
J
- 一起加入
无论光标在空白区域内还是在w
的{{1}}内,这都有效,并将光标放在刚加入的单词的开头。如果您希望它与word3
上的2
一起使用,只需将第一个word2
替换为i
。
答案 4 :(得分:0)
我会分两步完成这个步骤
答案 5 :(得分:0)
%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