10. Browser: Smart select text area using cursor 和 11.Browser: Mouseless browsing. - HollowMan6/EAF-OSPP-Summer-2020 GitHub Wiki
相关PR: #345,#349,#357,#364,#367
为EAF浏览器添加插入光标浏览功能。它可以用于智能选择文本区域。
core/js/caret_browsing.js
部分来自于 qutebrowser的caret.js
- 用法
在我的按键配置下,按M-c
激活插入符号浏览,C-q
禁用。光标浏览默认情况下处于禁用状态。
如果光标浏览已激活,请按C-i
切换是否开启标记。如果标记打开,将使用光标进行选择。如果标记关闭,则光标将仅根据命令移动。标记默认为关闭。
这是在我的配置下用于光标浏览的按键绑定列表,只有在激活光标浏览后才能使用。
按键 | 动作 |
---|---|
z | 将光标移到下一行 |
Z | 将光标移到上一行 |
a | 将光标移到下一个字符 |
A | 将光标移到上一个字符 |
w | 将光标移到下一个单词 |
W | 将光标移到上一个单词 |
b | 将光标移到页面底部 |
B | 将光标移到页面顶部 |
如果标记已启用并且光标浏览已激活,请按/
向前搜索文本并选择,?
向后搜索文本并选择。C-.
清除当前搜索文本。
- 例子
以此处 https://superuser.com/questions/1236864/how-to-use-vimium-to-select-text-from-a-page 为例,如果我们要获得相同的结果,则可以执行以下操作:
首先,按M-c
激活光标浏览,然后按C-i
设置标记。
其次,按/
打开搜索并选择,在小缓冲区输入mailto
,然后按enter
确认。
第三,按C-.
清除当前的搜索文本,然后再次按/
打开搜索并选择,在小缓冲区输入very
,然后按enter
确认。
再次,按一次w
选择一个单词或a
逐渐选择一个单词。
最后,按M-w
即可提取文字verycomplicatedandlonganduglydomainthatiwontsearachfor.com
额外增加用 marker 选中文本模块:
使用M-D
或者d
进入Marker文本选中模式
之前 | 之后 | 激活caret mode | 按d 光标右移后 |
---|---|---|---|
仅仅无span
或者p
祖宗节点和有 文本内容的span
节点会被选中。
随后设计了一个minor mode叫做eaf-browser-caret-mode
,继续通过M-c
开启关闭,开启时希望能够覆盖Emacs熟悉的C-n
,C-p
,C-f
,C-b
进行光标控制,但是由于未知原因,minor mode无法覆盖已经在eaf-browser-keybinding中定义的按键,随后已经尝试修复,但是均失败。随后,EAF大神@loyalpartner成功厘清了动态绑定的秘密,在#360中帮我修复了错误,在这里感谢他的努力!
另外,增加暗模式插入符号:
从深色模式bgcolor内联样式中排除类CaretBrowsing
。
优化“插入符号”浏览光标的暗模式颜色算法,使其可以遵循eaf-browser-dark-mode设置。
修复浏览器焦点问题导致有时使用caret选中文字时为灰色而不是蓝色(焦点不在浏览器中):