我有一个包含一堆城市名称的数据源,但混合使用的是很多不应该存在的州名缩写。
在VIM中是否有办法删除每行而不是包含两个或更少的字符?
答案 0 :(得分:6)
这是:
:g/^\a\{1,2}$/d
:global
命令(默认为%
范围,整个缓冲区)的每一行;执行的命令是:delete
。.
匹配,以将此值限制为1或2,使用\{n,m}
multi。这仍然需要通过^
和$
锚定到行的开头和结尾,以便其他字符不会匹配。哦,如果您还想删除完全空行,请将其更改为.\{,2}
。有关详细信息,请参阅:help /\{
。.
将匹配任何字符,即空格。为避免不必要的匹配,最好尽可能地限制它。如果您的州缩写只是字母,则可以使用\a
原子而不是.
可用的字符类从:help /\i
的帮助开始。