最近有点犯书荒,在搜索历史类小说的时候发现隋、唐、宋、明等朝代的小说较多,相关影视剧也是这样。相反元、清朝代的就非常少, 记得还是上学期间有一些清朝宫廷剧,往后几乎很少看到。
可能在汉人的眼里,清朝实际上是侵略者统治的朝代,和日本当年类似。不同的是现在的中国是满族也在期内而且人口还不少。为了民族统一,国务院甚至发文禁止使用满清一词。
知乎上有这样一个问题,为什么有那么多人讨厌清朝?其中一个答案中提到了很多满清犯下恶。
畿南之屠、潼关之屠、扬州十日、嘉定三屠、昆山之屠、嘉兴之屠、江阴八十一日、常熟之屠、四川之屠、金华之屠、南昌之屠、湘潭之屠、南雄之屠、汾州之屠、大同之屠、广州之屠、潮州之屠。凡此种种,皆为历史记载有据可查之大屠也。
1644年,是中国历史上天翻地覆的一年,就在这一年清军入主中原,无数汉人的噩梦就此开始。清军入住中原后,强迫汉人剃发易服
,这对于汉人来说以一种莫大的侮辱,各地人民纷纷起义反抗清朝,清朝对此采取屠城政策来强行推行“剃发易服”政策,于是乎一场场惨无人道大屠杀在中华大地上轮番上演。
1.畿南之屠 清朝的建立,源于一场惨绝人寰的大屠杀,清军入关就是外族入侵,为了巩固自己的地位与文化,就通过杀戮屠城的方式威慑全国,清军入关前后不断的屠杀汉人,前后屠虐了一百多年,死亡人数在四千万至八千万之间,史称为满清大屠杀。
顺治元年 (1644年)五月,清朝睿亲王多尔衮
在北直隶三河、昌平、良乡等地进行的屠城,五千人被残杀。
2.潼关之屠 明崇祯十七年(公元1644年正月十三日)满清“豫亲王”爱新觉罗多铎在陕西潼关进行惨绝人寰的大规模屠城,手无寸铁的士兵被多铎尽数屠杀,清军并大肆屠城,7000汉人被清军杀死,在历史上有一句对这件事的说法“潼关之屠七千“(就是屠夫多铎在潼关杀害那么多无辜的汉人)
顺治元年(1644年)正月十三日,清朝“豫亲王”多铎在陕西潼关地进行的屠城,七千人被残杀。
3.扬州十日 清军入关之后,满族人为了统治中国,就对汉人颁布了毫无人性的剃发令、文字狱,以及各个城镇的威慑屠杀,最惨绝人寰的要数“扬州十日”以及“嘉定三屠”,其中扬州十日是最为惨痛的,清军破城后整整屠杀了十天,被屠杀的汉人达到了80万,要比南京大屠杀多50万人。
顺治二年、南明弘光元年(1645年5月20日)。清军攻破扬州,开始屠杀城内的平民百姓。史载:“诸妇女长索系颈,累累如贯珠,一步一跌,遍身泥土;满地皆婴儿,或衬马蹄,或藉人足,肝脑涂地,泣声盈野。”“初四日,天始霁。道路积尸既经积雨暴涨,而青皮如蒙鼓,血肉内溃。秽臭逼人,复经日炙,其气愈甚。前后左右,处处焚灼。室中氤氲,结成如雾,腥闻百里。”后来由城内僧人收殓的尸体就超过了八十万具。
4.嘉定三屠 “嘉定三屠”是指一场大屠杀,一场灭绝人性的全副武装的清兵对手无寸铁的汉人进行的屠杀,清朝顺治二年时清军攻破嘉定,并颁布剃发令但是当地的百姓违抗命令拒绝剃发,此事激怒了清军于是下令屠城屠城的命令,共下达了三次,屠城进行了三回,所以称“三屠”,而死亡人数更是达到了10万之众。
顺治二年、南明弘光元年(1645年)在清军攻破嘉定后,清军将领李成栋三次下令对城中平民进行大屠杀。在屠城过程中,城中百姓或者悬梁自杀或者投井和跳河,被砍断手和脚的百姓在地上挣扎着。清军将一大部分逃生的百姓赶到河边,然后将他们赶进河中纷纷淹死,河里的水都不能流动了。
5.昆山之屠
顺治二年、南明弘光元年(1645年)昆山县人民杀该县清委知县阎茂才,起兵反清。七月初六,清军破城,随即屠城,士民死难者达数万人。清军屠昆山的时候,有妇女千人藏匿在昆山顶上。有个小孩忍不住哭出声来,被清军发现,于是大肆屠杀这些妇女。
6.嘉兴之屠
顺治二年、南明弘光元年(1645年)闰六月二十六日,浙江布政使司隶嘉兴府为反抗清军暴行,嘉兴民众揭竿而起,乡的明翰林学士屠象美、明兵科给事中李毓新主其事,时降清的明嘉兴总兵陈梧反时任大将军指挥义师,前吏部郎中钱棅助饷。二十六日城陷,逃不出的居民除大批年轻妇女被清军掳掠和一些僧人幸免外,几乎全遭屠杀。按当时人口来推,可能约五十万余人遇难。
7.江阴八十一日
顺治二年、南明弘光元年(1645年)清朝颁布剃发令后,江阴人民举行了反清起义,进行反清斗争。清廷先后调动24万军队攻城,江阴人民浴血奋战,守城八十一天,击毙清三王十八将,清军死伤过十万。但终因力量悬殊,粮食罄尽,守城者全部壮烈牺牲。城破后遭到清军血腥屠杀,繁华的街市尽为废墟。
8.四川大屠杀
从顺治三年(1646年)至康熙初期,清军开始侵入四川,在四川各地进行大屠杀。顺治四年(1647年)多尔衮、孝庄采取了彻底屠杀的办法作为报复,公开发布告示,宣称:民贼相混,玉石难分,或屠全城,或屠男而留女。前后十多年里共有500多万人被清军屠杀。
9.常熟之屠
顺治二年、南明弘光元年(1645年)八月到九月,清军先后占领苏州和南直隶常熟之后的纵兵焚烧杀掠。在常熟大屠杀中被屠杀的百姓无法计算,沿河沿岸都是人头。
10.金华之屠
顺治三年、南明隆武二年(1646年)七月十六日,清朝“贝勒”博洛在攻占浙江金华府进行的开始大规模屠城。大约有五万人被屠杀。
11.泾县之屠
顺治三年、南明隆武二年(1646年)八月十七日,清朝“提督”张天禄、“池州总兵”于永绶在南直隶泾县、徽州、绩溪县等地进行的一次大规模屠城。大约有五万人被屠杀。
12.赣州之屠
顺治三年、南明隆武二年(1646年)十月初四日,清朝“江西提督”金声桓、“总兵”柯永盛在江西赣州府进行的一次大规模屠城。大约有二十万人被屠杀。
13.同安之屠
顺治四年(1647年)清军攻克福建厦门和同安县,然后屠城。福建同安县屠城死难5万余人,梵天寺住持无疑和尚收尸合葬于寺东北一里之地,建亭“无祠亭”,墓碑上则刻“万善同归所”。
14.平海之屠
顺治四年、南明永历元年(1647年)七月,清军在福建平海卫进行大规模屠城。被屠杀的无辜百姓具体人数不详。
15.南昌之屠
顺治五年(1648年)清军包围南昌。次年三月间,南昌城陷,清军屠城。八旗军把从南昌掠来的妇女分给各营,昼夜不停的轮奸。不久之后南昌被起义军夺了回来,但在顺治六年(1649年)清军再次占领江西南昌,下令进行屠杀。
16.邵武之屠
顺治五年、南明永历二年(1648年)五月,清朝“福建左路总兵”王之纲在福建邵武县进行屠城,被屠杀的无辜百姓人数不详。
17.湘潭之屠
顺治六年(1649年)正月二十一日清军攻入湖南湘潭和沅州(今芷江),南明督师何腾蛟被俘。清郑亲王济尔哈朗下令在湘潭屠城,湘潭城中百姓几乎全被杀光,城中不满百人。
18.同安之屠
顺治五年、南明永历二年(1648年)八月十六日,清朝“靖南将军”陈泰、“浙闽总督”陈锦、“福建提督”赵国祚在福建同安县进行大屠杀,大约有五万人被屠杀。
19.南雄之屠
顺治六年(1649年)农历十二月二十九日,清军抵达南雄,年三十除夕晚上清军放火焚烧鼓楼,趁明军慌乱救火之际,攻入城内。对南雄县民大肆屠杀,“大清平、靖二藩克雄城,民尽屠戮,十存二三。
20.信丰之屠
顺治六年、南明永历三年(1649年)三月初一日,清朝“梅勒章京”胶商攻克广东信丰县,进行大规模屠城。
21.蒲城之屠
顺治六年、南明永历三年(1649年)四月初五日,清朝“固山额真”李国翰攻克陕西蒲城县然后进行大规模屠城。大约有一万人被屠杀。
22.曹州之屠
顺治六年、南明永历三年(1649年)十月初四日,清朝梅勒章京赖恼、沂州总兵佟养量、临清总兵宜永贵等攻克山东州曹州,进行屠城。被屠杀的无辜居民人数不详。
23.汾州之屠
顺治六年、南明永历三年(1649年)九月至十一月,清朝“端重亲王”博洛、“和硕亲王”满达海等在山西汾州、太谷县、泌州、泽州等地进行规模屠城。大约有四十万人被屠杀。
24.大同之屠
顺治六年(1649年)清军在大同屠杀后,全城只剩下5个重案犯。清朝派来的大同知府,上书顺治帝,称既然没有了苦主,就可以释放这5个人了。这份奏折,至今保存在第一历史档案馆。
25.广州大屠杀
顺治七年(1650年)尚可喜打带领清军清军攻广州,围城十个多月后广州城破。清军入城之后开始屠城,史书记载: ”可喜屠广州,孑遗无留;逸出城者,挤之海中。“ 死难十万至七十万人。
26.潮州之屠
顺治十年(1653年)清军占领广东的潮州和南雄,清军之后进行下令屠杀,“纵兵屠掠,遗骸十余万”,“癸巳,郡城破,横尸遍野……收遗骸十余万,作普同塔于葫芦山”。
揭阳县观音堂海德和尚等收尸聚焚于西湖山,将骨灰葬在西湖南岩。福建同安县屠城死难五万余人,梵天寺主持释无疑收尸合葬于寺东北一里之地,建亭“无祠亭“,墓碑上则刻“万善同归所”。南雄县民也遭到大肆屠杀,“大清平、靖二藩克雄城,民尽屠戮,十存二三。”
“家家燕子巢空林,伏尸如山莽充斥……死者无头生被掳,有头还与无头伍。血泚焦土掩红颜,孤孩尚探娘怀乳。”
27.永昌之屠
顺治十六年、南明永历十三年(1659年)闰三月,清朝“征南将军”赵布泰、“提督”线国安等在云南永昌府等地进行的一次大规模屠城。
经过清军的大屠杀后,明朝年间有5000多万人,到来清朝康熙年间只剩1063万,少了2000万人。这其中虽然也有死于瘟疫和明朝内战的,但大部分还是还是被清军所杀。
以史为鉴,可知兴替,可警醒世人,不再重蹈覆辙,再遭如此国耻国难!
再看看我大清:
首先,清朝自己发布过大量屠杀文告,其中最著名的,是清朝官方资料《清世祖实录》
卷十七 顺治二年六月丙寅中的记录:
“自今布告之后,京城内外,直隶各省,限旬日尽行剃完。若规避惜发,巧词争辩,决不轻贷”。
并宣称:“所过州县地方,有能削发投顺,开城纳款,即与爵禄,世守富贵。如有抗拒不遵,大兵一到,玉石俱焚,尽行屠戮。”
清朝在四川1649年的另一份文告,口气也非常类似:“民贼相混,玉石难分。或屠全城,或屠男而留女”。
清朝另一份官方史料,《东华录》
卷五顺治元年条,则记载:“不随本朝制度剃发易衣冠者,杀无赦。”
镇江知府告示则是:“一人不剃发全家斩,一家不剃全村斩”,并将反抗者的人头,集中起来恐吓人民。
顺治二年(1645年),江宁巡抚土国宝宣布:“剃发、改装是新朝第一严令,通行天下,法在必行者,不论绅士军民人等,留头不留发,留发不留头!南山可移,此令不可动! ”
在以上清朝官方的宣告中,充斥了大量“屠全城”、“尽行屠戮”、“杀无赦”、“全家斩”、“全村斩”的凶恶威胁。而下面列举的资料,则证明,清朝的公开威胁,绝不仅仅停留在口头。
辽东屠杀
天命九年正月,努尔哈赤下九次汗谕,清查所谓“无谷之人”,并谕令八旗官兵“应将无谷之人视为仇敌”,“捕之送来”,最后于正月二十七日下令:“杀了从各处查出送来之无谷之尼堪”。
天命十年十月初三日,努尔哈赤指责汉民“窝藏奸细,接受札付,叛逃不绝”,命令八旗贝勒和总兵官以下备御以上官将,带领士卒对村庄的汉人, “分路去,逢村堡,即下马斩杀”。
“时奴贼既得辽阳,辽东八站军民不乐从胡者,多至江边…… 其后,贼大至,义民不肯剃头者,皆投鸭水(鸭绿江)以死。”朝鲜 《朝鲜王朝实录》
掠夺虐杀汉族奴隶
崇祯十一年冬至十二年春,清军在畿辅 、山东一带掠去汉民四十六万二千三百馀人,崇祯十五年冬至十六年夏,清军又“俘获人民三十六万九千名口”。(《清太宗实录》
)满清入关后,继续劫掠人口。顺治二年八月辛巳日谕兵部“俘获人口,照例给赏登城被伤之人。”(《清世祖实录》)
汉人奴隶遭受非人的虐待,大量自杀。康熙初年,“八旗家丁每岁以自尽报部者不下二千人”(《清史稿》
),仅自杀的汉人,在满清入关前后几十年间,就不下10万人。被虐待致死的,更不在少数。
由于满清的疯狂虐待,大量汉人奴隶逃亡,“只此数月之间,逃人已几数万。”(《清世祖实录》)
满清统治者为了制止逃往,强化其1626年颁布的《逃人法》
,顺治帝颁订:“有隐匿逃人者斩,其邻佑及十家长、百家长不行举首,地方官不能觉察者,俱为连坐”。顺治六年又改为“隐匿逃人者免死,流徙”、“再行申饬,自此谕颁发之日为始,凡章奏中再有干涉逃人者,定置重罪,决不轻恕”。(《清世祖实录》)
华北
畿南之屠
畿南之屠指的是公元1644年(明崇祯十七年五月),满清睿亲王多尔衮在北直隶三河、昌平、良乡等地进行的一次大规模屠城。根据《清世祖实录》记载,1644年五月,大顺军西撤。满清军队占领畿南地区,强令汉族剃发易服
。当地汉族居民纷纷揭竿而起,反对满清统治。满清朝廷派出军队弹压,对起义者和居民大肆屠戮,连老幼亦不能幸免。大约有五千人被屠杀。史称畿南之屠。
曹州之屠
曹州之屠指的是公元1649年(南明永历三年十月初四日),满清梅勒章京 赖恼、沂州总兵佟养量、临清总兵宜永贵等在山东州曹州进行的一次大规模屠城。根据《曹州志》和《重修大名府志》等记载,1649年原明东平侯刘泽清
密谋与亲信李化鲸反正归明。李化鲸部义军占领鲁西南州县,后为清军三省大军围剿,战败被俘,刘、李两人遇害。满清军入城后屠杀无遗。被屠杀的无辜居民人数不详。史称曹州之屠。
大同屠杀
大同之屠指的是公元1649年(南明永历三年八月二十九日),满清“皇父摄政王”多尔衮、“英亲王”阿济格 、“敬谨亲王”尼堪、“端重亲王”博洛
、“承泽亲王”硕塞等在山西大同府、朔州、浑源县等地进行的一次大规模屠城。
根据《清世祖实录》记载,1648年(永历二年),满清“大同总兵”姜瓖
反正归明,义军迅速占领晋西北、晋南广大地区,直接威胁满清朝廷。清廷调取华北地区绝大部分可以调派的军队进剿,历时将近一年才复占山西全境。姜瓖被叛徒汉奸杀害,大同城破,全城官吏兵民被屠杀。被屠杀的无辜居民人数不详。史称“大同之屠”。
清军实施大同大屠杀后,全城只剩下5个重案犯。满清派来的大同知府,上书顺治,称既然没有了苦主,就可以释放这5个人了。这份奏折,至今保存在第一历史档案馆。
参考文献:“清人所至,无不狼藉,尸则无完肤,人则无完发,烧杀抢掠,乃贼人之便饭矣。”
朔州之屠
朔州之屠指的是公元1649年(南明永历三年八月二十九日),满清“皇父摄政王”多尔衮、“英亲王”阿济格、“敬谨亲王”尼堪、“端重亲王”博洛、“承泽亲王”硕塞等在山西大同府、朔州、浑源县等地进行的一次大规模屠城。
关于朔州的这次屠城,根据《清世祖实录》记载,“顺治六年,大同、朔州、浑源三城,已经王师屠戮,人民不存”!《朔州志》
:“城破,悉遭屠戮”,“王师致讨,大兵临城,玉石俱焚,家破人亡……荡然一空”。
汾州之屠
汾州之屠指的是公元1649年(南明永历三年九月至十一月),满清“端重亲王”博洛、“和硕亲王”满达海等在山西汾州、太谷县、泌州、泽州等地进行的一次大规模屠城。
根据《清世祖实录》、《泽州志》 和《明清史料》记载,1649年大同失陷后,满清派出军队对晋南地区开展大扫荡,在各地实施大屠杀。明朝巡抚姜建勋
、监军道何守忠等殉国。大约有四十万人被屠杀。史称汾州之屠。 江淮
泾县之屠
泾县之屠是顺治二年(1645)原明代泾县县令尹民兴流寓泾县,与本县县城诸生赵初浣等率众拒清,据城坚守。清军提督张天禄
于八月十六日黎明,统铁骑百余,据东山发炮,城中屋瓦皆震,尹民兴走脱,赵初浣等战死。城陷,男女少长多罹难,仅遗民九十余人。县治官厅公署悉毁于兵火。史称泾县之屠或者乙酉之难。
泾县之屠指的是公元1646年(南明隆武二年八月十七日前后),满清“提督”张天禄、“池州总兵”于永绶
在南直隶泾县、徽州、绩溪县等地进行的一次大规模屠城。
根据《明清史料》等记载,1646年皖南人民不能容忍满清政权的剃发易服而发动起义,反抗满清统治。义军攻略皖南诸县后,因兵力不足,为满清军队所败。满清军在皖南地区展开疯狂的报复性大屠杀,其中以泾县特为尤甚。大约有五万人被屠杀。史称泾县之屠或乙酉之难。
江南
扬州十日
南明弘光元年,清朝顺治二年(1645年)发生在清军攻破扬州城后对城中平民进行大屠杀的事件。由于当时南明将领史可法 对清军的殊死抵抗,在同年四月廿五日(5月20日),清军攻占扬州后,当时大雨倾盆,多铎宣布在扬州城内进行了屠杀。当时的幸存者王秀楚
所著《扬州十日记》中记载屠杀共持续十日,故名“扬州十日”。
清军攻破扬州城后进行了为期十天的大肆屠杀,史载:“诸妇女长索系颈,累累如贯珠,一步一跌,遍身泥土;满地皆婴儿,或衬马蹄,或藉人足,肝脑涂地,泣声盈野。”“初四日,天始霁。道路积尸既经积雨暴涨,而青皮如蒙鼓,血肉内溃。秽臭逼人,复经日炙,其气愈甚。前后左右,处处焚灼。室中氤氲,结成如雾,腥闻百里。”后来由城内僧人收殓的尸体就超过了80万具。
嘉兴大屠杀
南明弘光元年(1645年)闰六月二十六日,浙江布政使司 隶嘉兴府为反抗清军暴行,嘉兴民众揭竿而起,乡的明翰林学士屠象美、明兵科给事中李毓新主其事,降清的明嘉兴总兵陈梧
反正任大将军指挥义师,前吏部郎中钱棅助饷。二十六日城陷,逃不出的居民除大批年轻妇女被清军掳掠和一些僧人幸免外,几乎全遭屠杀。按当时人口来推,可能约500,000余人遇难。
江阴八十一日
江阴八十一日是指1645年夏江阴人民为抵制剃发令,在江阴典史:阎应元 、陈明遇、冯厚敦等人领导下进行的斗争。因为前后长达81天之久,故被称为“江阴八十一日”。(参考百家讲坛纪连海
先生的江阴八十一日讲座)
此役,10万江阴百姓面对24万清军铁骑,两百多门红衣大炮,血战孤城,抗清81日,击毙清军7万5千余人,亲王3名,大将军18名,最后城破,屠城,无一人降,城内死者九万七千余人,城外死者七万五千余人。阎应元、陈明遇、冯厚敦被后世称为“江阴抗清三公”。后世传纪对江阴的评价:“有明之季,士林无羞恶之心。居高官、享重名者,以蒙面乞降为得意;而封疆大帅,无不反戈内向。独阎、陈二典史乃于一城见义。向使守京口如是,则江南不至拱手献人矣。”此言甚当,沧江横流方显英雄本色,在各地望风披靡之时,阎应元以微末下吏凭借江阴百姓的支持,面对强敌,临危不惧,坚持了近三个月,击杀清寇数万人,重挫了清军锐气,钳制了清寇主力南下,推动了各地的抗清斗争。在城破以后,仍拚死巷战,“竟无一人降者”。
清初,扬州、嘉定、江阴等城,发源于老百姓的英勇抵抗,宁为玉碎不为瓦全,在华夏反侵略史上留下光彩夺目的一页。有章服之美称之华,有礼仪之大谓之夏。誓不与鞑子同流合污。
参考文献:“满城杀尽,然后封刀。……城中所存无几,躲在寺观塔上隐僻处及僧印白等,共计大小五十三人。是役也,守城八十一日,城内死者九万七千馀人,城外死者七万五千馀人。”《江阴城守纪》
嘉定三屠 嘉定三屠,指1645年(南明弘光元年,清朝顺治二年)清军攻破嘉定后,清军将领李成栋
三次下令对城中平民进行大屠杀的事件。
清军颁布剃发令,嘉定百姓拒不从命。乡绅侯峒曾 带领嘉定绅民起义反清,清吴淞
总兵李成栋立即领兵五千来攻。
嘉定城城破,李成栋下令屠城,市民之中,悬梁者,投井者,投河者,血面者,断肢者,被砍未死手足犹动者,骨肉狼籍。妇女们惨遭强奸。如遇抵抗,军队就用长钉把抵抗妇女的双手钉在门板上,然后再肆行奸淫。大屠杀持续了一天,直到尸体堵塞了河流,大约有三万多人遇害。李成栋率军离开嘉定城。
但嘉定城的劫难仍然没有结束。李成栋大屠杀后的三四天,侥幸逃脱的嘉定的幸存者开始溜回城里。他们回城后在一个叫做朱瑛
的义士领导下,重新集结起来,共两千多人。朱瑛领导着幸存者们在这座残破的城市展开了一场反屠杀运动,处死了归降清军的汉奸和清军委派的官吏。
李成栋又领着军士直杀入城里,把许多还在睡梦中的居民杀个精光,积尸成丘,然后放火焚尸。清军杀得兴起,嘉定又惨遭“二屠”。
二十多天后,原来南明的一个名叫吴之番
的将军率余部猛攻嘉定城,周边民众也纷纷响应,杀得城内清兵大溃出逃。不久,李成栋整军反扑,把吴之番数百士兵砍杀殆尽,顺带又屠杀了近二万刚刚到嘉定避乱的民众,血流成渠,是为著名的“嘉定三屠”。
参考文献:“市民之中,悬梁者,投井者,投河者,血面者,断肢者,被砍未死手足犹动者,骨肉狼籍。” 清兵“悉从屋上奔驰,通行无阻。城内难民因街上砖石阻塞,不得逃生,皆纷纷投河死,水为之不流。”“日昼街坊当众奸淫。”有不从者,“用长钉钉其两手于板,仍逼淫之。”,“兵丁每遇一人,辄呼蛮子献宝,其入悉取腰缠奉之,意满方释。遇他兵,勒取如前。所献不多,辄砍三刀。至物尽则杀。”(《嘉定乙酉纪事》
)
常熟大屠杀
“通衢小巷,桥畔河干,败屋眢井,皆积尸累累,通记不下五千馀人,而男女之被掳去者不计焉。”“沿塘树木,人头悬累累,皆全发乡民也。”(《海角遗编》)
昆山大屠杀
昆山之屠 的时间是是公元1645年(南明弘光元年七月初六日),昆山县人民杀该县清委知县阎茂才,起兵反清,引起满清“吴淞总兵”李成栋、“刑部侍郎”李延龄
在南直隶昆山县进行的一次大规模屠城。
根据《归庄年谱》、《顾炎武 年谱》和《研堂见闻杂记》记载,1645年满清军队进攻昆山县,昆山县绅民在原郧阳抚院王永祚
等人倡义下,起兵反清。顾炎武、归庄等爱国志士都积极参与义举。七月初六清军攻陷昆山后,大肆屠城。大约有四万人被屠杀。史称昆山之屠。
参考文献:“总计城中人被屠戮者十之四,沉河堕井投缳者十之二,被俘者十之二,以逸者十之一,藏匿幸免者十之一。”(《昆新两县续修合志》
卷五一兵纪),“杀戮一空,其逃出城门践溺死者,妇女、婴孩无算。昆山顶上僧寮中,匿妇女千人,小儿一声,搜戮殆尽,血流奔泻,如涧水暴下”!((研堂见闻杂记))
金华之屠
金华之屠指的是公元1646年(南明隆武二年七月十六日),满清“贝勒”博洛在浙江金华府进行的一次大规模屠城。
根据《浙东记略》、《临安旬制记》、《金华府志》和《金华县志 》等记载,1646年五月,满清军队攻占浙东府县,南明钱塘江防线沦陷,鲁监国放弃绍兴,转进至海上。兴国公王之仁、大学士张国维
等义士杀身殉国。金华人民在督师大学士朱大典带领下据城而战,誓死不降。满清军队攻陷金华后,借口民不顺命,屠城。大约有五万人被屠杀。史称金华之屠。
赣州之屠
赣州之屠指的是公元1646年(南明隆武二年十月初四日),满清“江西提督”金声桓
、“总兵”柯永盛在江西赣州府进行的一次大规模屠城。
根据《赣州府志》
、《赣县志》、《行朝录》和《仿指南录》记载,1646年三月,满清军队从南昌南下,击破沿路明军。赣州府防守力量由各地援军组成,缺乏协同作战能力,不久后沦陷。满清军攻占赣州后,江西总督万元吉、武英殿大学士杨廷麟等与六千守城将士殉国,满清军屠城。大约有二十万人被屠杀。史称赣州之屠。
平海之屠 平海之屠指的是公元1647年(南明永历元年七月),清军在福建平海卫
进行的一次大规模屠城。
根据《明清史料》、《南明史》
等记载,1647年南明绍宗皇帝殉国后,遵奉鲁监国的义师在闽浙两地依然相当活跃。是年七月,南明同安伯杨耿领兵一度收复平海卫。满清援军赶到后,杨耿兵被迫撤退,平海卫百姓惨遭屠杀。被屠杀的无辜百姓具体人数不详。史称平海之屠。
邵武之屠 邵武之屠指的是公元1648年(南明永历二年四月),满清“福建左路总兵”王之纲
在福建邵武县进行的一次大规模屠城。
根据《郑成功档案史料选集》等记载,1648年江西金声桓、王得仁
反正归明后,福建义民举兵响应。义军攻占邵武县城后,复为满清兵所败,城中起而响应的绅民惨遭屠戮。被屠杀的无辜百姓人数不详。史称邵武之屠。
同安之屠
同安之屠指的是公元1648年(南明永历二年八月十六日),满清“靖南将军”陈泰、“浙闽总督”陈锦、“福建提督”赵国祚
在福建同安县进行的一次大规模屠城。
根据《郑成功档案史料选集》等记载,1648年李成栋反正后,闽南地区复归明朝旗下,但闽系将领多为排斥。是年七月满清军队进攻同安,郑成功援军因风向不利受阻。同安城破后,守城将士悉数杀身成仁,满清军队屠城,血流沟渠。大约有五万人被屠杀。史称同安之屠。
湘潭大屠杀
1649年正月二十一日清军攻入湘潭,南明督师何腾蛟 被俘。清郑亲王济尔哈朗下令屠城,“屠至二十六日封刀,二十九日方止”。湘潭城中百姓几乎全被杀光,城中不满百人。”(康熙三年《湘潭县志》
)
南昌大屠杀
1648年,金声桓、王得仁在江西起兵抗清,七月初十清军包围南昌。次年三月间,南昌城陷,清军屠城。
“妇女各旗分取之,同营者迭嬲无昼夜。三伏溽炎,或旬月不得一盥拭。除所杀及道死、水死、自经死,而在营者亦十余万,所食牛豕皆沸汤微 ?集而已。饱食湿卧,自愿在营而死者,亦十七八。而先至之兵已各私载卤获连轲而下,所掠男女一并斤卖。其初有不愿死者,望城破或胜,庶几生还;至是知见掠转卖,长与乡里辞也,莫不悲号动天,奋身决赴。浮尸蔽江,天为厉霾。”(徐世溥《江变纪略》
)
华南
信丰之屠
信丰之屠指的是公元1649年(南明永历三年三月初一日),满清“梅勒章京”胶商在广东信丰县进行的一次大规模屠城。
根据《西江志》等记载,1649年李成栋二次入赣,为满清军所败,退守信丰。满清军攻破城池,李成栋仓促撤退,在回师过程中阵亡。满清军入城后对城中居民滥加屠杀。被屠杀的无辜居民人数不详。史称信丰之屠。
南雄大屠杀
雄之屠指的是公元1649年(南明永历三年十二月三十日),满清“平南王”尚可喜
、“靖南王”耿继茂在广东南雄府进行的一次大规模屠城。
根据《岭表纪年》
、《南雄府志》记载,1649年清军从江西南下进攻广东,偷渡梅岭后,派遣间谍进入南雄放火并打开城门,满清军主力拥入。守城六千余名将士死战殉国,城内居民被屠戮殆尽。大约有两万人被屠杀。史称南雄之屠。
1649年农历十二月二十九日,清军抵达南雄,年三十除夕晚上清军放火焚烧鼓楼,趁明军慌乱救火之际,攻入城内。对南雄县民大肆屠杀,“大清平、靖二藩克雄城,民尽屠戮,十存二三。”(乾隆十八年《南雄县志》)
参考文献:“ 家家燕子巢空林,伏尸如山莽充斥。….死者无头生被掳,有头还与无头伍。血泚焦土掩红颜,孤孩尚探娘怀乳。(清军文书陈殿桂,《雄州店家歌》
)
庚寅之劫(又称广州大屠杀)
庚寅之劫,指1650年(清顺治七年,南明永历四年,庚寅年)11月24日到12月5日清朝军队在广州的屠城暴行。
当年公历11月24日,清朝平南王尚可喜与靖南王耿继茂指挥的清军(汉军镶蓝旗)在围城近十个月后,经过惨烈的战斗,包括筑垒相逼,以楼车攻城,及动用荷兰炮手,终于攻破广州城,随后对据城死守的广州居民进行了长达十二天的大屠杀,据清代官方史载,这场屠城,斩“兵民万余”,又“追剿余众至海滨,溺死者无算”,不论男女老幼,一律残酷地杀死,死亡人数根据收尸的和尚统计至七十万。
广州市社会科学研究所认为“七十万人”显然不可信,因为明末广州府
十三县人口总共才40万人。另有意见认为当时广州人口约40万,而死难者约十万人或超过十万人。
参考文献:“甲申更姓,七年讨殛。何辜生民,再遭六极。血溅天街,蝼蚁聚食。饥鸟啄肠,飞上城北。北风牛溲,堆积髑髅。或如宝塔,或如山邱。五行共尽,无智无愚,无贵无贱,同为一区。”(《祭共冢文》 王鸣雷),“可喜屠广州,孑遗无留;逸出城者,挤之海中。”(倪在田《续明纪事本末》)《广州市宗教志》:“清顺治七年(1650年),清军攻广州,‘死难10万至70万人。’在东郊乌龙冈
真修和尚雇人收拾尸骸,‘聚而殓之,埋其馀烬’合葬立碑”。
意大利籍耶酥会士卫匡国(Martin Martini
,1614~1661)在《鞑靼战纪》中记述:“大屠杀从11月24日一直进行到12月5日。他们不论男女老幼一 律残酷地杀死,他们不说别的,只说:‘杀!杀死这些反叛的蛮子!”荷兰使臣约翰纽霍夫(John Nieuhoff)在其《在联合省的东印度公司出师中国鞑靼大汗皇帝朝廷》一书记述:“鞑靼全军入城之后,全城顿时是一片凄惨景象,每个士兵开始破坏,抢走一切可以到手的东西;妇女、儿童和老人哭声震天;从11月26日到12月15日,各处街道所听到的,全是拷打、杀戮反叛蛮子的声音;全城到处是哀号、屠杀、劫掠;凡有足够财力者,都不惜代价以赎命,然后逃脱这些惨无人道的屠夫之手。”
潮州之屠
潮州之屠指的是公元1653年(南明永历七年九月十四日),满清“靖南将军”哈哈木在广东潮州府进行的一次大规模屠城。
根据《平南王元功垂范》等记载,1653年九月,是年满清“潮州总兵”郝尚久
反正归明,响应李定国大军。李定国兵败西撤后,郝尚久势单力薄。满清军队在包围潮州一月有余之后,攻陷府城,郝尚久自杀殉国。满清军屠城,斩杀无算。大约有十万人被杀,史称潮州之屠。
参考文献:“纵兵屠掠,遗骸十余万”,揭阳县观音堂海德和尚等收尸聚焚于西湖山,将骨灰葬在西湖南岩。福建同安县屠城死难5万余人,梵天寺主持释无疑收尸合葬于寺东北一里之地,建亭“无祠亭”,墓碑上则刻“万善同归所
”。
西南
四川大屠杀
清军入关后的1647年在四川公开发布告示,宣称:全城尽屠,或屠男而留女。把四川人杀光了以后,就把罪恶全部推给也杀了一点人的张献忠,还编造出张献忠杀人6个亿的历史第一大谎言!根据近年历史学者的研究,四川被害者不下300万,而被张献忠杀害的至多只有14万人,连同张献忠统制地区其它非正常死亡,最多只有30-40万人。更重要的是,在清军开始长达十几年的四川大屠杀前,张献忠已经死了。
南明隆武二年( 1646 年)至永历十九年( 1665年)十一月,张献忠阵亡,满清开始侵入四川。同年满清政府贴出公告:“民贼相混,玉石难分。或屠全城,或屠男而留女”。面对四川人民顽强不屈的抵抗,此后满清用了近20年时间始占领四川。1647年清将张德胜 攻入成都被杀后,相继攻伐四川的清军有高民瞻、吴三桂、李化龙等部。1660年,成都沦陷;1663年,重庆沦陷;1665年,南明下川东战役失利,全蜀沦陷。四川的反清活动被残忍地镇压后,满清“叔父摄政王”多尔衮、孝庄采取了彻底屠杀的办法作为报复,约5,400,000人遇难。最后到了“弥望千里,绝无人烟”的地步。后来清廷不得不迁移湖广的人口至四川(即有名的以湖广填四川
)。
永昌之屠
永昌之屠指的是公元1659年(南明永历十三年闰三月),满清“征南将军”赵布泰
、“提督”线国安等在云南永昌府等地进行的一次大规模屠城。
根据《清世祖实录》和《明清档案》
记载,1659年满清军队进入云南,分路攻打南明防线。满清军队沿途烧杀抢掠无恶不作,永昌一带周围百里无人烟。被屠杀的无辜居民人数不详。史称永昌之屠。
西北
潼关之屠
潼关之屠指的是公元1644年(明崇祯十七年正月十三日),满清“豫亲王”多铎在陕西潼关进行的一次大规模屠城。
根据《清世祖实录》和《潼关志》 记载,1644年正月十二日,李自成从潼关回援西安。留守潼关的大顺“巫山伯”马世耀
向满清军队诈降,但密信为满清所获。次日,多铎诈称举行宴会,将马部官兵解除武装,手无寸铁的战俘被尽数屠杀。
南明弘光元年,清朝顺治二年(1645年)发生在清军攻破扬州城后对城中平民进行大屠杀的事件。 由于当时南明将领史可法对清军的殊死抵抗,在同年四月廿五日(5月20日),清军攻占扬州后,当时大雨倾盆,多铎宣布在扬州城内进行了屠杀。 当时的幸存者王秀楚所著《扬州十日记》中记载屠杀共持续十日,故名“扬州十日”。
清军攻破扬州城后进行了为期十天的大肆屠杀,史载:“诸妇女长索系颈,累累如贯珠,一步一跌,遍身泥土;满地皆婴儿, 或衬马蹄,或藉人足,肝脑涂地,泣声盈野。”“初四日,天始霁。道路积尸既经积雨暴涨,而青皮如蒙鼓,血肉内溃。 秽臭逼人,复经日炙,其气愈甚。前后左右,处处焚灼。室中氤氲,结成如雾,腥闻百里。”后来由城内僧人收殓的尸体就超过了80万具。
一、剃发令:扬州十日、嘉定三屠,屠戮了3000万平民。
满清强制推行剃发易服,将汉人及所有其他族人统一剃发留辫,并以此为区分满汉和尊卑等级的标志。
二、文字狱:大兴文字狱150年,被凌迟杀害者无数。
满清入主中原后,为了巩固统治,防止汉人反抗,设立了文字狱,对著作、诗文、书信等文字作品进行审查,摘取文字意会而成罪名。这种禁锢思想的行为造成了对知识分子的严重打压,因为文字狱而被诛九族的达到上百起。导致社会文化的发展停滞。
明史案——由庄廷鑨编写《明史》而引发的清初最大的文字狱案。双目皆盲的浙江湖州富户庄廷鑨出钱购买明人朱国祯一部未完成的《明史》,然后延揽名士,增润删节,补写崇祯朝和南明史实,其父庄允诚于顺治十七年冬(公元1660年)将书刻成,即行刊书《明史辑略》。
顺治十八年(公元1661年)为归安知县吴之荣告发,这时廷鑨已死,被掘墓刨棺,枭首碎骨,尸体被悬吊在杭州城北关城墙上,示众三个月,廷鑨弟廷钺被杀。所有列名参校、刻印买卖者均因此获罪 ,重辟70余人,凌迟18人。
三、焚书:清朝乾隆年间大兴文字狱,毁灭经典书籍、科学书籍禁毁图书13600卷。
焚书总数达15万册,销毁版片170余种、80000余块。对明朝不少于10000件的档案进行销毁,目前仅存3000余件。
乾隆39年开始,武英殿前字纸炉日夜燃烧,严密监视下,巨量珍贵图书灰飞烟灭,随同消灭的是一个民族的大量记忆。
四、闭关锁国
清朝实行闭关锁国政策,限制了对外贸易和文化交流,使中国错失了学习先进科学知识和生产技术的机会,导致中国在科技和军事上远远落后于西方。
五、大肆出卖中国土地,割地赔款
在中外签订的多个不平等条约中,中国丧失了大片领土和主权。在面对俄罗斯小股民兵侵略时,居然和俄罗斯签订《尼布楚条约》主动放弃西伯利亚大片领土,甚至连自古属于中国的瀚海湖(贝加尔湖)也放弃!
再后来,据资料记载,自1842年鸦片战争爆发后,清政府被迫和西方列强国家大大小小签订了700多份不平等条约。据不完全统计,清政府累计欠下的赔款超过了13亿两白银。
其中涉及到割地面积较大的条约共有4个,分别是1858年的《瑷珲条约》将黑龙江以东、外兴安岭以南的60多万平方公里领土割让给俄罗斯; 1860年的《北京条约》将乌苏里江以东44万平方公里的领土割让给俄罗斯; 1895年的《马关条约》,割让辽东半岛、台湾岛及其附属岛屿以及澎湖列岛共近10万平方公里的领土给日本; 1861年俄罗斯逼迫清政府签下的《塔城界约》,侵占了我国自沙渍达巴哈起,至葱岭止约43万平方公里领土。
六、搞愚民政策,奴化政策,贫民政策。
多年的政策下,国民识字率1%都不到,而且极度贫穷、奴性。鸦片肆虐,导致中国人被称为“东亚病夫”。
七、禁止汉人对外移民
近代是大移民时代,欧洲人大量移民美洲澳洲,汉族本应参与大移民的浪潮,满清为了奴役压迫汉族,故意不让汉族往外移民,使汉族丢失了往外移民的机会和前途。
如果满清政府没有禁止汉族往外移民,现在全世界汉族国家可能已经多出好几个。
远的不说,就说巴西在清末向清政府请求移民中国人去巴西,却遭到清政府的严词拒绝。结果巴西去找日本,日本政府非常积极,移民几百万日本人去巴西。现在巴西有大量日本人,日本人在巴西拥有大量私人田地,甚至超过了日本本土,这些土地可以让日本在巴西繁衍大量人口。这一切本来都该是我们中国人的,然而却被满清故意破坏!
另外满清对汉人向东南亚的移民一直是排斥,压迫,封闭的政策。如果没有满清的故意阻挠,东南亚的汉族移民根本就不会那么少,应该早就建立了数个汉族国家。
比较有名的是兰芳共和国事件。
汉人自力更生在东南亚建立了兰芳共和国,由于实力弱小,面临欧洲侵略者的侵略,兰芳共和国寻求清朝的保护,没醒到满清政府居然大骂汉人向外移民是反叛,支持欧洲侵略者侵略兰芳共和国。最后兰芳共和国被欧洲侵略者消灭。
还有在马来半岛和苏门答腊岛,如果汉族可以自由移民完全可以在这个两个地区建国,但由于满清的一再阻挠和限制没有实现。现在当地土著越生越多汉族比例不断下降,再无独立的可能。马来西亚的汉族也由原来的40%下降为20%,印尼华人由原来的10%降为现在的3%。
八:盗墓
乾隆为了修陵墓,甚至去盗明十三陵,这种行为严重破坏了中国的历史文化遗产。
九、压制商人
明万历年间中国沿海一带已经出现了资本主义的萌芽,但满清的压制商人政策阻碍了中国经济的发展,使中国错失参与第二次工业革命的机会,导致中国落后挨打。
十、民族歧视
满清实行民族歧视政策,对汉人和其他族人进行不平等待遇,严重侵犯了汉族的权利和尊严。
2019年,公安部端掉了满遗复辟分裂组织“满洲复兴协和会”,抓获了18名妄图复辟清朝的骨干分子。也就是这件事情,让塔意识到所谓“清宫文化”和“辫子戏”的危害性有多大,从19年开始,广电也开始有意识的减少甚至封杀清宫剧的拍摄,曾经霸占市场二十余年的辫子戏到了人人喊打的地步,电视上可以看到很早之前拍摄的《雍正王朝》《康熙王朝》等古早电视剧,但19年之后几乎没有啥新出的电视剧了,最新的一个是2022年的《天下长河》
作者:上帝的左手 链接:https://www.zhihu.com/question/593861268/answer/1903376346786272890 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
在 Lua 中遇到需要使用可变参数时,通常这样处理:
local function add(...)
local l = 0
for k, v in ipairs({...}) do
l = l + v
end
return l
end
print(add(1, 2, 3, 4))
-- 输出:
-- 10
但是,如果传入的参数中间有 nil 那么,结果就不是预期的了:
local function add(...)
local l = 0
for k, v in ipairs({...}) do
l = l + v
end
return l
end
print(add(1, 2, nil, 4))
-- 输出:
-- 3
因此,在遍历参数时,推荐使用 select 函数:
local function add(...)
local l = 0
for i = 1, select('#', ...), 1 do
l = l + (select(i, ...) or 0)
end
return l
end
print(add(1, 2, nil, 4))
-- 输出:
-- 7
在使用 Markdown 写作时,通常会在文章中需要插入代码块。为了更高效的编辑和执行代码块,引入以下几个插件及配置。
新建 ~/.confg/nvim/ftplugin/markdown.lua
vim.keymap.set('n', '<leader>lr', function()
local cf = vim.fn['context_filetype#get']()
if cf.filetype ~= 'markdown' then
local runner = require('code-runner').get(cf.filetype)
runner['usestdin'] = true
runner['range'] = { cf['range'][1][1], cf['range'][2][1] }
require('code-runner').open(runner)
end
end, { silent = true, buffer = true })
vim.keymap.set('n', '<leader>bf', function()
local cf = vim.fn['context_filetype#get']()
if cf.filetype ~= 'markdown' then
local command = vim.fn.printf(
'%s,%sFormat! %s',
cf.range[1][1],
cf.range[2][1],
cf.filetype
)
vim.cmd(command)
end
end, { silent = true, buffer = true })
SpaceVim 这一项目起源于 2016 年 12 月份,于 2025 年 2 月 21 日停止维护。
早期,开发这个项目的时候,是想做一个开箱即用的模块化 Vim 配置,类似于 spacemacs 那样, 把不同语言功能所需要的配置及插件都放到一个模块里面。使用者不再需要自己配置各种插件, 只需要简单地启用对应语言或者功能的模块就可以快速搭建 Vim 的开发环境。
随着功能越来越多,代码越来越臃肿,速度也变得越来越慢。如果查看 git log
的话,不难发现,
很大一部分内容是做速度的优化。
甚至,我也使用 Lua 重写的相当一部分的内置插件,包括状态栏、标签栏、任务管理、项目管理、多光标、快捷键导航等等。
但是即便是使用 Lua 进行了重写,但是因为要兼容老版本的 Neovim 以及兼容 Vim,因此整体总的框架使用的是 Vim Script, 调用 Lua 插件的时候还是使用 VimL 去调用 Lua 的代码,例如:
func! SpaceVim#test(...)
lua require('task').start(require('spacevim').eval('a:000'))
endf
这样的话速度还是无法发挥到极致。
最近更新 Windows 系统后,使用 ALT-Tab 快捷键切换窗口,每次切换回终端,输入法就会自动变成中文模式,非常影响 Neovim 的操作。
比如:每次切换到浏览器,复制下相关内容后,到 nvim 里面来想黏贴,通常使用 "+p
快捷键就可以了,但是由于当前输入法变成了中文模式,
就变成输入了 “+
, Normal 模式下 “
无用,+
直接给换到下一行。p
按键不会直接输入到终端,反而会弹出输入法候选框。
此外,由于自动切换到了中文输入,当想执行 Neovim 命令时,比如 :w<Cr>
的时候,同样的按键顺序,就会变成了:w
, 未保存,同时相当于 Normal 模式下执行了一次 w
光标向前移动一个词位置。
网上类似的讨论有很多:
https://www.v2ex.com/t/1120452
https://chunyujin.top/chunyujin/8728f196
但是并没有讲到真实的原因。在以前的系统里面(Win7),通常语言设置会有两个键盘,一个叫做美式键盘(一个灰色小的键盘图标), 另外一个键盘通常就是我们的输入法,比如搜狗的红色小图标,日常最常用的快捷键是 ctrl-space 来切换的是键盘,而不是某个输入法的中英文模式。 有时候,还不止两个键盘,比如同时安装了搜狗拼音、搜狗五笔,那么加上默认的美式键盘,就是三个键盘。通常使用 ctrl-space 来回切换,ctrl-shift 轮换。 虽然,以前搜狗输入也好,微软输入法也好,大多数提供了内置的中英文输入切换,通常快捷键是 shift 键。 而在最新版的 Windows 系统中,微软做了一件非常恶心的的事情,就是默认不给你安装美式键盘,只给你安装一个微软输入法, 并且把默认的键盘切换按键ctrl-space改为win-space,同时无法改回,只能在微软输入法里面设置ctrl-space切换自己的中英文模式。
设置 - 时间和语言 - 语言和区域 - 首选语言 - 添加语言 - 找到 English(United States)添加。
此时就有两个键盘,使用 win-space 可以切换键盘。
美式键盘只做英文输入,微软拼音只做中文输入,关闭管软拼音的英文模式。
完成以上操作后就可以使用命令行工具 im-select 进行键盘切换了。
打开命令行窗口:分别在两个键盘模式下执行一次下载的 im-select.exe 可以看到输出如下:
关于这个命令的说明:
im-select.exe 1033
切换至美式键盘,im-select.exe 2052
切换至微软拼音。local augroup = vim.api.nvim_create_augroup('wsdjeg', { clear = true })
local create_autocmd = vim.api.nvim_create_autocmd
-- 这里指定下载的 im-select.exe 的绝对路径,
-- 当然,你也可以将这个命令丢 PATH 里,个人不喜欢污染 PATH
local imselect = 'C:\\Users\\wsdjeg\\Downloads\\im-select.exe'
create_autocmd({ 'InsertLeave', 'FocusGained', 'CmdlineLeave', 'VimEnter' }, {
pattern = { '*' },
group = augroup,
callback = function(_)
-- 切换至美式键盘
vim.system({ imselect, '1033' })
end,
})
create_autocmd({ 'FocusLost' }, {
pattern = { '*' },
group = augroup,
callback = function(_)
-- 切换至微软拼音
vim.system({ imselect, '2052' })
end,
})
如果不想增加美式键盘,那么可以使用 im-select-mspy,对应的 Neovim 配置如下:
local augroup = vim.api.nvim_create_augroup('wsdjeg', { clear = true })
-- download im-select-mspy from https://github.com/daipeihust/im-select/raw/refs/heads/master/win-mspy/out/x64/im-select-mspy.exe
local imselect = 'C:\\Users\\wsdjeg\\Downloads\\im-select-mspy.exe'
local function imselect_cn()
vim.system({ imselect, '-k=ctrl+space', '中文模式' })
end
local function imselect_en()
vim.system({ imselect, '-k=ctrl+space', '英语模式' })
end
-- 使用 table 存储不同 buffer 的 Insert 模式下的输入法
local buffer_im = {}
create_autocmd({ 'InsertLeave' }, {
pattern = { '*' },
group = augroup,
callback = function(ev)
vim.system({ imselect }, { text = true }, function(o)
-- 这里说明下,再 Windows Terminal 内执行该命令输出的内容默认编码是 `cp936`,
-- 需要转码成 utf-8,同时,输出内容尾部有换行符,使用 trim 函数去除。
buffer_im[ev.buf] = vim.trim(vim.iconv(o.stdout, 'cp936', 'utf-8'))
end)
imselect_en()
end,
})
create_autocmd({ 'InsertEnter' }, {
pattern = { '*' },
group = augroup,
callback = function(ev)
local c = '英语模式'
if buffer_im[ev.buf] and buffer_im[ev.buf] ~= '英语模式' then
-- 此处设置快捷键,可以在输入法按键设置里面查看,我选择的是使用 ctrl-space 切换中英文
-- 默认我记得是 shift,同时这个命令默认也是 `-k=shift`
vim.system({ imselect, '-k=ctrl+space', buffer_im[ev.buf] })
end
end,
})
create_autocmd({ 'FocusGained', 'CmdlineLeave', 'VimEnter' }, {
pattern = { '*' },
group = augroup,
callback = function(_)
imselect_en()
end,
})
create_autocmd({ 'FocusLost' }, {
pattern = { '*' },
group = augroup,
callback = function(_)
imselect_cn()
end,
})
Neovim 和 Vim 一样,支持使用 v:oldfiles
获取最近浏览的文件名称列表。但是 Neovim 这一变量在 Windows 系统下面存在文件名称格式不一致的问题。
比如,一些使用 v:oldfiles
的插件,如 telescope.nvim、dashboard.nvim 等,其列表内会出现一些重复的文件。
D:/hello.txt
D:\hello.txt
d:/hello.txt
d:\hello.txt
为了避免上述原因,我做了一个插件 mru.nvim。
Windows 系统下统一的文件名格式,上述四种文件名称统一显示为 D:/hello.txt
。
可以预设置多个正则表达式,当文件名称匹配上时,阻止其被加入文件浏览历史记录。
require('mru').setup({
ignore_path_regexs = { '/.git/', '/nvim/runtime/doc/' },
})
比如,在使用一些启动屏插件(dashboard.nvim)时,会在启动时显示近期打开过的文件, 如果前面打开过一些非文本类文件,比如图片类的,这类文件可以从浏览历史中去除掉。
require('mru').setup({
ignore_path_regexs = { '/.git/', '.mp3$', '.png$' },
})
提供了 telescope.nvim 拓展,可以使用 :Telescope mru
打开。
使用 nvim-plug 插件管理器进行安装:
require('plug').add({
{
'wsdjeg/mru.nvim',
config = function()
require('mru').setup({
enable_cache = true,
mru_cache_file = vim.fn.stdpath('data') .. '/nvim-mru.json',
events = { 'BufEnter', 'BufWritePost' }, -- events to update mru file list
ignore_path_regexs = { '/.git/' },
enable_logger = true, -- require wsdjeg/logger.nvim
})
end,
},
})
当然,如果并未使用 telescope,也可以自行拓展,使用 require('mru').get()
获取历史记录文件名称列表。以 leaderf 为例:
function! s:nmru(...) abort
return v:lua.require('mru').get()
endfunction
function! s:nmru_acp(line, args) abort
exe 'e' a:line
endfunction
" function() wrapper
if v:version > 703 || v:version == 703 && has('patch1170')
function! s:_SID() abort
return matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze__SID$')
endfunction
let s:_s = '<SNR>' . s:_SID() . '_'
function! s:_function(fstr, ...) abort
if a:0 > 1
return function(substitute(a:fstr, 's:', s:_s, 'g'))
else
return function(a:fstr)
endif
endfunction
else
function! s:_SID() abort
return matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze__SID$')
endfunction
let s:_s = '<SNR>' . s:_SID() . '_'
function! s:_function(fstr) abort
return function(substitute(a:fstr, 's:', s:_s, 'g'))
endfunction
endif
let g:Lf_Extensions = {
\ 'nmru': {
\ 'source': string(s:_function('s:nmru', 1))[10:-3],
\ 'accept': string(s:_function('s:nmru_acp', 1))[10:-3],
\ 'supports_name_only': 1,
\ 'supports_multi': 0,
\ },
\}
以上为 VimL 写的 LeaderF 拓展,尝试了使用 Lua 来写,可读性更简单,但是似乎不起作用:
local function mru()
return require('mru').get()
end
local function mru_acp(line, args)
vim.cmd('e ' .. line)
end
vim.g.Lf_Extensions = {
nvimmru = {
source = mru,
accept = mru_acp,
supports_name_only = true,
supports_multi = false,
},
}