WindowsプログラムのUbuntuでBashを使用して、Emacs for C++を使用しています。現在、キーボードショートカットを使用してすべてをコーディングできますが、常にキーボードを使用する代わりに、マウスでテキストを選択するか、マウスでマークを設定します。
X Windowsシステムを取得するために、すでにSudo apt-get install xserver -xorg
しかし、emacsは引き続きターミナルエディタで実行されます。
他にどのコマンドを使用するか、X Windowsを実行する方法を知りません。
Windows bashはXサーバーをサポートしていません。ただし、MobaXTerm、XMing、vcXsrvなどのWindows X ServerポートをWindows bashと組み合わせて使用することはできます。いくつかのことは箱から出して動作します(gvimは動作しました)、emacsはより多くの努力を必要とします。
これがどのように機能するかを示します。
MobaXterm をインストールします。ほとんどの場合、XMingでも動作させることができますが、私はMobaXtermでのみテストしました。 更新:vcXsrv および XMing でテスト(有料版)基本的に同じ動作をします。おそらく、MobaXTermを使い続けるでしょう。
Emacs 25.1スナップショットをインストールします。理由:Ubuntu 14.04にはemacs 24.3が付属していますが、これはWindows bashおよびMobaXTerm Xサーバーでは動作しません(理由はわかりませんが、とにかく古すぎます)。
次のコマンドを使用してスナップショットをインストールします。
Sudo add-apt-repository ppa:ubuntu-elisp/ppa
Sudo apt-get update
Sudo apt-get install emacs-snapshot
次に実行する
Sudo update-alternatives --config emacs
emacs-snapshot
を選択します
必ずDISPLAY
を設定してください
export DISPLAY=localhost:0.0
MobaXTermを実行します(実行する必要はありません。起動するだけです。必要に応じてXサーバーを起動します)。
Bashでemacsを実行してお楽しみください。
1つの問題が残っており、テストした3つのすべてのパッケージ(MobaXTerm、XMing、およびvcXsrv)で問題が解決しません。 Emacsは初期のフレームサイズに固執し、ウィンドウのサイズが変更されてもフレームのサイズを変更しません。メニューバーに関する同じ問題-メニューバーが無効になっている場合、emacsはそのスペースを再利用せず、灰色の長方形のままになります。この問題は、Windows bashのemacsに固有のようです-gvimおよびその他のGUIプログラムは正常に動作するようです。また、Windows上の任意のXサーバーを使用してLinuxでemacs 25.1を実行しても正常に機能します。異なるGUI設定(GTK 2.0など)でemacsを構築しようとしましたが、Windows bashでemacs makeがスタックします。これの回避策を見つけた場合、更新を投稿します。
2017年9月24日更新Jarett によると、init.el
内の以下はフレームサイズ変更の問題を修正するはずです:
(setq frame-resize-pixelwise t)
BashをアクティブにしたWindowsはもうないので、テストすることはできません。
@Yuriの素敵な答えをありがとう、うまくいきます!さらに試行錯誤を重ねた結果、白い境界線の問題を解決する方法を見つけました。 Emacs v24.5ソースコードから再構築する必要があります(gitリポジトリでv25バージョンをいくつか試しましたが、すべて失敗しました。gitリポジトリを使用している場合は、チェックアウトタグ "emacs-24.5-rc3")。 構成段階では、現在の「gtk3」の代わりに「lucid」(または「athena」、同じこと)x-toolkitを選択する必要があります。「モチーフ」にも同じ問題があることに注意してください。
最初に、Emacsソースコードをダウンロードし、「libxaw7-dev」パッケージをインストールします。 「libncurses5-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」を使用します。 tサポートされているスレッド(cat/proc/cpuinfo)よりも大きい数を使用すると、さらに遅くなります。)
time Nice make -j 4
数分しかかかりませんか?まだまだありますので、インストールしてください(ここの「Sudo」を思い出してください):
Sudo make install
ビルドとインストール全体は私のマシンで10分未満で完了し、それほど悪くはありません。これで、「/ usr/local/bin/emacs」に動作するEmacs 24.5ができました。すべてが@Yuriの答えとして設定されている場合、今すぐ起動できるはずです。
/usr/local/bin/emacs &
今、あなたはそれを最大化し、あなたが望むことをすることができます。以下はスクリーンショットで、右上隅に注目して、最大化されています:
色を気にしないでください、それは私自身のテーマの選択です。
もう1つ問題があります。再度回避策を取りましょう。メニュー項目を選択すると、「白い境界線」が再び攻撃することがあります!
小さくなりましたが、いらいらします。
幸いなことに、今回はそれを手放すことができます。ウィンドウを最大化/復元すると、消えます。数ラウンド後、それは再び起こることを時々停止しますが、常にではありません。これはまだ迷惑です。ウィンドウのサイズを変更するとこの問題を解決できるので、なぜ自動化しないのですか?たぶん悪くない回避策ですか?
「〜/ .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)
コードは完璧ではありませんが、機能します。メニューを使用すると、フレームのサイズが少し変更され、すぐに復元されます。また、頻繁にサイズ変更されることを防ぎます。
デフォルトのemacsは、Xmingおよびその他のオプションで機能します。問題は、デフォルトの代替がemacs24-noxコマンドを指していることです。代わりに、emacs24-noxを削除する「emacs24」をインストールする必要があります。
$ 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