hallelujahIM
hallelujahIM copied to clipboard
建议新特性:输入句末标点符号后自动删除前文空格
希望能添加下面的特性,在句末输入标点符号后,可以自动删除前文的空格。 现在在输入时,如果输入
I like hallelujahIM .
再打上句号的话,就hallelujahIM的空格就会保存下来。我发现有的输入法(如安卓上的触宝输入法)是可以自动把句末的标点符号前的空格去除掉的。比如说逗号、句号、感叹号、括号的右半部分等,其前方是不需要保留空格的。
只是一个很小的提升,不知道到工作难度如何。作者有时间的话就考虑一下。谢谢!
可以做,也不难。参见 https://github.com/dongyuwei/hallelujahIM/blob/master/src/InputController.mm#L198
逗号、句号、感叹号、括号的右半部分
能不能列举全面一些?可以统一处理。
参考了维基百科,常见英文标点有
- 句点 period:“ . ”
- 问号 question mark:“ ? ”
- 感叹号 exclamation mark:“ ! ”
- 逗号 comma:“ , ”
- 冒号 colon:“ : ”
- 省略号 ellipsis(众数:ellipses):“ … ”
- 分号 semicolon:“ ; ”
- 连字符 hyphen:“ - ”
- 连接号 en dash:“ – ”
- 破折号 em dash:“ — ”
- 括号 brackets:
- 小括号 parentheses; round brackets:“ ( ) ”
- 中括号 square brackets:“ [ ] ”
- 大括号 braces; curly brackets:“ { } ”
- 引号 quotation marks:
- 双引号 double quotation marks:“ " ”
- 单引号 single quotation marks:“ ' ”
- 缩写及所有格符号 apostrophe:“ ' ”
- 斜杠 slash:“ / ”
这其中大多数是前面是不要空格的,除了几种括号的左半边。引号的处理比较复杂,左半边不需要,但是英文左右引号是相同的。破折号一般情况下不加空格,除了新闻报纸为了方便排版会加。另外还有下划线“_”,虽然用得不是很多。其他的符号一时就想不起来。 多谢!
可以做,也不难。参见 https://github.com/dongyuwei/hallelujahIM/blob/master/src/InputController.mm#L198
逗号、句号、感叹号、括号的右半部分
能不能列举全面一些?可以统一处理。
这个功能我上周日试了一下,比我想的要难,暂时没有搞定。已经输出的字符要删掉不是那么容易。
作者辛苦了。不着急,有这个耐心。整个输入法用起来已经非常舒服了,感谢大佬! 我平常工作也得编程,很多事情看起来简单,真弄起来就很复杂,深有体会 ORZ.
可以试试在 Preferences 配置里面不勾选 ‘Commit word with space’
倒也是一种思路,不过我觉得也有局限性。使用回车的同时无法进行选择,如果第一候选词不是想要的词就用不了。
我一开始把"Commit word with space“关了,但后来还是打开了,发现好像删除一个多余的空格还是比多敲一个space的情况要少。但的确, 像 @YiruiZheng mentioned那用note, 有些情况下,删除多余空格的确比较麻烦,比如给文件命名时 e.g. file-name。
但我觉得根据标点符号删除多余空格可能也比较难exhaustively包含所有的标点和情况。
所以我觉得可不可以根据不同的选词key来动态地决定是否在词后增加space。比如,如果用户用“enter”或“tab”选词,则不添加space,如果用户用“space”选词,则在词后添加space。这样可以在最开始就决定,而不用在事后额外删除不想要的space。
这个就好像在中文输入法下,你用空格选词就输入中文,但敲回车就直接输入字母。
https://user-images.githubusercontent.com/33796896/190024508-1aeea314-7630-47e0-af1f-dc67907c3c15.mp4
但在hallelujahIM下,用这个不同的选词键来决定是否添加一个space。
如果用户用“enter”或“tab”选词,则不添加space,如果用户用“space”选词,则在词后添加space
这个是可以的,我之前也想过。
https://github.com/dongyuwei/hallelujahIM/releases/tag/v1.6.0 最新版实现了下面的功能:
Space空格键选词默认会自动附加一个空格在单词后面,可以在配置页面关闭自动附加空格功能。Enter回车键选词则不会附加空格。
@StevenLi-DS @YiruiZheng
很好用 感恩🙏
https://user-images.githubusercontent.com/33796896/190235175-492f9b04-e356-4755-bab3-e731cdacd791.mp4
同时发现了一个小问题。在输入某些 标点符号 时会直接触发选词并添加空格。
比如文件命名时file- name. pdf
或是一些带有hyphen的compound words,比如long-term
https://user-images.githubusercontent.com/33796896/190238570-4d18935e-3d3f-4bbe-8111-725e757a3fe7.mp4
https://github.com/dongyuwei/hallelujahIM/releases/tag/v1.6.1 解决了标点符号的问题。目前比较粗暴,所有标点符号都不自动附加空格了。
一些带有hyphen的compound words,比如long-term。
这种可能需求特殊处理,有点麻烦。