这是什么终端模拟器?
windows terminal
使用的是 w32 port 还是 WSL?
wsl
哥们你问的问题我上面不是全都写清楚了吗……
可能是 Windows Terminal 的 bug。这些年端模拟器的质量普遍低下,不建议在终端下使用 Emacs,类似 windows terminal 冒充 xterm 的终端模拟器非常容易出现显示问题。
如果真需要在 WSL 下运行终端模拟器,建议安装 X 服务器,使用正版 xterm。
New rendering engine
We’ve added a new profile setting,
experimental.useAtlasEngine
, that when set totrue
will enable a new text rendering engine. While the performance improvements aren’t generally noticeable, they can be seen in certain edge cases, most notably when presenting text with a large number of colors. In these cases, this new renderer will draw at the display refresh rate regardless of screen resolution. Please note that the engine is still a work in progress, it may be unstable, and some of your favorite features may still be missing. We look forward to improving this renderer over time and will hopefully replace the existing one by default once it meets feature parity.
Windows Terminal 预览版v13增加了新的渲染策略,可能会解决你的问题。
感谢,有个问题想请教下,由于我经常要用terminal打开explorer中的对应路径,我常用的操作就是在导航栏里输入wt
就能在这个目录下打开,那windows terminal preview对应的executable name是什么呢?我找了下安装路径,只找到一个也叫wt.exe
的符号链接。
Update: 找到了一个相对稳定的触发方式
- 在TUI下打开Emacs
- 然后打开一个文件
-
evil-window-vsplit
纵向分屏 -
C-x o
切换到右侧window - 打开另一个org-file
- 在这个org-file的任意source block中
C-c '
执行org-edit-special
即可复现,同样的步骤在GUI中测试过没有问题。
简单来说就是在右侧的window中执行org-edit-special
,原先右侧window的buffer会被放到左侧window中显示,然后右侧window中的光标移动就会影响到左侧的显示。
感觉可能确实是Windows Terminal的问题,分别尝试过开启下图中的选项,均无效
windows terminal preview的方案我还没尝试,等空了再测试一下。
按下Win键,搜索“alias”
TERM=vt102 下运行 Emacs 还会出现问题吗?
现在的$TERM
是xterm-256color
我之前使用Windows Terminal+Emacs时也出现过刷新问题,不得不自己多次按C-l强制刷新。改用MobaXTerm的时候就没类似问题。
现在看来新款渲染策略还是有一定效果的。
如果采用WindowsTerminal可以将TERM设置为vscode-direct,启用真彩色
Windows Terminal 在没有全面兼容 xterm 的情况下不该冒充 xterm。
export TERM=vscode-direct
之后,一方面很怪的是,这改变了我终端的颜色
这是启用前
这是启用后
另外就是这个设置对于我开头说的问题并没有效果,但是您回复里提到的C-l
还真能解决我的问题,借机问一下这个快捷键是zsh/bash的快捷键吗?
不清楚是不是我配置的问题,尝试了mobaxterm和windows terminal preview开启新渲染引擎,均无效。
我再emacs -Q
判断一下
Update: emacs -Q
不会发生该问题,从一开始就该先测试一下的,我再研究一下具体是哪部分引起的问题,耽误诸位的时间了十分抱歉。
C-l是emacs自带的快捷键,指向redraw-display
C-l
的原生快捷键绑定应该是recenter-top-bottom
?
对,recenter-top-bottom' 在 TTY frame 下默认会运行 \
redraw-display’。
二分法检查了一遍我的配置,找到了罪魁祸首:
git-gutter
不清楚具体的原因,但是在移除了相关配置之后,相应的问题不再复现了。感谢讨论的各位,如果有兴趣的话可以尝试一下在TUI下启用git-gutter
,然后按照我上面的步骤尝试复现相应问题。我自己能力有限,既然解决不了这个问题,暂时就先把这个包去除掉了。
最近在新增添margin之后,同样的问题又复现了。现在的判断应该是margin导致的问题。
总结下来就是,在Windows Terminal下使用TUI Emacs,涉及到margin的操作都有可能会使右侧window的操作影响到左侧window的显示。