我正在使用Windows上Ubuntu上的Bash程序来使用Emacs for C。现在,我可以使用键盘快捷键编写所有代码,但是,我想用鼠标选择文本或用鼠标设置标记,而不必总是使用键盘。
为了得到XWindows系统,我已经做了sudo apt-get安装xserver-xorg
,但是emacs仍然在终端编辑器中运行。
我不知道要使用什么其他命令,也不知道如何让X Windows开始运行。
默认的emacs将与Xming和其他选项一起工作。问题是默认的替代选项指向emacs24-nox命令。您需要安装emacs24,这将删除emacs24-nox。
$ sudo update-alternatives --query emacs
Name: emacs
Link: /usr/bin/emacs
....
Status: auto
Best: /usr/bin/emacs24-nox
Value: /usr/bin/emacs24-nox
$ sudo apt install emacs24
$ sudo update-alternatives --query emacs
Name: emacs
Link: /usr/bin/emacs
...
Status: auto
Best: /usr/bin/emacs24-x
Value: /usr/bin/emacs24-x
确保$DISPLAY设置正确。
export DISPLAY=localhost:0.0
感谢@尤里的漂亮回答,很管用!经过进一步的尝试
首先,下载Emacs源代码并安装“libxaw7-dev”包。“libncurse5 dev”只是为了防止您没有它。假设我们在目录~/build-emacs24中执行所有操作:
mkdir ~/build-emacs24
cd ~/build-emacs24
wget https://ftp.gnu.org/gnu/emacs/emacs-24.5.tar.xz
sudo apt-get install libxaw7-dev libncurses5-dev
tar xvf emacs-24.5.tar.xz
现在我们提取了“emacs-24.5”目录。为了防止其他地方报告的D-BUS问题,让我们在没有它的情况下进行配置,并将其安装在/usr/local/bin中(默认情况下):
cd emacs-24.5
./configure --without-dbus --without-gconf --without-gsettings --with-x-toolkit=athena
现在,我们几乎可以构建Emacs了。但在此之前,我们需要稍微调整一下内核,否则构建很快就会失败。(如果您感兴趣,让我们跳过细节,在您的emacs源代码中的“etc/PROBLEMS”中对此进行了解释。)您只需要在构建阶段使用它。一旦安装了新的emacs,就不需要再这样做了。
sudo sh -c "echo 0 > /proc/sys/kernel/randomize_va_space"
现在,让我们进入漫长的构建过程,在构建过程中,您可能会遇到整体系统减速,您可以减少构建中使用的线程数(这里我对2核4线程Intel CPU使用“4”,不要使用大于支持的线程数(cat/proc/cpuinfo),否则它将变得更慢。)
time nice make -j 4
只需要几分钟?接下来,现在安装它(记住这里的sudo):
sudo make install
在我的机器上,整个构建和安装只需要不到10分钟,还不错。现在我们有一个工作的Emacs 24.5位于"/usr/本地/bin/emacs"。如果你已经把一切都设置为@Yuri的答案,你现在应该可以启动它了:
/usr/local/bin/emacs &
现在你可以最大化它,做你想做的事情。这是一个屏幕截图,注意到右上角,它最大化了:
不要担心颜色,这是我自己的主题选择。
还有一个问题。让我们再次解决它。有时你选择了一个菜单项,“白色边框”再次攻击!
它现在变小了,但仍然很烦人。
幸运的是,这次我们可以让它消失。最大化/恢复窗口,它将消失。在几轮之后,它有时会停止再次发生,但并非总是如此。这仍然令人讨厌。既然调整窗口大小可以解决这个问题,为什么我们不让它成为自动的呢?也许是个不错的解决办法?
现在编辑“~/.emacs”文件并添加以下代码(:当然,使用新的emacs;):
(defvar fix-frame-white-border-last-check 0)
(defun current-sec ()
(let ((currtime (current-time)))
(logior (lsh (car currtime) 16) (cadr currtime))))
(defun fix-frame-white-border-uow (&optional frame)
(when (> (- (current-sec) fix-frame-white-border-last-check) 2)
(setf frame (or frame (selected-frame)))
(let ((width (frame-width frame))
(height (frame-height frame)))
(set-frame-size frame (1- width) height)
(set-frame-size frame width height))
(setq fix-frame-white-border-last-check (current-sec))))
(advice-add 'menu-bar-open :after #'fix-frame-white-border-uow)
(add-hook 'menu-bar-update-hook #'fix-frame-white-border-uow)
代码并不完美,但它是有效的。当你使用菜单时,它会稍微调整你的框架并立即恢复它。它还可以防止自己频繁调整大小。
Windows bash不支持X服务器。但是,将Windows X服务器端口(如MobaXTerm、XMing或vcXsrv)与Windows bash结合使用是可行的。有些事情是开箱即用的(gvim做到了),emacs需要更多的努力。
以下是我如何让它工作的:
>
安装MobaX术语。最有可能的是,您也可以让它与XMing一起工作,但我只使用MobaXterm进行了测试。更新:用vcXsrv和XMing(付费版本)测试。)工作原理基本相同,我可能会坚持使用MobaXTerm。
安装emacs 25.1快照。原因:Ubuntu14.04附带了Emacs24.3,它不适用于WindowsBash和MobaxTermX服务器(不知道为什么,而且它太旧了)
使用以下命令安装快照:
sudo add-apt-repository ppa:ubuntu-elisp/ppa
sudo apt-get update
sudo apt-get install emacs-snapshot
那就跑啊
sudo update-alternatives --config emacs
然后选择emacs快照
确保设置了显示
export DISPLAY=localhost:0.0
运行MobaXTerm(您不需要在其中做任何事情,只需启动它-它将在需要时启动X Server。)
在bash中运行emacs并享受。
仍然存在一个问题,它在我测试的所有三个包(MobaXTerm、XMing和vcXsrv)中都存在。Emacs坚持初始框架大小,当窗口调整大小时不会调整其框架大小。菜单栏也有同样的问题——当菜单栏被禁用时,emacs不会回收它的空间,它仍然是一个灰色矩形。这个问题似乎是Windows bash上的emacs特有的-gvim和其他GUI程序似乎运行良好。此外,在Linux上运行emacs 25.1使用Windows上的任何X服务器工作正常。我试图用不同的图形用户界面设置(GTK 2.0等)来构建emacs。)但是在视窗bash上制作的emacs卡住了。如果我找到一个解决办法,我将发布更新。
根据Jarett在您的init中更新2017年9月24日。el
应修复帧大小调整问题:
(setq frame-resize-pixelwise t)
我不再有带bash活动的窗口,所以我不能测试它。
问题内容: 这有些奇怪。 这返回 并不是 如何获得保留空格,以便文件路径正确? 问题答案: 可以通过几种方式完成此操作,但我发现这样做更好:
我正在尝试在Mac上使用带有IntelliJ的SceneBuilder。所以我下载了。dmg文件http://gluonhq.com/products/downloads/ 现在,我为IntelliJ中的SceneBuilder提供了以下路径: 当我试图打开一个,我得到了错误 看起来IntelliJ正在寻找这个sh脚本,但老实说,我不知道它在哪里。我在网上浏览了好几个网页,但实际上没有人帮我。。。
在 Emacs 配置文件中加入以下代码 (global-set-key (kbd "C-c d") 'kid-sdcv-to-buffer) (defun kid-sdcv-to-buffer () (interactive) (let ((word (if mark-active (buffer-substring-no-properties (region-beginning) (r
问题内容: 我正在尝试使用其中带有* 的URL在iPhone上发起呼叫。它会正确地调出呼叫对话框,但在您单击呼叫时又返回到野生动物园。 问题答案: 苹果公司的这份文档应该会有所帮助: 为防止用户恶意重定向电话或更改电话或帐户的行为,“电话”应用程序支持tel方案中的大多数(但不是全部)特殊字符。 具体来说,如果URL包含*或#字符,则“电话”应用程序不会尝试拨打相应的电话号码。
问题内容: 我在React中使用Typescript。我在理解如何使用refs方面遇到麻烦,以便相对于refs引用的react节点获得静态类型和智能感知。我的代码如下。 问题答案: 如果您使用的是React 16.3+,建议的创建引用的方法是使用。 组件安装后,属性的属性将分配给引用的组件/ DOM元素,并在卸载时分配回该属性。因此,例如,您可以使用进行访问。 有关更多信息,请参见@apieceo
给定以下具有Lombok注释的类和 在中的注释上出现以下错误: 隐式超级构造函数Parent()未定义。必须显式调用另一个构造函数。 我在子类和父类上尝试了、、注释与注释的几种不同组合,但还没有找到一个有效的解决方案。我使用的是Lombok 1.18.10。 供参考,这个问题是相关的 编辑