如何使双引号充当死键,除非将其与自身结合使用


14

当我使用键盘时,我期望出现以下行为(并且我依赖于这些行为):

  • 按下",松开":应记住该键为死键
  • ",释放",按<space>,释放<space>:应打印"
  • ",释放",按",释放":应打印""

我知道这种行为是由键盘布局定义的,所以我做了一些研究。

在键盘布局“英语-带死键的美国”上,我得到了我喜欢的前2种行为,但是最后一种行为没有实现,并且¨当我尝试这种行为时,我得到了奇怪的字符。

在键盘布局“英语-美国,带有AltGr死键”上,我只得到了最后一个行为,但键不再表现为死键。

使用键盘时,如何修改键盘布局以实现我期望的3种行为?


有了一些动力,这个问题会好得多。
约书亚

我相信他的动机是避免字符串文字中的双引号不匹配。通过修改整体键盘行为来实现此目标似乎有点过头了-无论出于何种目的,都应使用IDE处理此问题。
teukkam 18/09/24

2
@Joshua在我的国家/地区,人们从小在Windows上学习计算机课程,而这些死键行为是我国Windows上的默认行为。很难改变您20年前同时使用Ubuntu和Windows时所学的习惯。在Windows上,具有这种行为的键盘布局称为“英语-我们-带死键的国际”
Ferrybig

Answers:


12

在尝试了解决该问题的不同方法之后,我最终找到了一个在聊天中帮助解决该问题的解决方案

问题的根本原因实际上是由于Linux在默认情况下没有an dead_apostrophe和a dead_quotedbl,因此默认的“我们dead_acute无效的键盘布局”已映射到或非无效键"

就像在聊天中所建议的那样,这意味着无法通过制作自己的自定义键盘布局来解决此问题。

经过进一步的研究并且只是时候学习新的关键词进行搜索了,我在Unix&Linux StackExchange上找到了这个解决方案,这帮助我解决了这个问题。

我遵循了该答案中列出的以下步骤:

  1. sudo apt install uim
  2. echo 'export GTK_IM_MODULE="uim"' >> ~/.profile
  3. echo 'export QT_IM_MODULE="uim"' >> ~/.profile
  4. curl 'https://gist.githubusercontent.com/guiambros/b773ee85746e06454596/raw/0ea6d7f7cf9a6ff38b4cafde24dd43852e46d5e3/.XCompose' > ~/.XCompose
  5. 将我的键盘布局配置为“英语(美国-带死键的国际)”
  6. 重新启动Ubuntu(根据评论,注销并登录就足够了)

经过这些步骤,我设法达到了对键盘的以下期望:

  • 按下",松开":应记住该键为死键
  • ",释放",按<space>,释放<space>:应打印"
  • ",释放",按",释放":应打印""

4
注销会话并重新登录应该足以使对用户配置的更改生效。无需重启。
David Foerster '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.