【问题标题】:Sublime Text 3: How to do multi-line selection that excludes blank lines?Sublime Text 3:如何进行排除空行的多行选择?
【发布时间】:2017-05-27 22:36:45
【问题描述】:

我在Stata中有一些脚本如下:

* 1. count of firms in each bin
grouplabs Inear_dist_km_0_10 Inear_dist_km_10_30 Inear_dist_km_30_60 Inear_dist_km_60_100 Inear_dist_km_100_150 Inear_dist_km_morethan150, groupvar(Inear_dist_km_gr) emptylabel(empty)
graph hbar (count) if Inear_dist_km_gr !=1, over(Inear_dist_km_gr) name(n1)

* 2. count of firms in each bin (bigger bins)
grouplabs Inear_dist_km_0_20_v2 Inear_dist_km_20_40_v2 Inear_dist_km_40_60_v2 Inear_dist_km_morethan60_v2, groupvar(Inear_dist_km_v2_gr) emptylabel(empty)
graph hbar (count) if Inear_dist_km_v2_gr !=1, over(Inear_dist_km_v2_gr) name(n2)

* 3. GGK firm level bins
grouplabs Inear_dist_km_GGK_0_10 Inear_dist_km_GGK_10_50 Inear_dist_km_GGK_morethan50, groupvar(Inear_dist_km_GGK_gr) emptylabel(empty)
graph hbar (count) if Inear_dist_km_GGK_gr !=1, over(Inear_dist_km_GGK_gr) name(n3)

我需要在每一行的末尾添加字符;,而不是在每个脚本之间的空白行中。我尝试了拆分为行的技巧,以在每行的末尾获取多个光标,但选择还包括其间的空行。这导致

* 1. count of firms in each bin;
grouplabs Inear_dist_km_0_10 Inear_dist_km_10_30 Inear_dist_km_30_60 Inear_dist_km_60_100 Inear_dist_km_100_150 Inear_dist_km_morethan150, groupvar(Inear_dist_km_gr) emptylabel(empty);
graph hbar (count) if Inear_dist_km_gr !=1, over(Inear_dist_km_gr) name(n1);
;
* 2. count of firms in each bin (bigger bins);
grouplabs Inear_dist_km_0_20_v2 Inear_dist_km_20_40_v2 Inear_dist_km_40_60_v2 Inear_dist_km_morethan60_v2, groupvar(Inear_dist_km_v2_gr) emptylabel(empty);
graph hbar (count) if Inear_dist_km_v2_gr !=1, over(Inear_dist_km_v2_gr) name(n2);
;
* 3. GGK firm level bins;
grouplabs Inear_dist_km_GGK_0_10 Inear_dist_km_GGK_10_50 Inear_dist_km_GGK_morethan50, groupvar(Inear_dist_km_GGK_gr) emptylabel(empty);
graph hbar (count) if Inear_dist_km_GGK_gr !=1, over(Inear_dist_km_GGK_gr) name(n3);

如何从选择中排除空行,​​以便只有包含字符的行最后才会有;?感谢您的帮助。

【问题讨论】:

    标签: sublimetext3


    【解决方案1】:
    1. 如果您确定您的空白行确实是空白且未填充空白字符,请按 ctrl+H 使用正则表达式替换,搜索 (?<!^)$ 并替换为;

      • 正则表达式表示:在 ((?<!…)) 开头 (^) 之后不直接找到行尾 ($)。
    2. 否则搜索(?<=\S)$,但请确保您没有任何尾随空格或制表符。

      • 如何“确保”:使用[^\S\n]+$ 找到它们并删除。
      • 第一个正则表达式表示:在 ((?<=…)) 非空白字符(包括换行符)之后直接找到行尾。

      • 第二个正则表达式说:找到一个字符序列 (…+),这些字符不是 ([^…]) 非空白字符或换行符——即不包括换行符的空白字符序列——然后是行尾。

    3. 最直观、最友好的方式可能是
      • ctrl+F 找到你的空行,搜索^\s*$
      • alt+enter全选,
      • menu > Selection > Invert Selection(现在您只突出了非空行),
      • 继续原来的“拆分成行”技巧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-30
      • 2012-08-14
      • 1970-01-01
      • 2021-10-01
      • 2017-01-26
      • 1970-01-01
      • 2014-09-24
      • 2014-09-20
      相关资源
      最近更新 更多