emacs - 在掩埋缓冲区上的 goto-char 后 Emacs 没有移动点
问题描述
如果我评估
(with-current-buffer "xx"
(goto-char(point-max)))
当缓冲区 xx 被掩埋时,点在我切换到它后不会移动。在为错误筛选代码 5 天后才发现它不是一个错误,而是一种令人发狂的行为,我找不到任何文档或相关搜索结果,这让我发疯了。
解决方案
您将点移动到该缓冲区中您想要的位置,但不是在任何窗口中。有问题的缓冲区永远不需要显示。with-current-buffer
让 Lisp 代码在缓冲区中做事。你混淆window-point
了point
.
试试这个,看看区别,假设您的缓冲区xx
显示在某个框架的某个可见窗口中(或者如果它在一个不可见窗口中,则使用t
而不是):visible
(with-current-buffer "xx"
(goto-char 5000)
(message "PT: %S, WINDOW PT: %S"
(point)
(window-point (get-buffer-window "xx" 'visible))))
您可以使用函数set-window-point
来设置window-point
. 请参阅 Elisp 手册,节点Window Point。
推荐阅读
- amazon-ec2 - 如何将新的 EC2 实例(来自账户 A)添加到 AWS 中的 ECS 集群(账户 B)?
- c# - 如何修复 C# 谷歌搜索
- python - python grep multiple words in logcat
- scala - 如何将字符串写入 HDFS 中的文本文件?
- binary - 使用门级图理解二进制乘法器
- python - Geopandas 旋转功能
- sql - 仅当sql中的值不为null时才选择查询
- unity3d - 我可以制作更新PC版构建游戏吗?(我使用Unity)
- database - 从头开始创建数据库连接
- java - ConcurrentModificationError Java,else if 语句和 for each 循环(我不知道也不能使用迭代器)