“es gibt”用法研究

德语课上讲解习题的时候,有同学搞错了一个知识点 —— “es gibt…”。

“es gibt” 是德语很常用的一个句型,代表“有”的含义,其后仅能跟第四格。但是这位同学却使用了第一格,我认为是学习的时候,由于老师将这个句型与“there be…”相类比导致了有学生会认为后面可以跟第一格。翻了翻知乎,发现[这个回答](德语关于es gibt的用法 - 肖深刻的九叔的回答 - 知乎 https://www.zhihu.com/question/54496571/answer/139651680)写得比较好:

Es gibt当然是加第四格。"Es gab ein alter Tempel da drüben."是错句,得改成:Es gab einen alten Tempel da drüben.

这个知识点大部分学生会出错,因为他们都按英语there be的句型理解了。这种理解是方便,但是会产生问题:there be句型中,后面加主语;而es gibt的主语已经固定了,就是es,后面加的是第四格宾语。英语的先入为主会产生负迁移,以为es gibt后面加的是主语。

光敲黑板啊强调啊,没有用。es gibt句型的教学可以这样改进:

1、南德和瑞士有些地方方言用的是es hat句型:Es hat in diesem See viele Fische. 这样学生就会对主谓宾印象更深刻些,记住es gibt是加第四格宾语的,动词gibt和主语es是捆绑在一块的。

2、法语说il y a句型,il相当于es,y相当于da(英语there),a相当于hat。这和汉语的逻辑多像啊,「这/那有……」。如果大家先学的法语,就不会忘记es gibt是加第四格的了。

如果有学生不能区分es gibt和haben的话,得知道es gibt指的是「某时间、地点、情况下的存在」这种「有」,不是主体有客体那种「有」。

教学真的是个技术活。

—— 肖深刻的九叔 的回答

GaN!我就是嫌弃法语发音不爽才来学的德语!

不过肖老师的回答里面提到的南德、瑞士以及法语中类似的结构用法倒是很吸引我的注意。在google上查询了一下:

南德和瑞士这些地方的德语是高地德语(Hochdeutsche Sprachen)…

现代德语标准语也是由高地德语发展而来的。肖叔提到的应该是这些地方的高地德语方言。至于法语么,在 “il y a…”中 a 确实是avoir (含有“have”的意思)的变位,但对于有点西班牙语知识的我来说…

对不起,我真不知道 y 和 a 是这种意思!

其实关于这种语言坑还有不少,比如说,你叫什么名字,规定要用上动词的话:

  • 德语:Wie heißen Sie?

  • 西语:¿Cómo te llamas?

  • 法语:Comment tu t’appelles?

  • 俄语:Как тебя́ зову́т?

这几个里面,都是用”how“来发问。

但是也有些语言,用”what“来发问:

  • 罗马尼亚语:Cum vă numiți?
  • (学识有限找不出来了)

这些都是语言比较坑的地方,有时候在记结论的同时,也要适当地去探究一下它背后的原因。

解决IDEA找不到自己安装的字体

事情是这样的。

最近微软发布了一款适合编程用的等宽字体,叫做 Cascadia Code 。其将作为 Windows Terminal 的默认字体。其特色是支持一些方便开发者的连字(font ligature)设计。像这样:

字体预览

相信用过 Fira Code的朋友一定很熟悉这种连字。

那么问题是什么呢?

Fira Code 很棒, Cascadia Code 也很不错,但我喜欢的是 Source Code Pro。我搜索之后了解到,Source Code Pro有一个 Fork 的版本做了这样的连字支持,它就是: Hasklig

装完之后去 idea 里面没有发现我的这个字体。尝试了重新安装、重启IDE、切换idea的JRE无果,再次搜寻答案之后终于找到了解决方法:

Wadqse Created December 13, 2018 14:35 Comment actions https://youtrack.jetbrains.com/issue/IDEA-200145

Hi,EveryOne,I think I found the answer in this issue Q&A.

Win10 build 1809 had changed the old font installed way. If the idea (2018.3) did not find the font , we could use these fonts by put them in JB runtime JRE /lib/font. BUT, in this way , the font render will not as well as idea recognize the same font from ‘system font’ (by using boulded jre , font will blur, by using oracle jdk font will too sharp and antialiasing did not do best).

how to repair this: reinstall font by right click font file (.TTF) and chose ‘install for all users’. zhen , we can remove font file from JB runtime JRE /lib/font dir. Restart idea , it can recogize font from ‘system font’ and rendering quality would be satisfied.

将字体以“为所有用户安装”即可解决问题。

安装之后记得勾选“Use font ligature”。之后写点代码试试吧!

Reference: https://intellij-support.jetbrains.com/hc/en-us/community/posts/360001112320-Idea-does-not-recognize-the-new-fonts-added-to-windows10-LTSC-2019-version

设置JDK命令行输出语言强制英文

本来这个问题是无所谓的,但是我设置了 idea 使用 Google Sans 作为默认字体,于是编译出错的时候就会弹出提示,而这个提示,很不幸,是糟糕的宋体字,它与周围的 Google Sans 是那样的格格不入,所以得想个办法让javac强制输出英文。

询问了咕咕噜之后,找到这个比较好的回答:

一个较好的回答

那么只要给javac指定这个VM Option就可以了。你可以在idea内针对你的项目进行设置,如果你想让整个系统都实现java命令行工具强制输出英文的话,这里也有另外一个回答:

设置jdk全局输出英文

只需要设置一个环境变量即可。名称为:JAVA_TOOL_OPTIONS,值为:-Duser.language=en-US

根据我的实际设置来看,-Duser.language=en-US中,仅指定en也是可以的。

IDEA输出

错误编辑IntelliJ IDEA的Custom VM Option后如何更正

今天在折腾 Java FX 环境的时候由于idea启动 SceneBuilder 的时候不断报错,我错误地认为要把 JavaFX 的库路径加入 VM options,然后在我编辑完 Custom VM Options 之后,神奇的事情发生了:

IDEA无法启动

那还能说啥,赶紧改回来呀!

方法比较简单,寻找你的idea配置目录,在Windows下面它是:C:\Users\Username\.IntelliJIdea[VersionCode]

进入此目录下的config目录并用编辑器(当我们提到编辑器的时候,我们默认把记事本排除在外)打开,删除错误的 VM Options 即可。

重装/迁移系统之后, SSH与GPG密钥应该如何转移

受限于磁盘空间不足,并且囊中羞涩换不起 SSD,只好删除了使用了大半年的黑苹果系统。在提前备份了 macOS 下的 SSH、GPG 公私密钥之后,快速地重装了 Windows。在安装完 Git for Windows 之后,打开Git Bash准备手动添加 SSH key:

1
2
$ mkdir ./.ssh && cd .ssh
$ touch ./id_rsa && touch ./id_rsa.pub

之后,利用文本编辑器将之前导出的公私钥粘贴进去,保存。之后测试SSH Key是否正常运作:

1
2
$ ssh -T [email protected]
Permission denied (publickey).

诶,为什么不能用?我再次检查了我的公钥,确认无误。于是立即打开ぐぐる搜索一番,原来是要先导入:

1
2
$ ssh-add ./id_rsa
Could not open a connection to your authentication agent.

查了资料说这是因为没有开启ssh-agent,那就开启:

1
$ eval `ssh-agent -s`

这下子该OK了吧…(実は無駄…):

1
2
$ ssh-add ./id_rsa
Error loading key "./id_rsa": invalid format.

??? 我满脸黑人问号….

再次查找相关资料,得知可能需要转换私钥格式,用的工具是PuTTYGen

选择菜单栏 -> Conversions -> Import key, 然后选择你保存的私钥文件。然后回到主界面你会看到自己的私钥的信息,之后再次选择 Conversions -> Export OpenSSH key (force new file format),并将其保存。

PuTTYGen下导出新格式的私钥

之后利用这个导出的新格式的私钥替换.ssh目录下面的私钥文件,并再次执行:

1
2
$ eval `ssh-agent -s` && ssh-add ~/.ssh/id_rsa
Identity added: /c/Users/USERNAME/.ssh/id_rsa (EMAIL_ADDRESS)

此时再测试与GitHub的连通性:

1
2
$ ssh -T [email protected]
Hi moposx! You've successfully authenticated, but GitHub does not provide shell access.

やった!真是费了一番工夫呢!

接下来导入GPG公私钥,这个就简单多了,将备份的时候导出的公私钥文件分别导入(已经导入过,所以这是unchanged):

1
2
3
4
$ gpg --import ./pgp-pubkey-export.txt
gpg: key AC3197957F4E8FFB: "Maxfield Wang (a.k.a. moposx) <[email protected]>" not changed
gpg: Total number processed: 1
gpg: unchanged: 1

私钥(需要你输入passphrase,希望你并没有忘记(忘れないで!)):

1
2
3
4
5
6
7
$ gpg --allow-secret-key-import --import ./pgp-seckey-export.txt
gpg: key AC3197957F4E8FFB: "Maxfield Wang (a.k.a. moposx) <[email protected]>" not changed
gpg: key AC3197957F4E8FFB: secret key imported
gpg: Total number processed: 1
gpg: unchanged: 1
gpg: secret keys read: 1
gpg: secret keys unchanged: 1

公钥已经上传到MIT PGP Key server,但他们的服务最近可能有点问题,于是另在Ubuntu Keysever传了一份。

这样就成功平滑地过渡到了新系统(似乎时间成本大于直接生成新SSH key,不过折腾一番还是蛮有收获的!)