約 3,049,710 件
https://w.atwiki.jp/ntemacs/pages/48.html
■ Windows版 Emacs 共通の設定 (一部の設定を除き、Linux版 Emacs にも適用可能) 【お知らせ】 2021/12/16 追記 相互リンク。こちらも参考になると思います。 https //ploversky.net/archives/463 2020/04/23 追記 ワンショットモディファイアの機能を利用し、左右の Alt キーに IME の切替えを割り当てられるようにしました。Keyhac の設定と連携することで動作します。US のキーボードを利用している場合にお試しください。 なお、次の設定も同じ操作性にできるように見直しました。 Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版) 2020/04/13 追記 「IME を無効にするキー設定」と「IME を有効にするキー設定」を追加しました。初期設定では、「無変換」キーと「変換」キーを割り当てています。C-o の設定はトグル動作となっていますが、設定の中のコメントを見直すことで変更可能です。お勧めは、C-o のトグル設定は残して C-j に英数への切替えを設定するものです。日本語への切替えが C-o によるトグル操作による切替えの他、C-j C-o での一発切替えが可能となります。(helm 利用の際に C-j がバッティングしますが、C-o で逃げれます。) なお、次の設定も同じ操作性にできるように見直しました。 Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版) 2019/05/17 追記 wdired 利用時に C-o による日本語入力を可能とする設定を追加しました。 2018/08/12 追記 mozc-im-mode 変数をバッファローカル変数にする方法を make-variable-buffer-local 関数を使う方法から defvar-local で定義する方法に見直しました。Emacs-24.3 以降で有効な設定となります。 https //qiita.com/tadsan/items/9d287a57c26711387043 2018/01/04 追記 mozc-candidate-dispatch の advice が helm の仕様変更により動作しなくなっていましたので見直しました。この対応で、dired 利用時に + キーで動作する dired-create-directory でも日本語が正常に入力できるようになりました。 2017/05/04 追記 本設定は Windows Subsystem for Linux でも利用可能です。設定は次のページから始めてください。 emacs-mozc を動かすための設定(WSL 設定編) 2016/12/01 追記 次のページで報告されている問題について対策しました。 https //github.com/d5884/mozc-im/pull/1 2016/09/13 追記 5) で mozc_emacs_helper.exe に対し IME を ON にするために発行しているキーを「Hiragana」から「Hankaku/Zenkaku」に変更しました。この対応で、Google日本語入力のキー設定が「MS-IME」以外の「ことえり」などでも emacs-mozc を使えるようになりました。(ただし、「Hankaku/Zenkaku」キーは「Hiragana」キーと異なり、IME の ON/OFF をトグルするキーとなります。必要な場合に一度のみ発行するように注意して利用する必要があります。(本設定を利用すれば問題は発生しません。)) 2015/12/07 追記 本設定とは直接関係ありませんが、isearch でキルリングを張り付けるには、C-s RET C-y とすればいいのですね。知りませんでした..。 http //kouritool.com/itdiary/emacs%E3%81%A7%E5%BC%B5%E3%82%8A%E4%BB%98%E3%81%91%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A4%9C%E7%B4%A2/ 【本題】 【重要】 WSL版 Emacs の利用者は、最初に「emacs-mozc を動かすための設定(WSL 設定編)」を参照してください。 【重要】 Windows版 Emacs の利用者は、事前に「emacs-mozc を動かすための設定(mozc_emacs_helper コンパイル編)」を参照してください。 【重要】 「emacs-mozc を動かすための設定(サーバ準備編)」を行う方法もありますが、特に理由がなければ mozc_emacs_helper.exe を利用する方法をお勧めします。 【重要】 Linux で mozc(Google日本語入力ではなく)を利用する場合は、次の対応を行った後、(共通)の設定を進んで下さい。 $ sudo apt install emacs-mozc-bin $ sudo apt install mozc-utils-gui NTEmacs で emacs-mozc を動かすための Emacs 設定編です。 以下は設定手順です。 1) (共通)melpa package から、mozc、mozc-im、mozc-popup をインストールする。 ※ mozc-candidate-style を overlay に設定した場合、動作が遅く使用に耐えません。これを改善するのが mozc-popup です。tabbar との相性も良いとの情報もあります。 ※ mozc-im を使うことで、isearch の中でも mozc による日本語入力が可能となります。 2) (共通)次のページから mozc-cursor-color.el をダウンロードし、~/.emacs.d/site-lisp 等の load 対象となるディレクトリ配下にサブディレクトリを作成し格納する。 https //github.com/iRi-E/mozc-el-extensions 3) (「サーバ準備編」利用の場合)サーバ準備編で git により作成された vagrant-emacs-mozc ディレクトリ以下に mozc-emacs-helper.sh というファイルがあるので、このファイルを ~/bin 等の PATH の通ったフォルダにコピーする。既存の Linux環境を利用する場合は、mozc-emacs-helper.sh の中身を確認し、Linuxマシンに自動ログインできるスクリプトに書き換える。置き換えるスクリプトは以下のようなもの。 ssh user @localhost -p port mozc_emacs_helper "$@" また、MinGW版 Emacs を利用している場合は、「fakecygpty を使うための設定」を利用し、fakecygpty-program-list に "mozc-emacs-helper.sh" を追加する。 4) (共通)init.el 等に以下の elisp の設定を追加する。 (require mozc-im) (require mozc-popup) (require mozc-cursor-color) (require wdired) (setq default-input-method "japanese-mozc-im") ;; popupスタイル を使用する (setq mozc-candidate-style popup) ;; カーソルカラーを設定する (setq mozc-cursor-color-alist ((direct . "red") (read-only . "yellow") (hiragana . "green") (full-katakana . "goldenrod") (half-ascii . "dark orchid") (full-ascii . "orchid") (half-katakana . "dark goldenrod"))) ;; カーソルの点滅を OFF にする (blink-cursor-mode 0) (defun enable-input-method ( optional arg interactive) (interactive "P\np") (if (not current-input-method) (toggle-input-method arg interactive))) (defun disable-input-method ( optional arg interactive) (interactive "P\np") (if current-input-method (toggle-input-method arg interactive))) (defun isearch-enable-input-method () (interactive) (if (not current-input-method) (isearch-toggle-input-method) (cl-letf (((symbol-function toggle-input-method) (symbol-function ignore))) (isearch-toggle-input-method)))) (defun isearch-disable-input-method () (interactive) (if current-input-method (isearch-toggle-input-method) (cl-letf (((symbol-function toggle-input-method) (symbol-function ignore))) (isearch-toggle-input-method)))) ;; IME をトグルするキー設定 (global-set-key (kbd "C-o") toggle-input-method) (define-key isearch-mode-map (kbd "C-o") isearch-toggle-input-method) (define-key wdired-mode-map (kbd "C-o") toggle-input-method) ;; IME を無効にするキー設定 (global-set-key (kbd "C- f1 ") disable-input-method) (define-key isearch-mode-map (kbd "C- f1 ") isearch-disable-input-method) (define-key wdired-mode-map (kbd "C- f1 ") disable-input-method) ;; (global-set-key (kbd "C-j") disable-input-method) ;; (define-key isearch-mode-map (kbd "C-j") isearch-disable-input-method) ;; (define-key wdired-mode-map (kbd "C-j") disable-input-method) ;; IME を有効にするキー設定 (global-set-key (kbd "C- f2 ") enable-input-method) (define-key isearch-mode-map (kbd "C- f2 ") isearch-enable-input-method) (define-key wdired-mode-map (kbd "C- f2 ") enable-input-method) ;; (global-set-key (kbd "C-o") enable-input-method) ;; (define-key isearch-mode-map (kbd "C-o") isearch-enable-input-method) ;; (define-key wdired-mode-map (kbd "C-o") enable-input-method) ;; mozc-cursor-color を利用するための対策 (defvar-local mozc-im-mode nil) (add-hook mozc-im-activate-hook (lambda () (setq mozc-im-mode t))) (add-hook mozc-im-deactivate-hook (lambda () (setq mozc-im-mode nil))) (advice-add mozc-cursor-color-update around (lambda (orig-fun rest args) (let ((mozc-mode mozc-im-mode)) (apply orig-fun args)))) ;; isearch を利用する前後で IME の状態を維持するための対策 (add-hook isearch-mode-hook (lambda () (setq im-state mozc-im-mode))) (add-hook isearch-mode-end-hook (lambda () (unless (eq im-state mozc-im-mode) (if im-state (activate-input-method default-input-method) (deactivate-input-method))))) ;; wdired 終了時に IME を OFF にする (advice-add wdired-finish-edit after (lambda ( rest args) (deactivate-input-method))) gnupack 等で W32-IME の設定がされている場合は、以下の箇所をコメント化してください。 gnupack-11系: 「@ime」セクション gnupack-12,13系: 「@ language - input method」セクション、「@ screen - cursor」セクション、「@ search - isearch」セクションの後半 MinGW版 Emacs を使っている場合は、以下の設定を追加してください。 ;; IME が ON の時、カーソルの移動が遅くなるのを改善する (setq w32-pipe-read-delay 10) helm を使っている場合は、以下の設定を追加してください。 (require cl-lib) ;; helm でミニバッファの入力時に IME の状態を継承しない (setq helm-inherit-input-method nil) ;; helm の検索パターンを mozc を使って入力した場合にエラーが発生することがあるのを改善する (advice-add mozc-helper-process-recv-response around (lambda (orig-fun rest args) (cl-loop for return-value = (apply orig-fun args) if return-value return it))) ;; helm の検索パターンを mozc を使って入力する場合、入力中は helm の候補の更新を停止する (advice-add mozc-candidate-dispatch before (lambda ( rest args) (when helm-alive-p (cl-case (nth 0 args) ( update (unless helm-suspend-update-flag (helm-kill-async-processes) (setq helm-pattern "") (setq helm-suspend-update-flag t))) ( clean-up (when helm-suspend-update-flag (setq helm-suspend-update-flag nil))))))) ;; helm で候補のアクションを表示する際に IME を OFF にする (advice-add helm-select-action before (lambda ( rest args) (deactivate-input-method))) 5) (「mozc_emacs_helper コンパイル編」利用の場合)init.el 等に以下の elisp の設定を追加する。 ;; Windows の mozc では、セッション接続直後 directモード になるので hiraganaモード にする (advice-add mozc-session-execute-command after (lambda ( rest args) (when (eq (nth 0 args) CreateSession) ;; (mozc-session-sendkey (hiragana))))) (mozc-session-sendkey (Hankaku/Zenkaku))))) 6) (「サーバ準備編」利用の場合)init.el 等に以下の elisp の設定を追加する。 ;; https //github.com/igjit/vagrant-emacs-mozc (setq mozc-helper-program-name "mozc_emacs_helper.sh") (setq mozc-helper-process-timeout-sec 10) 7) (「mozc_emacs_helper コンパイル編」利用の場合)mozc のキーバインドを設定する。 「Google日本語入力」のプロパティで、「キー設定」を「ことえり」に選択してください。「ことえり」は Emacsキーバインドをベースとしたキー設定となっており、更に以下のキーが近いキー位置で利用可能となっています。 C-i (文節を縮める) C-o (文節を伸ばす) C-j (ひらがなに表示切替) C-k (全角カタカナに表示切替) C-l (全角英数に表示切替) C-; (半角に表示切替) C- /C- (半角英数に表示切替) ※ ターミナルソフトから Emacs を利用する場合、C-;、C- 、C- は利用できません。他のキーに置き換えてご利用ください。 8) (「サーバ準備編」利用の場合)mozc のキーバインドを設定する。 Linuxサーバ の mozc のキーバインドの設定は mozc_tool というコマンドで行いますが、Vargent で作成した Linuxサーバには mozc_tool はインストールされていません。このため、Windows PC に「Google日本語入力」をインストールして 7) の設定を行い、設定した結果が格納されている以下のファイルを Linux 側の ~/.mozc ディレクトリにコピーすることで対応してください。ファイルをコピーした後は Linuxサーバを再起動してください。 c /Users/ user /AppData/LocalLow/Google/Google Japanese Input/config1.db コマンド実行手順は以下のとおりとなります。 $ ssh -p 2422 -i ~/.vagrant.d/insecure_private_key vagrant@127.0.0.1 mkdir -p ~/.mozc $ cd c /Users/ user /AppData/LocalLow/Google/Google Japanese Input $ scp -P 2422 -i ~/.vagrant.d/insecure_private_key config1.db vagrant@127.0.0.1 ~/.mozc $ cd gitした場所 /vagrant-emacs-mozc $ vagrant reload なお、Linuxサーバに mozc-utils-guiパッケージ をインストールすれば、mozc_tool コマンドの表示を Cygwin/X 等の Xサーバに表示させることができます。コマンドは以下のとおりです。 $ sudo apt install mozc-utils-gui $ /usr/lib/mozc/mozc_tool --mode=config_dialog ただし、「emacs-mozc を動かすための設定(サーバ準備編)」でインストールした Linuxサーバ では、LANG の設定をしただけでは日本語の表示はできないようです。 9) (共通)Emacs で C-o を入力することにより、mozc-emacs-helper が起動し、漢字が入力できることを確認する。 ※ 「emacs-mozc を動かすための設定(WSL 設定編)」から本ページに来た場合は、まだ漢字入力はできません。このまま進んでください。 10) (共通)Windows の IME の切換えキーで mozc を切り替えられるように調整する。 ※ Virtualbox の Linux で Emacs を動作させている場合は、本設定で利用している Keyhac は有効に機能しません。本設定は、Windows版 Emacs や Windows の Xサーバソフトを経由して Emacs を動作させている場合に有効な設定です。 Windows の IME の切換えキー(「半角/全角」(日本語キーボード用)や Alt-`(英語キーボード用))で mozc を切り替えられるようにするには、「Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版)」の併用を検討ください。(Fakeymacs extension の real-emacs を有効にしてください。)IME の切換えの対応のみ行いたい場合には、以下の設定が利用できます。設定の方法はコメントの URL を参照してください。 これらの設定は、NTEmacs(gnupack 含む)と Windows の Xサーバで動く Emacs で機能するようにしています。Windows の Xサーバで Emacs が動作しているかどうかは、ウィンドウのタイトルで判定しています。Emacs の設定でタイトルの表示内容を変更している場合には、re.search 内の検索する正規表現を調整することで対応してください。 # -*- mode python; coding utf-8-with-signature-dos -*- # http //qiita.com/hshimo/items/2f3f7e070ae75243eb8b import re from keyhac import * def configure(keymap) def is_real_emacs(window) if (window.getClassName() == "Emacs" or (window.getProcessName() in ["mstsc.exe", # WSLg "msrdc.exe", # WSLg "XWin.exe", # Cygwin/X "XWin_MobaX.exe", # MobaXterm/X "XWin_MobaX_1.16.3.exe", # MobaXterm/X "XWin_Cygwin_1.14.5.exe", # MobaXterm/X "XWin_Cygwin_1.16.3.exe", # MobaXterm/X "Xming.exe", # Xming "vcxsrv.exe", # VcXsrv "GWSL_vcxsrv.exe", # GWSL "GWSL_vcxsrv_lowdpi.exe", # GWSL "X410.exe", # X410 "Xpra-Launcher.exe", # Xpra ] and # ウィンドウのタイトルを検索する正規表現を指定する # Emacs を起動しているウィンドウを検索できるように、Emacs の frame-title-format 変数を # 次のように設定するなどして、識別できるようにする # (setq frame-title-format (format "emacs-%s - %%b " emacs-version)) # (別途公開している sglstart コマンドを利用している場合、%%b の後のスペースは必要) re.search(r"^emacs-", window.getText()))) return True else return False keymap_real_emacs = keymap.defineWindowKeymap(check_func=is_real_emacs) # IME 切り替え用のキーの置き換え keymap_real_emacs["(243)"] = keymap.InputKeyCommand("C-Yen") # 半角/全角 キー keymap_real_emacs["(244)"] = keymap.InputKeyCommand("C-Yen") # 半角/全角 キー keymap_real_emacs["A-(25)"] = keymap.InputKeyCommand("C-Yen") # Alt-` キー keymap_real_emacs["(29)"] = keymap.InputKeyCommand("C-F1") # 無変換 キー keymap_real_emacs["(28)"] = keymap.InputKeyCommand("C-F2") # 変換 キー # keymap_real_emacs["O-LAlt"] = keymap.InputKeyCommand("C-F1") # 左 Alt キーの単押し # keymap_real_emacs["O-RAlt"] = keymap.InputKeyCommand("C-F2") # 右 Alt キーの単押し 変更履歴 2014/10/30 このページを作成した。 2014/11/02 minibuffer-setup-hook の設定を追加した。 2014/11/04 wdired を使う際の設定を追加した。 2014/11/18 「emacs-mozc を動かすための設定(mozc_emacs_helper コンパイル編)」に対応した。 2014/11/20 IME が ON の時、カーソルの移動が遅くなる対策を追加した。(w32-pipe-read-delay の値を デフォルトの 50 から 10 に変更した。) 2014/11/24 minibuffer-setup-hook 内の unless の判定を Emacs-24.3 以前のバージョンでも有効なものに変更した。 2014/11/27 helm の検索パターンを mozc を使って入力した場合にエラーが発生することがある対策を追加した。 2014/11/29 helm の検索パターンを mozc を使って入力する場合、入力中は helm の候補の更新を停止するようにした。 2014/12/12 helm で候補のアクションを表示する際に IME を OFF にするようにした。 2015/01/17 mozc-popup を最新と思われるサイトのものの利用に変更した。 2015/03/11 mozc-helper-process-recv-response のアドバイスの内容を簡略化した。 2015/07/22 Emacs-24.3 以上の対応の記載とした。 2015/09/10 advice を Emacs-24.4 以降の書式に見直した。 2015/10/30 mozc-im を利用するように設定を全面的に見直した。 2015/11/12 mozc-candidate-dispatch の advice を一度削除していたが、やはりあるべき設定のようなので復活させた。 2015/12/28 keyhac の設定の内容を、Keyhac for Windows ver 1.70 用に見直しをした。 2016/12/01 https //github.com/d5884/mozc-im/pull/1 で報告されている問題について対策した。 2017/07/11 Emacs で mozc を利用する際に Windows の IME の切換えキーを mozc の切り替えキーとして機能させるための設定を見直した。 2017/12/21 keyhac の設定で import re の行が不足していたので、追加した。 2019/05/17 wdired 利用時に C-o による日本語入力を可能とする設定を追加した。 2020/04/13 「IME を無効にするキー設定」と「IME を有効にするキー設定」を追加した。 2020/04/19 ワンショットモディファイアの機能を利用し、左右の Alt キーに IME の切替えを割り当てられるようにした。
https://w.atwiki.jp/lag-tengoku-l2j/pages/9.html
メール送信エラー (件名) 件名に誤りがあります。 入力内容を確認して、再度送信してください。 それでもダメなら、申し訳ありませんが掲示板の方へご連絡ください。 メールフォームに戻る
https://w.atwiki.jp/kusataro/pages/180.html
PS3DL(プレイステーション3ダウンロード専用) Aabs Animals クリア(・∀・) アストロトリッパー クリア(・∀・) いっき おんらいん UNO 風ノ旅ビト クリア(・∀・) クレイジータクシー クリア(・∀・) SIMPLE500シリーズ Vol.2 THE 密室からの脱出 クリア(・∀・) TVショーキング Tetris のびのびBOY クリア(・∀・) ぷち戦車隊 ~オンライン戦線~ ブルーオアシス~魚の癒し空間~ クリア(・∀・) ボンバーマンウルトラ クリア(・∀・) Mr.PAIN みんなでスペランカー クリア(・∀・) 無限回廊 -序曲- WipEout HD
https://w.atwiki.jp/ntemacs/pages/69.html
【トピック】 ● WSL_トピック ● Docker_トピック ● Xpra_トピック 【お知らせ】 2022/10/14 追記 本ページの設定を多少変更すると WSLg で動かすこともできます。WSLg ではキーボードの設定がうまく行われない場合があるようですので、その場合は以下のどちらかの行の設定を行ってください。 setxkbmap -layout us setxkbmap -layout jp 2022/10/14 追記 X11 サーバを GWSL とするように、全体的な見直しを行いました。 2022/04/19 追記 2021年の補完UI事情とEmacs28に標準添付されるfido-vertical-modeについて https //qiita.com/tadsan/items/f1738cb463b1ec536f84 2022/01/04 追記 興味深いコマンドを2つ紹介します。 https //linuxcommand.net/stdbuf/ https //vmi.jp/software/cygwin/cocot.html 2021/12/10 追記 2019/04/22 追記 で winsudo というコマンドを紹介しておりますが、gsudo というコマンドがあるようです。まだ使ってみてはおりませんが、紹介します。 https //qiita.com/_masa_u/items/a799745d70b30c32a03b https //github.com/gerardog/gsudo 2021/09/17 追記 WSL2 で WSLg と GWSL を利用する場合の比較をしてみました。GWSL は VcXsrv を利用しているので、GWSL に記載してある内容は VcXsrv を利用する場合にも当てはまります。 <GWSL> ・新しい Microsoft IME を選択しているとカーソルのレスポンスが悪くなる(古いMicrosoft IME や Google日本語入力ではこの問題は発生しません) ・Emacs 起動時にウインドウが小さく表示される問題が発生する( 13) に回避対策の記載があります) ・DISPLAY 環境変数を独自に設定する必要がある( 0 では動きません) <WSLg> ・カーソルが遅くなる問題が発生しない ・Emacs 起動時にウインドウが小さく表示される問題が発生しない ・DISPLAY 環境変数が 0 で動作する ・Windows 10 では動作しない ⇒ (2022/11/18 追記)Windows 10 21H1 以降では、パッチ KB5020030 をインストールし、Microsoft Store版 WSLv1.0.0 をインストールすると動作するようです。 ・Emacs を最大化しても完全な最大化とならない(下部の最大化がならない部分から背景が見えてしまいます) ⇒ (2022/11/18 追記)Microsoft Store版 WSLv1.0.0 では改善していることを確認しました。 ・ウインドウ枠が独自のため、アクティブなウインドウの状況が分かりづらい(Windows でアクティブウインドウのタイトルバーの色を変える設定にしていても、WSLg のウインドウは対象になりません) ・Windows のウィンドウの操作作法が利用できない(画面の上画面外へのドラックで画面の最大化がされるなどの操作が使えません) 現時点では、後半の2つの問題を許容できないことから、GWSL を選択して利用しています。 2021/08/09 追記 X Window のキーリピートの速度を変更するには、以下のようなコマンドで対応できます。なお、 2020/08/08 追記 に記載しているとおり、VcXsrv は 新しい Microsoft IME と相性が良くありません。VcXsrv を利用する場合は、IME に Google 日本語入力や古い Microsoft IME を選択するようにしてください。 $ xset r rate 400 40 2021/06/25 追記 Emacs の設定は、leaf.el を使うのが人気のようです。お試しください。 https //qiita.com/conao3/items/347d7e472afd0c58fbd7 2021/06/17 追記 本ページでは、補完 UI として helm を紹介していますが、主流は変わりつつあるようです。以下が参考となりますので紹介させていただきます。 https //blog.tomoya.dev/posts/a-new-wave-has-arrived-at-emacs/ 2021/02/05 追記 本ページの内容は WSL2 でも動作します。DrvFs や VolFs の記載がある場合には、Windows 側のファイルシステム、WSL2 側のファイルシステムと読み替えてください。 2020/08/08 追記 Windows 10 ver 2004 の WSL/WSL2 で Emacs を VcXsrv に接続して使っていると、カーソル移動後の停止がワンテンポずれる症状が発生します。これは、IME に新しい Micorosoft IME が選択されているときに発生することが分かりました。IME に Google 日本語入力や古い Microsoft IME が選択されているときには発生しません。WSL/WSL2 の Emacs では、mozc_emacs_helper.exe を使って Google 日本語入力と連携して日本語入力を行っているため、なかなか気づきませんでした。 ⇒(2020/08/23 追記)この現象は MobaXterm の X サーバでは発生しないようです。 2020/08/06 追記 WSL2 から VcXsrv(GWSL の中でも利用)へのアクセスを許可する方法として、vcxsrv.exe の起動時に -ac オプションを付ける(Disable access control とする)方法があります。この方法は、以下のサイトで紹介しているようなセキュリティ的な問題が発生するので、避けることをお勧めします。 https //itpass.scitec.kobe-u.ac.jp/~itpass/hiki/hiki.cgi?%5BExp2010%5DX+Window+System#X+-E3-81-AE-E3-82-BB-E3-82-AD-E3-83-A5-E3-83-AA-E3-83-86-E3-82-A3 アクセスをコントロールする方法は、以下のようなものがあります。 xhost でアクセス許可を行う(説明の 10) に設定例あり) xauth でアクセス許可を行う ssh の -Y オプション(ForwardX11Trusted)を使う(-X オプション(ForwardX11)の場合、config に XAuthLocation の設定をしてもうまく機能しませんでした。ネットにも同様の報告があります。) ssh でポートフォワーディングをして使う 2020/07/14 追記 次のページを作成しました。この下の追記の設定とセットでご利用ください。 Windows の ssh から WSL2 の sshd に接続するための設定 2019/07/16 追記 ssh-agent-wsl を利用すると、Windows 側の ssh-agent を WSL から利用できるようです。 https //github.com/rupor-github/ssh-agent-wsl https //qiita.com/q1701/items/3cdc2d7ef7a3539f351d 次の設定を ~/.bash_profile に追加するのが良いと思います。 eval $( ssh-agent-wsl コマンドを置いた Windows のパス /ssh-agent-wsl -a ~/.ssh/ssh-agent-wsl.sock -r) ssh-add で登録した秘密鍵が保持されパスフレーズの入力が不要となるため、次の設定で紹介している wslemacs-start.exe との相性が良くなります。 WSL の emacsclient を Windows から利用するための設定 ⇒(2020/07/10 追記)同じ開発者から新しいプロジェクトがリリースされていました。 https //github.com/rupor-github/wsl-ssh-agent https //hnakamur.github.io/blog/2020/03/06/setup-wsl-ssh-agent/ 使ってみましたが、wsl-ssh-agent はまだ WSL2 で利用できないようですので、ssh-aget-wsl を使い続けることにしました。 2020/04/28 追記 新しい Linux ディストリビューションへのホームディレクトリの移行には、以下のバッチファイルをお試しください。バッチファイルですので、コマンドプロンプトからの起動となります。(変数の設定値は適宜変更してご利用ください。) set home_dir=user set src_distro=Ubuntu-18.04 set dst_distro=Ubuntu-20.04 wsl -d %dst_distro% -u root bash -c "mv /home/%home_dir% /home/%home_dir%.orig" wsl -d %src_distro% -u root bash -c "(cd /home; tar cvf - %home_dir%)" | wsl -d %dst_distro% -u root bash -c "(cd /home; tar xvf -)" 2019/09/20 追記 Xサーバを利用する際に「全角/半角」キーリピート問題が発生する場合には、次のページを参考に対応してください。(私は US キーボードを使っているため、この問題には遭遇していません。) https //seesaawiki.jp/w/kou1okada/d/20160905%3A%20Ubuntu%20%A4%CE%C6%FC%CB%DC%B8%EC%C6%FE%CE%CF%B5%A1%C7%BD%A4%CE%C9%D4%B6%F1%B9%E7 2019/08/09 追記 13) に「<フレームの高さを補正する設定>」の説明を追加しました。WSL Emacs on VcXsrv でフレームを開く際、高さが低く作成される状況が改善されます。 2019/04/22 追記 WSL から Windows の exe コマンドを管理者権限で実行するコマンド winsudo を公開しました。お試しください。 https //github.com/smzht/wsl-utils#-winsudo なお、このコマンドを利用する際は、【お知らせ】 の 2019/03/04 追記 に記載した「exec /dev/tty」の設定を解除する必要があります。解除時に利用できる exe コマンドを実行するためのコマンド win も併せて公開していますので、お試しください。 https //github.com/smzht/wsl-utils#-win 2019/04/19 追記 WSL で Emacs を使っている理由の大きな一つに、次の設定をすることにより Emacs の Dired で Windows ショートカットのハンドリングができることがあります。Windows ショートカットは Windows のデスクトップ環境で頻繁に使われており、ファイルシステムに依存していない一般ファイルであることから可搬性も高く(どこにでも移動や複写ができる)、Emacs の Dired で使えると非常に便利です。是非お試しください。 Windows ショートカットを dired と連携して使うための設定 WSL で NTFS シンボリックリンクや Windows ショートカットを作成するための設定 ディレクトリの Windows ショートカットがある場合、shell の cd コマンドでその Windows ショートカットを辿ることはできません。そのために、次の設定と組み合わせた利用をお勧めします。この設定は tramp の接続先でも動作します。 shellバッファ を簡単にポップアップするための設定 以上の設定は、すべて本ページで紹介しているものとなります。 2019/03/04 追記 Windows 10 1809 にアップデートしたところ、Emacs の shell-mode で exe コマンドを実行できなくなりました。(実行すると、プロンプトが帰ってこなくなります。)次のページで同様の問題が報告されています。 https //github.com/Microsoft/WSL/issues/3895 回避策として、以下の方法があるようです。 ipconfig.exe | cat のように、パイプで cat につなげる ipconfig.exe /dev/tty のように、/dev/tty にリダイレクトする 次の設定をする。(.bashrc に設定することで shell 起動時に有効にできます。ただし、【トピック】 の 2019/04/22 追記 に記載したとおり、不都合が発生するコマンドもありますので、ご留意ください。) $ exec /dev/tty 2019/03/13 追記 本設定で利用している Xサーバ VcXsrv(GWSL の中でも利用)について、次のページに不具合情報が報告されています。コピペ時の「–」の欠落などは注意が必要と思いました。内容を確認してみてください。 https //fujii.github.io/2018/08/30/emacs-on-wslinux/ ⇒(2021/09/17 追記)「–」の欠落の問題は、VcXsrv の最新のバージョンでは発生しないようです。 【本題】 Windows Subsystem for Linux で Emacs を使うための設定です。 ※ 以下では、WSL で Emacs を使うために推奨される設定のみを紹介しています。Emacs を使うための基本的な設定は別途必要です。 mozc_emacs_helper.exe で Windows 側の Google 日本語入力と連携可能。ユーザ辞書も一元管理! tramp で Linux サーバや Docker とも連携可能。GWSL(VcXsrv)を使っているので、X クライアントソフトも起動できる! eww でブラウザとしても利用可能。英語ページは google-translate で瞬時に翻訳! twitter も利用可能。アイコンも表示できるので、投稿者の識別が容易! 1) Windows 10 1903 以降をインストールする。 また、アクティブウインドウのタイトルバーの色を変更するための次の設定を有効にする。(オプション) https //www.softantenna.com/wp/tips/windows-10-change-titlebar-color/ ※ 設定すると、マルチディスプレイ使用時にアクティブウインドウの確認がし易くなります。 2) Microsoft Store から GWSL(X11 サーバアプリ)をインストールする。 https //opticos.github.io/gwsl/ https //opticos.github.io/gwsl/tutorials/manual.html 3) Windows Subsystem for Linux を有効にし、Microsoft Store から Ubuntu-22.04 をインストールした後、コンソールを起動する。 https //docs.microsoft.com/ja-jp/windows/wsl/install-win10 4) WSL に複数の Linux のディストリビューションをインストールしている場合は、コマンドプロンプトで次のコマンドを実行し、Ubuntu-22.04 ディストリビューションをデフォルトにしておく。(Windows 側から、bash.exe や wsl.exe を実行した際に使われる WSL ディストリビューションとなる。) wsl -l wsl -s Ubuntu-22.04 5) インターネットにプロキシを介して接続している場合は、.bashrc に http_proxy 等の環境変数を設定し、コンソールを再起動する。 6) 必要であれば sudo をパスワード無しで利用できるように設定する。 次のコマンドを実行し、 $ sudo -s # EDITOR=vi visudo 最終行に次の行を追加する。( username の部分は WSL の利用ユーザに変更する。) username ALL=(root) NOPASSWD ALL ※ wsl のユーザは sudo グループに所属しているため、%sudo の行以降に設定を追加する必要があるようです。 ※ /etc/sudoers.d ディレクトリ配下にファイルを置く方法もあります。この方法を採る場合は、sudo -s で root になってから作業を行うと、visudo -c でエラーが発生した場合に対処できると思います。 https //qiita.com/buchyanS/items/d240ea7e883bea734718 https //hnakamur.github.io/blog/2012/05/04/use-slash-etc-slash-sudoers-dot-d-slash/ 7) Ubuntu のアップデートおよび設定を行う。 $ sudo -E apt update $ sudo -E apt upgrade ※ プロキシが必要な環境下では、apt や add-apt-repository 実行時の sudo に -E オプションを付けて http* 環境変数を引き継ぐようにしてください。 http //qiita.com/aKenjiKato/items/18f9b8553f8ad4117d79 また、locale を変更する。 $ sudo -E apt install language-pack-ja language-pack-gnome-ja $ sudo update-locale LANG=ja_JP.UTF-8 必要であれば、日本語マニュアルをインストールする。 $ sudo -E apt install manpages-ja manpages-ja-dev さらに、タイムゾーンを JST にする。 $ sudo dpkg-reconfigure tzdata 8) Emacs 等をインストールする。 $ sudo -E apt install emacs emacs-el $ sudo -E apt install cmigemo ※ Ubuntu-22.04 では emacs-27 がインストールされます。emacs-28 をインストールしたい場合には、以下を実行してください。 $ sudo -E apt remove emacs emacs-el $ sudo -E apt autoremove $ sudo -E add-apt-repository ppa kelleyk/emacs $ sudo -E apt update $ sudo -E apt install emacs28 emacs28-el $ sudo -E apt install cmigemo 9) x11-xserver-utils パッケージをインストールする。 $ sudo -E apt install x11-xserver-utils 10) ログイン時の設定を行う。 ~/.bash_profile に次の設定を行う。 if which tasklist.exe /dev/null ! tasklist.exe | grep -q '^GWSL_vcxsrv'; then ( cmd.exe /c GWSL.exe /dev/null 2 1 sleep 3 if uname -v | grep -q 'Microsoft'; then export DISPLAY= 0 else export DISPLAY=$(ip route | awk '/^default/ {print $3; exit}') 0 xhost + $(ip -4 a show eth0 | grep -oP '(? =inet\s)\d+(\.\d+){3}') fi # access control を enabled にする xhost - ) fi [ -r ~/.bashrc ] source ~/.bashrc ※ 上記の設定は、22) で紹介している次の設定の wslemacs-start.exe を利用することにより、GWSL.exe を自動起動することを想定しています。 WSL の emacsclient を Windows から利用するための設定 ※ GWSL の内部から起動されている VcXsrv には、-noprimary オプションを付ける必要があります。VcXsrv のオプションを指定するには、GWSLアイコンの右クリック - XServer Profiles - Add A Profile で新しい Custom Profile を作成してください。設定後、メニューに追加された Custom profile を選択して有効とする必要があります。また、GWSL を一度終了し、wslemacs-start.exe を再起動するなどして上記のスクリプトを実行することで、X Window Server のセキュリティの設定が行われるようにしてください。なお、設定するオプションには次の値をお勧めします。 -multiwindow -clipboard -noprimary -wgl ※ VcXsrv のオプションは次のページを参照してください。 https //gist.github.com/ctaggart/68ead4d0d942b240061086f4ba587f5f ※ GWSL のメニューから、DPI Scaling Mode を選択することができます。初期値は「Linux」となっているようですが、私はリモートデスクトップ利用時に DPI の問題が発生したため、「Windows」に変更して利用しています。 ※ GWSL に X クライアントから接続できない場合は、次の対応をお試しください。 1. 「コントロールパネル」- 「システムとセキュリティ」- 「Windows Defender ファイアウォールによる PC の保護」を開き、メニュから「詳細設定」をクリックする 2. 「受信の規則」をクリックし、「GWSL VcXsrv windows xserver」と「GWSL PulseAudio server」の行があれば、全て削除する 3. Windows の GWSL アプリを起動する(既に起動していれば、再起動する) 4. VcXsrv のファイアウォールの通信許可設定ダイアログ画面が開くので、「パブリックネットワーク」のチェックボックスにチェックを入れ、通信を許可する また、~/.bashrc に次の設定を追加する。 if [ "$INSIDE_EMACS" ]; then TERM=eterm-color fi umask 022 if uname -v | grep -q 'Microsoft'; then export DISPLAY= 0 else export DISPLAY=$(ip route | awk '/^default/ {print $3; exit}') 0 fi unset LIBGL_ALWAYS_INDIRECT ※ LIBGL_ALWAYS_INDIRECT の設定は unset にしました。VcXsrv(GWSL の中で利用)の -wgl オプションとの組み合わせで、mesa の glxgears が動くことを確認しています。(ネットには、VcXsrv のオプションを -nowgl とすべきとの情報が多くありますが、-wgl で動いたので良しとしました。)次のページに関連する情報があります。 https //x.cygwin.com/docs/ug/using-glx.html https //www.web-dev-qa-db-ja.com/ja/xorg/libglalwaysindirect-1%E3%81%AF%E5%AE%9F%E9%9A%9B%E3%81%AB%E3%81%AF%E4%BD%95%E3%82%92%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F/957258497/ ※ Ubuntu が提供する .bashrc には、初めの方に次の設定があり、bash がインターラクティブモードで起動したとき以外は以降が実行されないようになっています。.bashrc に設定を追記する場合は、追記する場所にご留意ください。 # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac 11) 次のサイトから Migu 1M フォントをダウンロードして、ttf ファイルを ~/.local/share/fonts ディレクトリ配下にコピーする。(fonts ディレクトリ配下に、サブディレクトリを作って置いても大丈夫です。) http //mix-mplus-ipa.osdn.jp/migu/ ※ 生成が必要ですが Ricty 系もお勧めです。 本設定では使いませんが、Windows のフォントも WSL で使いたければ次のコマンドを実行する。 $ ln -s /mnt/c/Windows/Fonts ~/.local/share/fonts/windows 最後に次のコマンドを実行する。 $ fc-cache -fv 12) ~/.emacs.d/init.el 等に次のとおりのフォントの設定を行う。 ;; デフォルト フォント (set-face-attribute 'default nil family "Migu 1M" height 120) ;; プロポーショナル フォント (set-face-attribute 'variable-pitch nil family "Migu 1M" height 120) ;; 等幅フォント (set-face-attribute 'fixed-pitch nil family "Migu 1M" height 120) ;; ツールチップ表示フォント (set-face-attribute 'tooltip nil family "Migu 1M" height 90) ※ この設定は gnupack の init.el にある設定を転記したものです。 13) さらに ~/.emacs.d/init.el 等に次の設定を行う。 <色の設定> ;; 色を設定する (add-to-list 'default-frame-alist '(foreground-color . "white")) (add-to-list 'default-frame-alist '(background-color . "black")) <フレームの高さを補正する設定> (defun reset-frame-parameter (frame) (sleep-for 0.1) (set-frame-parameter frame 'height 32)) (add-hook 'after-make-frame-functions #'reset-frame-parameter) <coding-system の設定> (prefer-coding-system 'utf-8-unix) ;; プロセスが出力する文字コードを判定して、process-coding-system の DECODING の設定値を決定する (setq default-process-coding-system '(undecided-dos . utf-8-unix)) ※ 設定値の car を "undecided-dos" にしておくと、Windows コマンドの出力にも柔軟に対応できます。関連して 29) の説明も参照してください。 <shell の設定> (setq shell-file-name "/bin/bash") (setq shell-command-switch "-c") (setq explicit-shell-file-name shell-file-name) <migemo の設定> (setq migemo-command "cmigemo") (setq migemo-options '("-q" "--emacs")) (setq migemo-dictionary "/usr/share/cmigemo/utf-8/migemo-dict") (setq migemo-user-dictionary nil) (setq migemo-regex-dictionary nil) (setq migemo-coding-system 'utf-8-unix) (load-library "migemo") (migemo-init) 14) WSL のコンソールを再起動してから Emacs を起動し、X Window サーバ上に表示することを確認する。 15) 次を参考に emacs-mozc の設定を行う。 emacs-mozc を動かすための設定(WSL 設定編) ※ 以降はオプションです。 20) さらに次の設定を行う。これで、いろいろな操作が helm を通してできるようになる。 helm を使うための設定 21) さらに次の設定を行う。これで、find-file コマンドなどで Windows パスや UNC パスを直接利用可能となる。 Windowsパス と UNCパス を使えるようにするための設定(WSL 設定編) ※ この設定は、以降の 22) と 23) を使うために必要となります。 22) さらに次の設定を行う。これで、Windows 側から emacsclient が利用可能となる。 WSL の emacsclient を Windows から利用するための設定 23) さらに次の設定を行う。これで、dired で Windows ショートカットがシンボリックリンクのように利用可能となる。 Windows ショートカットを dired と連携して使うための設定 24) さらに次の設定を行う。これで、dired で ディレクトリのシンボリックリンクを実体のパスで開くことができるようになる。 dired でディレクトリのシンボリックリンクを実体のパスで開くための設定 ※ (setq-default find-file-visit-truename t) の設定を行っていない場合に意味のある設定となります。 25) さらに次の設定を行う。これで、dired で DrvFs ファイルシステム上に NTFS シンボリックリンクを作成できるようになる。また、Windows ショートカットも作成可能となる。 WSL で NTFS シンボリックリンクや Windows ショートカットを作成するための設定 ※ Windows ショートカットはファイルシステムに依存していないリンクファイルですので、ハンドリングが容易です。VolFs の他、tramp の接続先にも複写することができます。私は、DrvFs 上に置くリンクはできるだけショートカットを利用するようにしており、23) の設定をすることで dired から利用しています。 26) さらに次の設定を行う。これで、dired が Windows のファイラーのように利用できるようになる。 WSL で cygstart 的コマンドを使うための設定 dired を OS と連携して使うための設定 ※ こちらの設定もお勧めです。 singleton な動きをする cygstart 的コマンドを使うための設定 (WSL版) ※ 次の設定も行うと、Emacs で表示している URL を Windows のブラウザで開くことができます。 (require 'browse-url) (setq browse-url-browser-function 'browse-url-generic) (setq browse-url-generic-program "wslstart")) (global-set-key (kbd "C-c u") 'browse-url-at-point) 27) さらに次の設定を行う。これで、tramp の高速化が図られ、接続先の shell から Xクライアントが起動できるようになる。上記の「dired を OS と連携して使うための設定」と組み合わせると、xdg-open などを使ってリモートにあるドキュメント等が開けるようになる。(このページの最初の方にある画像の二番目のものは、この機能を使って表示したものです。) tramp を tramp-method “scp” で使うための設定 tramp による接続先で Xクライアント を実行するための設定 28) さらに次の設定を行う。これで、tramp 接続環境でも動作する shell-pop のような環境を利用できるようになる。 shellバッファ を簡単にポップアップするための設定 29) さらに次の設定を行う。これで、shell-mode で Windows のコマンドを発行しても、漢字が文字化けしなくなる。 shell-mode で複数の漢字コードを混在して利用できるようにするための設定 30) さらに次の設定を行う。これで Emacs のバッファの内容を Windows のテキストエディタを通して印刷できるようになる。 Notepad を使って印刷するための設定(WSL 設定編) 31) さらに次の設定を行う。これで Emacs から VSCode でファイルを開けるようになる。 WSL の Emacs から VSCode でファイルを開くための設定 32) さらに次の設定を行う。これで VSCode で開いているファイルを Emacs で開けるようになる。 VSCode で開いているファイルを WSL の Emacs で開くための設定 33) さらに次の「Emacs 全般で利用できる設定」や「説明ページを作るまでもない設定の紹介」の箇所にあるものから必要なものがあれば設定を行う。 https //w.atwiki.jp/ntemacs/ お勧めの設定は以下の辺りとなります。 helm から comint の入力履歴を検索するための設定 helm で peco もどきのコマンドを使うための設定 locate を使うための設定(WSL 設定編) ediff をスマートに使うための設定 elscreen を使うための設定 whitespace を使うための設定 cua-mode を使うための設定 multiple-cursors を使うための設定 google-translate を使いやすくするための設定 沢山開いているバッファをできるだけ一度に閉じるための設定 (global-set-key (kbd "M-c") (lambda () (interactive) (desktop-clear) (tramp-cleanup-all-connections))) カレントバッファを一発で閉じるための設定 (global-set-key (kbd "M-k") (lambda () (interactive) (kill-buffer (buffer-name)))) ウィンドウの右端で改行をするかどうかを切り替えるための設定 (global-set-key (kbd "C-c C- return ") 'toggle-truncate-lines) 横スクロールするための設定(キー設定が逆の感覚の方もいるかも) (global-set-key (kbd "C-,") 'scroll-left) ; のキー (global-set-key (kbd "C-.") 'scroll-right) ; のキー C-h を Backspace として使うための設定 https //qiita.com/takc923/items/e279f223dbb4040b1157 (define-key key-translation-map (kbd "C-h") (kbd " DEL ")) help の機能は、f1 キーで利用することができます。 34) 最後に次の設定を行う。これで Windows 全体を Emacsキーバインドで操作できるようになる。 Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版) 変更履歴 2017/05/23 このページを作成した。 2017/06/12 Emacs 起動時のエラーを抑制するため、LIBGL_ALWAYS_INDIRECT 環境変数の設定を追加した。 2017/07/04 色の設定を追加した。 2017/08/21 locale の設定を追加しました。 2017/08/21 Emacs-25 のインストールする方法を追記した。 2017/09/04 「w32-symlinks を dired と連携して使うための設定」を見直しバージョン「Windows ショートカットを dired と連携して使うための設定」のリンクに置き換えた。 2017/11/01 オプションの設定に「 WSL で NTFS シンボリックリンクを作成するための設定」を追加した。 2017/11/04 パスの途中に NTFS シンボリックリンクを含むファイルを削除しようとするとフリーズする問題の対策を追加した。 2017/11/06 Emacs を起動するスクリプトを追加し、VcXsrv が起動していない場合は事前に起動するように対応した。 2017/11/11 emacsclient を使うための説明を追記した。 2018/03/09 21) の設定を全面的に見直し、UNCパスの利用にも対応した。 2018/03/14 25) の設定を見直し、Windows ショートカットの作成にも対応した。 2018/03/15 29) に設定を新たに追加した。 2018/03/16 22) の説明の内容を整理した。 2018/03/20 30) の設定を wslstart を使った方法に見直した。 2018/03/21 26) の設定に browse-url を使うための設定を追記した。 2018/03/22 VcXsrv 上に立ち上げた Emacs でリージョンの選択をすると、選択しただけでリージョンの内容が Windows のクリップボードに登録される症状が発生していたのを対策した。 2018/03/22 21) の設定で、コンピュータ名が IPアドレスの UNC パスを mount した際でも正常に動作するように対応した。 2018/03/23 wsl コマンドを使っている設定について、高速化対策を行った。 2018/04/11 10) に日本語キーボードを使う場合に必要そうな設定とそのコメントを追記した。 2018/04/12 33) にお勧めの設定のリンクを追加した。 2018/05/11 8) に tramp 利用時の不具合についての対応策について追記した。 2018/05/11 7) にタイムゾーンを JST にする説明を追加した。 2018/06/19 8) に Emacs-26系で動作させるための説明を追記した。 2018/06/26 11) のフォントを置くディレクトリを、~/.fonts ディレクトリから ~/.local/share/fonts ディレクトリに変更した。 2018/07/30 13) に最低限必要な coding-system の設定を追記した。 2018/08/19 13) に cmigemo の設定を追記した。 2018/11/11 6) に sudo をパスワード無しで利用するための設定の説明を追加した。 2018/11/21 1) にアクティブウインドウのタイトルバーの色を変更するための設定の説明を追加しました。 2019/08/09 13) に「<フレームの高さを補正する設定>」の説明を追加した。 (function(i,s,o,g,r,a,m){i[ GoogleAnalyticsObject ]=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document, script , //www.google-analytics.com/analytics.js , ga ); ga( create , UA-40267130-1 , atwiki.jp ); ga( send , pageview );
https://w.atwiki.jp/ntemacs/pages/43.html
■ MinGW版 Emacs 特有の設定 【お知らせ】 2019/07/30 追記 最新の Thuderbird で External Editor が動かない件については、次の情報があります。 http //zetamatta.hatenablog.com/entry/2017/06/01/105852 2017/11/28 追記 WSL の Emacs と連携可能な emacsclient コマンドも作成しています。次のページを参照ください。 WSL の emacsclient を Windows から利用するための設定 2017/11/28 追記 gnupack の emacsclient コマンドは、startup_emacsclient.exe を利用できます。emacsclient のオプションは、 startup_config.ini ファイルの [startup_emacsclient.exe] セクションで設定できるようになっています。 2017/11/13 追記 Thunderbird のアドオンである External Editor は、設定がうまくできなくなっているようです。(OK ボタンを押せない..。) 【本題】 emacsclientw を使うための設定です。「Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版)」を使うことで、2) と 3) の必要性はあまり感じませんが、4) は「emacs-eclim を使うための設定 」と連携する上で便利かと思います。 1) emacsclientw を使うためのベースの設定を行う。 次のページを参照して設定してください。 http //shigemk2.hatenablog.com/entry/2013/11/21/gnupack%E3%81%A7emacsclient%E3%82%92%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%84 ただし、次のページの内容と同じ問題が発生するので、Emacs の設定は以下とおりとしている。 http //chanpon-memo.blogspot.jp/2013/11/sendto-emacs.html (require server) (server-force-delete) (server-start) 2) Windows のテキストファイルを emacsclientw を利用して Emacs で開けるようにする。 (1) テキストファイルを右クリックして「プログラムから開く」→「既定のプログラムの選択」をクリックする。 (2) 「参照」ボタンをクリックし、emacsclientw.exe を指定する。 (3) 「この種類のファイルを開く時は、選択したプログラムをいつも使う」にチェックを付ける。 3) Thunderbird の外部エディタとして Emacs を利用できるようにする。 次のページを参照して設定してください。 http //news.mynavi.jp/articles/2014/02/06/thunderbird/001.html 4) Eclipse の外部エディタとして Emacs を利用できるようにする。 次のページを参照して設定してください。 https //github.com/anirudhsasikumar/emacs-eclipse ファイルを Emacs で開こうとして「Emacsclient ERROR」のダイアログが表示される場合は、一度 PC をリスタートしてみてください。 上記の他、Eclipse のメニューから以下を辿って、ファイルタイプのエディターに emacsclientw を追加する方法があります。 ウインドウ 設定 一般 エディター ファイルの関連付け 前者の設定の方が、Emacsアイコンの設定がされたり、Emacs でファイルを開いた際にカーソルの移動をしてくれたりと機能が優れていますが、後者の設定の方が plugin の追加の必要がないため、お手軽かと思います。 なお、emacsclientw で開いたバッファの終了は、C-x # となります。 変更履歴 2014/09/29 このページを作成した。
https://w.atwiki.jp/ntemacs/pages/78.html
ここは、次のページの【お知らせ】をまとめているページです。 Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版) 【特に重要なお知らせ】 2020/04/23 更新 use_emacs_ime_mode 変数の設定により、Emacs日本語入力モードを使うかどうかを指定できるようにしました。Emacs日本語入力モードは、IME が ON の時に文字(英数字かスペースを除く特殊文字)を入力すると起動するモードです。(モードに入ると、▲のマークが表示されます。) Emacs日本語入力モードになると、Emacsキーバインドとして利用できるキーが以下のキーのみに限定され、その他のキーは Windows にそのまま渡されるようになります。このため、以下のキー以外は IME のショートカットキーとして利用することができるようになります。 ⇒ (2020/05/10 追記)emacs_ime_mode_key 変数の設定により、IME ショートカットキーの置き換えができるようになりました。 Emacs日本語入力モードで使える Emacsキーバインドキー ・C-[ ・C-b、C-f ・C-p、C-n ・C-a、C-e ・C-h ・C-d ・C-m ・C-g ・scroll_key 変数で指定したスクロールキー Emacs日本語入力モードは、以下の操作で終了します。 ・Enter、C-m または C-g が押された場合 ・[半角/全角] キー、A-` キーが押された場合 ・BS、C-h 押下直後に toggle_input_method_key 変数や set_input_method_key 変数の disable で指定したキーが押された場合(間違って日本語入力をしてしまった時のキー操作を想定しての対策) 利用する上での注意点としては、日本語入力を上記に記載している「Emacs日本語入力モードを終了する操作」(Enter や C-g などの押下)で終えないと、Emacs日本語入力モードが終了しないことです。例えば、文字を入力し BSキーで入力した文字を消したり Esc でキャンセルしたりすると日本語入力中ではなくなりますが Emacs日本語入力モードは終了していません。この場合は、C-g を押下することで明示的に Emacs日本語入力モードを終了させる必要があります。(BS、C-h 押下直後に toggle_input_method_key 変数や set_input_method_key 変数の disable で指定したキーが押された場合についても、Emacs日本語入力モードを終了させるようにしています。半角文字を入力するつもりで間違って日本語入力をしてしまった場合、BS、C-h で入力した文字を削除した後に IME を OFF にする操作をすることが想定されるため、その対策です。) 逆に、変換候補表示中に C-g を押下すると、日本語入力が終了していな状態でも Emacs日本語入力モードが終了してしまいます。変換候補表示をキャンセルする場合には Esc を使うようにし、C-g と使い分けて利用するようにしてください。 これで、Windows のキーを直接的に入力する方法は以下の5とおりとなっています。 本設定で置き換えしていないキーを入力する。(置き換えしていないので、入力したキーがそのまま Windows に渡される。C-c など。) side_of_ctrl_key 変数や side_of_alt_key 変数で設定した側でない Ctrlキーや Altキーと組み合せたキーを入力する。 C-q を入力した後にキーを入力する。(C-q の後に入力したキーが Windows に入力される。) Emacs日本語入力モード時に、C-[、C-b、C-f、C-p、C-n、C-a、C-e、C-h、C-d、C-m、C-g、scroll_key 変数で指定したスクロールキー、toggle_emacs_ime_mode_key 変数で指定したキー以外のキーを入力する。 2020/02/14 追記 Keyhac を利用する場合のメリットを考えてみました。 ポータブルであること(OS へのインストールが不要で、ソフトおよび設定を容易に持ち運びできる。Keyhac を動かすには「Visual Studio 2015 の Visual C++ 再頒布可能パッケージ 」のインストールが必要となっていますが、インストールされるものは C \Windows\SysWOW64\msvcp140.dll ですので、この dll を keyhac.exe と同じフォルダに置けば、「Visual Studio 2015 の Visual C++ 再頒布可能パッケージ 」をインストールしていない PC でも Keyhac を動かすことができるようになります。) keyhac.exe を起動している時のみ、キーバインドの設定が有効になること どこでも同じ環境を容易に構築でき、そして設定を簡単に無効にできる(ソフトのアンインストールが不要な)のはとても便利かと思います。 2019/12/17 追記 redo(undo の undo)を行うためには、Emacs と同様に C-g を入力した後に undo を実行します。ただし、notepad.exe の様に redo のキーバインド(C-y)を持たないアプリケーションソフトでは動作しません。 2016/10/12 追記 IME を Google 日本語入力 とし、プロパティの「キー設定」を「ことえり」にすると、C-i(文節を縮める)、C-o(文節を伸ばす)、C-j(ひらがなに表示切替)、C-k(全角カタカナに表示切替)、C-l(全角英数に表示切替)、C-;(半角に表示切替)、C- /C- (半角英数に表示切替)が近い位置(io と jkl; or jkl; はそれぞれ横並びの位置)のキーに設定され、Emacs日本語入力モードで有効としているキーとも被らない設定となるので、具合が良いです。(被らない設定となるのは、「ことえり」が Emacsキーバインドをベースとしたキー設定となっており、Emacs日本語入力モードで有効としているキーが 「ことえり」でも同じ目的のキーの設定となっているためです。またこのことは、本設定により Emacsキーバインドを有効としていないアプリケーションソフトで日本語入力する場合でも Emacsキーバインドを使えるということにもなります。) https //www.google.co.jp/ime/ http //little-beans.net/howto/google-jinput-win10/ ⇒ (2020/05/10 追記)emacs_ime_mode_key 変数の追加により、Google 日本語入力 のプロパティを「MS-IME」にしていても「ことえり」のキーバインドが利用できるようになりました。また、Micorosoft IME でも同様に利用できます。 【その他のお知らせ】 2021/04/11 追記 次の issue の報告の対策を行いました。 https //github.com/smzht/fakeymacs/issues/9 2021/04/06 追記 次の の issue(バグ)の対応と共に、VSCode 用の機能の実装を全面的に見直しました。 https //github.com/smzht/fakeymacs/issues/8 2020/11/19 追記 VSCode 向けに Ctl-x C-b(list-buffers)の機能をサポートしました。 2020/11/02 追記 利用している IME を設定する方法を見直しました。_config_personal.py 中の設定も変更となっていますので、config_personal.py を利用されている方は対応をお願いします。 https //github.com/smzht/fakeymacs/commit/f9f1e820486e837348cae9109f566bc1e26ca647 2020/10/15 追記 config.py の全面的な構成見直しにより、config_light.py のサポートを中止しました。config_light.py を利用されている方が居りましたら、ご了承願います。 2020/10/10 追記 リストウィンドウのリストを指定する変数名の見直しを行いました。cblister が clipboardList_listers に、lclister が lancherList_listers に変更となっています。_config_personal.py 中の設定も変更となっていますので、config_personal.py を利用されている方は対応をお願いします。 2020/10/10 追記 ほとんどの方が利用しないであろう config.py 内のオプション機能をオプション用の config ファイルに切り出し、config_personal.py の中から間接的に呼び出すように見直しました。また、「オプション機能」を「拡張機能」と呼ぶように見直しました。 2020/10/04 追記 VSCode では C-S- をモディファイアキーとして使うキーバインドが多く定義されています。このことから、定義が被るキーバインドを利用する Emacsシフトモードのサポートを中止することとしました。あまり利用されていない機能だと思っていますが、もし利用されている方が居りましたら、ご了承ください。 2020/10/01 追記 本ページで akinosign というソフトを紹介していましたが、このソフトを起動していると複雑な構成の Excel ファイルで処理が重くなるなど、問題が発生することが分かりました。ついては、本ページで akinosign 紹介することは取りやめることとしました。 2020/09/20 追記 VSCode の対応を強化しました。強化ポイントは次のページの説明を参照してください。この対応により、Code.exe の Emacs キーバインドが有効となるよう初期設定を変更しています。 https //github.com/smzht/fakeymacs#vscode-%E3%81%AE%E5%BC%B7%E5%8C%96%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88 2020/09/15 追記 toggle_emacs_keybind_key 変数の設定(初期値:C-S-Space)により、emacs キーバインドを利用する設定をしたアプリケーションソフトの Emacs キーバインドの利用を切り替えることができるようにしました。Emacs キーバインドを利用するアプリケーションでかつフォーカスが当たっているアプリケーションソフトに対して切り替えが機能します。また、Emacs キーバインドを OFF にしても、IME の切り替えは img_target に登録したアプリケーションソフトと同様に機能するようにしています。なお、emacs_target_class 変数に指定したクラス(初期値:Edit)に該当するアプリケーションソフト(NotePad など)は、Emacs キーバインドを切り替えの対象となりませんのでご留意ください。 2020/08/18 追記 Fakeymac で個人設定用ファイルを利用できるようにしました。詳しくは、以下のリポジトリにある _config_personal.py の最初のコメントを参照してください。 https //github.com/smzht/fakeymacs 2020/08/15 追記 skip_settings_key 変数を設定することにより、キーマップ毎にキー設定をスキップするキーを指定できるようにしました。現在、個人の設定を外部ファイルに外出しして管理できるようにする機能を追加しており、その機能を実現するための1機能となります。個人の設定を外部ファイルに外出しして管理できるようにする機能は develop branch で開発していますので、興味の有る方は覗いてみてください。 https //github.com/smzht/fakeymacs/issues/2 https //github.com/smzht/fakeymacs/tree/develop ⇒(2020/08/18 追記)develop branch は master branch に merge されました。 2020/08/11 追記 emacs_exclusion_key 変数を設定することにより、Emacs のキーバインドにするアプリケーションソフトで Emacs キーバインドから除外するキーを指定できるようにしました。例えば、C-t は Emacs キーバーインドで reconversion(再変換)の機能を割り当てていますが、ブラウザを利用しているときには「新しいタブを開く」機能のショートカットキーとして利用したいと思う方が多く居ると思います。このようにアプリケーションソフト側のショートカットキーを優先したい場合に利用することができます。この設定を行わなくても、左右のモディファイアキーを使い分けることで Windows 側のショートカットキーを入力することも可能ですが、頻繁に利用するキーについては Emacs キーバインドで使うモディファイアキーとの組み合わせで利用できるようになり便利かと思います。 (もう少し具体的な説明をすると、chrome.exe には Emacs のキーバインドから除外するキーとして C-l、C-t を割り当てています。この設定により chrome.exe では、C-l を「アドレスバーへの移動」、C-t を「新しいタブを開く」として使えるようになります。これに Emacs キーバインドとして設定してある M-k(A-k)の「開いているタブを閉じる」や chrome.exe のショートカットキーである C-Tab/C-S-Tab の「タブの切り替え」などを組み合わせると、ブラウザを容易に操作できるようになると思います。) 2020/06/03 追記 新しい Microsoft IME では、リージョンを選択した状態で Space キーを押下すると「再変換」が働きます。このときに日本語入力モードを使う設定にしていれば、日本語入力モードに移行するようにしました。 2020/05/29 追記 「キー割り当て変更ユーティリティを統合した「PowerToys v0.18.0」」。Keyboard Manager が統合されています。PowerToys Run もいい感じのデザインです。 https //pc.watch.impress.co.jp/docs/news/1253450.html ※ KeySwap や Change Key でのレジストリの設定を Keyboard Manager に移行することを試みましたが、Keyboard Manager は Keyhac との共存はできないツールのようでしたので、元に戻しました。Keyboard Manager はレジストリ設定型のアプリではなく、Keyhac や AutoHotKey と同様の常駐型のアプリのようです。 2020/05/28 追記 仮想デスクトップを操作する SylphyHorn というソフトを見つけました。Microsoft Store からインストールできます。仮想デスクトップは、OS 標準機能でもキーボードショートカットによる移動はできますが、ウインドウを仮想デスクトップ間で移動するキーボードショートカットはありません。このソフトはこの機能をサポートしています。 https //forest.watch.impress.co.jp/docs/news/1136124.html Fakeymacs では、仮想デスクトップの移動に Win+b と Win+f を割り当てています。(というか、今回見直しを行いました。)また、アクティブウィンドウを仮想デスクトップ間で移動するためのキーを設定する変数として、window_movement_key_for_desktops 変数を追加しました。SylphyHorn をインストールし、window_movement_key_for_desktops 変数を設定することにより、仮想テスクトップの操作をキーボードのみで行えるようになります。(window_movement_key_for_desktops 変数の設定例には、Win+p、Win-n を設定しています。Win+p は「プレゼンテーション表示モード選択画面」を表示するためのキーなのですが、Ctrl+q Win+p で機能を呼ぶことができます。RWin キーがあれば、RWin+p でも対応可能と思います。) なお、SylphyHorn には仮想デスクトップをループさせる機能があります。この機能は(何故か)背景を変更する機能を ON にすると利用できるようになるのですが、同時に仮想デスクトップ切替時にウィンドウのフォーカスが正しく切り替わらない(タスクバーのアイコンが点滅する)状況が発生するようになるため、利用は見合わせています。また、仮想デスクトップの切り替えを通知する機能がありますが、この機能は処理が重いので代わりにトレイアイコンにデスクトップ番号を表示する機能を使っています。これらの SylphyHorn の機能を有効するには、設定画面を閉じる必要があるようです。 さらに、仮想デスクトップのアニメーションを止めたい場合は、次のページを参照してください。 http //otsuka.hatenablog.com/entry/2016/08/05/214256 また、すべての仮想デスクトップのウィンドウのアイコンをタスクバーに表示させたい場合には、次のページを参照してください。 https //pc-karuma.net/windows-10-virtual-desktop-show-all-window-app/ 2020/05/26 追記 ThinkPad トラックポイント キーボード II が国内で販売開始となりました。Fakeymacs と相性バッチリではないかと思います。 https //pc.watch.impress.co.jp/docs/column/ubiq/1254581.html https //www.lenovo.com/jp/ja/accessories-and-monitors/keyboards-and-mice/keyboards/KBD-BO-TrackPoint-KBD-US-Eng/p/4Y40X49493 https //www.lenovo.com/jp/ja/accessories-and-monitors/keyboards-and-mice/keyboards/KBD-BO-TrackPoint-KBD-Japanese/p/4Y40X49522 2020/05/24 追記 仮想デスクトップを移動するためのキーは、Windows キーと組合わせたキー設定にしないと、仮想デスクトップを移動したときにアクティブフォーカスの設定が正しく行われないことが分かりました。このことから、Fakeymacs で Windows キーを正式にサポートすることとし、desktop_switching_key 変数の初期値を Win キーを利用するものに変更しました。(併せて、window_movement_key 変数 の初期値も Win キーを使うものに見直しました。) 2020/05/23 追記 IME の「再変換」の機能は、[変換] キーだけでなく、Win+/ キーでも機能することが分かりました。Windows 10 ver 2004 では [無変換] キー、[変換] キーのキーの機能を容易に変更できるようになるため、この影響を受けないように IME の「再変換」の機能を Win+/ キーで動作するように見直ししました。 2020/05/10 追記 Windows 10 May 2020 Update では、Microsoft IME の機能改善が図られ、Google 日本語入力と遜色ない IME になっているようです。ただし、キーバインドを変更する「キー設定」の編集画面が見当たりません。そこで、IME のキーバインドを変更するための機能を追加してみました。初期値は、Microsoft IME で Google 日本語入力の「ことえり」のキーバインドが利用できるようにする設定 としています。emacs_ime_mode_key 変数で設定の追加や変更ができますので、お試しください。 2020/04/30 追記 「Windows 10 2020年春の新機能 日本語入力が楽になる!変換/無変換キーで日本語入力がオン/オフに」。Fakeymacs では、set_input_method 変数の設定により、同様の機能をサポートしました。Windows 10 1909 までのバージョンでも IME の設定変更なくこの機能を利用できます。。 https //pcmanabu.com/windows10-ime/ 2020/04/26 追記 Keyhac のバージョン 1.82 がリリースされました。ワンショットモディファイアの機能に不具合の修正が入りましたので、Alt キーによる IME 切替え機能を利用される方は Keyhac のバージョンアップをお願いします。 https //github.com/crftwr/keyhac/blob/master/doc/changes.txt 2020/04/26 追記 数引数の指定に Ctrl + 数字キーを使うかどうかを指定する変数を追加しました。初期値は無効(False)としています。 2020/04/26 追記 Alt + 数字キー列や Alt + Shift + 数字キー列によるファンクションキー入力機能を追加しました。F1 から F12 までを Alt + 数字キー列で、F13 から F24 までを Alt + Shift + 数字キー列で指定できます。初期値はどちらも無効(False)としています。この設定は global に機能します。 2020/04/23 追記 ワンショットモディファイアの機能を利用し、左右の Alt キーで IME を切替えられるようにする機能を追加しました。set_input_method_key 変数のコメントを見直すことで動作するようになります。US のキーボードを利用している場合にお試しください。 https //github.com/smzht/fakeymacs なお、次の設定も同じ操作性にできるように見直しました。 emacs-mozc を動かすための設定(Emacs 設定編) 2020/04/16 追記 PC を落とす時や再起動する時、Windows のデスクトップを選択(クリック)して C-x C-c を押下すると、操作を選択するダイアログが表示されます。地味に便利なのでお試しください。 2020/04/13 追記 「IME を無効にするキー」と「IME を有効にするキー」を設定できるようにし、set_input_method_key 変数で指定できるようしました。初期設定では、「無変換」キーと「変換」キーを割り当てています。C-o の設定はトグル動作となっていますが、設定の中のコメントを見直すことで変更可能です。お勧めは、C-o のトグル設定は残して C-j に英数への切替えを設定するものです。日本語への切替えが C-o によるトグル操作による切替えの他、C-j C-o での一発切替えが可能となります。 https //github.com/smzht/fakeymacs なお、次の設定も同じ操作性にできるように見直しました。 emacs-mozc を動かすための設定(Emacs 設定編) 2020/03/16 追記 Microsoft PowerPoint でも Word と同様の改行対策を行いました。 2020/03/13 追記 Microsoft Excel 2019 では、セル内の文字列の改行の扱い方が変更となりました。(Word と同様、改行を選択可能となった。)この対策を行いました。 2019/12/24 追記 Keyhac の動作にに必要な「Visual Studio 2015 の Visual C++ 再頒布可能パッケージ 」ですが、次のリンクに書かれているとおり複数のバージョンがあるようです。 https //caddiary.com/?p=1669 https //tyawanmushi.hatenablog.com/entry/Microsoft-Visual-C%2B%2B-Redistributable-Lists Keyhac のダウンロードページにあるリンクは古いものを指しているようでしたので、次のリンクの新しいもの(14.0.24215.1 2016/09/15)のインストールをお勧めします。(x86版 のインストールが必要です。) https //www.microsoft.com/ja-jp/download/details.aspx?id=53840 なお、「Visual Studio 2019 の Visual C++ 再頒布可能パッケージ 」では 2015 が統合されているとのことです。ですのでこちらをインストールする選択肢もあると思いますが、この辺になると良く分かりません。 https //support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads https //nln.jp/wp/archives/4782 2019/11/20 追記 Emacsシフトモードを利用していない場合、シフトキー+移動キーでリージョンの設定ができる機能をサポートしました。この対応で、windows_movement_key と desktop_switching_key の初期設定値を見直ししています。 <2019/11/24 追記> use_region_reset 変数を False にした場合の挙動を保証できなくなったので削除することとしました。(初期値は True だったので、ほとんどの方には影響は無いと思います。) 2019/07/21 追記 Emacs日本語入力モードを使っている場合に発生する、ウインドウ切り替わり直後の日本語入力時に文字が二重に入力されることがある問題の対策を行いました。この問題は、Windows 10 1903 から顕著に発生するようになったものです。 <2019/03/27 追記> 数引数を指定してキーボードマクロを再生した際の再生再現性を高めました(まだ完全ではありませんが..)。また、この対応で C-u C-x e(数引数付きのキーボードマクロの再生)を行った際に、再生文字列中に「e」や「え」が混入することがある問題も解決されたように思います。 <2019/03/27 追記> キーボードマクロの再生時に IME の状態に依存した動作とならないようにするため、キーボードマクロの記録と再生の開始時に IME を強制的に OFF にするようにしました。 <2019/01/31 追記> Emacs のキーバインドにするウィンドウのクラスネームを指定できるようにし、Edit クラスを設定しました。この対応で、not_emacs_target に指定しているアプリなどでも、ダイヤログボックスなどにあるテキストフィールドで Emacsキーバインドが使えるようになりました。 2018/06/01 追記 kill-buffer に Ctl-x k とは別に M-k も割り当てしました。プラウザのタブを削除する際などにお使いください。 2018/04/17 追記 本設定は python のクロージャの仕組みを利用しています。クロージャについては、次のページの説明が参考になると思います。 https //www.lifewithpython.com/2014/09/python-use-closures.html 2018/04/03 追記 Logicool のマウスをお使いの方で、SetPoint アプリによる設定でキーストロークの割当を行う場合には、Keyhac のフックを OFF にしてから割当をするようにしてください。ON のまま割当すると正しく動作しないようです。(この現象が分かるまでかなり嵌りました..。)他のソフトでも同様の状況が発生する可能性があると思います。 2018/02/23 追記 clipboard 監視の対象外とするアプリケーションソフトで copy / cut した場合でも、クリップボードの内容をクリップボードリストに登録するように対策しました。 2017/10/12 追記 window_switching_key を None に設定した場合(タスク切り替え画面の起動を A-Tab で行う場合)でも、タスク切り替え画面内で A-p、A-n キーによる画面移動を可能としました。 2017/06/22 追記 ちょっと邪道との思いはあったのですが、word_register_key 変数に設定したキーにより IME の「単語登録」プログラムが起動するように対応しました。「単語登録」プログラムの起動は、IME のショートカットキーの設定によっても対応できるのですが、mozc_emacs_helper.exe を使って NTEmacs 等の Emacs 上で日本語入力している際にはこの IME のショートカットキーが有効とならないため、Keyhac 側で対応することとしました。Keyhac 側で対応したことにより、以下の設定で動かす Emacs からでも利用することができます。 WSL で Emacs を使うための設定 キーの初期設定は、C-] とし、起動する「単語登録」プログラムは「Google 日本語入力」のものとしています。単語登録したい単語(文でも OK)を選択もしくはグリップボードにコピー(Emacs はこちらの対応が必要)してから C-] を押下することで、容易に単語登録ができるようになります。IME のショートカットキーを利用した方法ではないため、英数直接入力モードの場合でも単語登録を行うことができます。 設定の中で「単語登録」プログラムを「MS-IME」のものに変更することもできるようにしていますが、こちらは IME のショートカットキーから起動した場合と動きが異なり、選択した単語の初期表示が行われないようです。IME に「MS-IME」を使うということであれば、mozc_emacs_helper.exe を利用していないと思われますので、その際は IME のシートカットから「単語登録」プログラムを起動するように設定することをお勧めします。 なお、この機能が不要な場合は word_register_key 変数に None を設定してください。機能が無効となります。 2017/05/24 追記 間違った数引数の指定により発生するコマンドのリピートが止まらなくなる事故を防ぐため、コマンドのリピート回数の最大値を指定できるようにしました。初期値は 1024 にしています。 2017/05/16 追記 cmd.exe と powershell.exe についても、C-n、C-p、C-w、M-w、C-k、C-s、C-r 辺りのキー(C-s、C-r が使えるのは Powershell のみ)は利用できるように対応しました。但し、powershell.exe では起動直後に C-w や C-k で切り取りをした際や、以降でも行の最終カラムで C-k を入力した際などにエラーとなります。これは既知の問題のようでもあり対策できていません。(Keyhac を利用していない状態でも、C-a - C-x で再現します。)⇒ (2019/4/1 追記)Windows 10 1809 で試したところ、この問題は発生しなくなっていました。 https //github.com/lzybkr/PSReadLine/issues/509 なお、範囲選択(リージョン指定)ができない場合は、プロパティの設定にある「テキスト選択を拡張する」が OFF になっている可能性があります。確認ください。 2017/05/16 追記 not_clipboard_target 変数で、clipboard 監視の対象外とするアプリケーションソフトを指定できるように対応しました。新しめのバージョンの Excel を使っているとクリップボードに関連する競合エラーが発生するため、初期設定では Excel を登録しています。 2017/04/12 追記 firefox で Googleカレンダーを使う際、ポップアップした予定入力画面で日本語入力をし Enter で変換を確定すると、ポップアップしている画面が閉じてしまうようです。Chrome では発生しません。影響を及ぼしている設定箇所は分かったのですが、その設定箇所を無効とはしたくないため、設定の変更は行わないこととします。日本語入力の変換の確定を C-m で行えばこの現象を回避できますので、この方法でご利用ください。 2017/03/16 追記 Microsoft Excel や Word などの Office系アプリを使ってコピー&ペーストをした際、「Ctrl」と表示される「貼り付けオプション」ボタンが表示される場合があります。これが Emacsキーバインドで利用している Ctrl キーの押下を検知して、想定外の動きをしてしまうようです。今のところ本設定での対策は難しいと思っておりますので(Ctrl をモディファイアキーとして使わない方法は考えられますが、影響が大きい)、以下のページで紹介している「貼り付けオプション」ボタンを消す対応で回避してください。 http //ciao.aoten.jp/ciao/2015/03/word-54e8.html 2017/03/10 追記 本設定をカスタマイズして Mac版を公開された方がいらっしゃいます。私は Mac を使わないので使用感が分からないのですが、Mac をお使いの方は是非お試しください。 https //github.com/hiroxy/keyhac-config 2015/11/09 追記 redo をサポートしてみました。undo キー(C-x u や C-/)で undo している時に、C-g を押下すると 以降の動作が redo に切り替わります。その後は、C-g を押すごとに undo と redo をトグルする動きとなります。 なお、redo は Windows に C-y キーを発行することで実現しているのですが、アプリケーションソフトによっては、C-y をサポートしていません。(Notepad など。)このため、このようなソフトで redo に移行すると、undo キーを押してもだんまりとなる場合があります。この場合は再度 C-g を押すことで復帰してください。(undo キー と C-g 以外のキーを入力することでも、undo のモードに復帰します。)また、アプリケーションソフト単位で redo の動作を無効にすることができます。undo 関数の中で行っていますので、必要であれば設定を追加してください。(初期設定では、Notepad を登録しています。) 2015/10/31 追記 Keyhac のクリップボードリスト画面で migemo 検索を可能とするためには、辞書ファイルを登録する必要があります。次のページの説明が参考となります。(dictフォルダの中をすべてコピーするのではなく、dict/utf-8 の中のファイルをコピーするところがポイントです。また、migemo 検索するには、検索文字列の一文字目を大文字で指定する必要があります。) http //blog.livedoor.jp/ryman_trainee/archives/1042315792.html 2014/10/17 追記 検索の繰り返し機能をサポートしました。C-g 等のコマンド入力で、検索のやり直しが可能です。検索の繰り返しは F3キー で行っているのですが、F3キーをサポートしていないアプリがあるため、繰り返し検索時にダンマリとなることがあります。その際は、C-g を押下後、C-s や C-r で検索を再開し、Windows の割当キー(Enter 等)を使って検索の繰り返しを行ってください。
https://w.atwiki.jp/ntemacs/pages/82.html
なぜ、Emacs を使っているか? 逆説的かもしれませんが、Emacsキーバインドが使えるカスタマイズブルなエディタだから です。 私は Windows を使っています。Windows は次の設定により、OS のあらゆる操作を Emacsキーバインドにすることができます。 Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版) また、cygstart on Cygwin や wslstart on WSL と次の設定を組み合わせることにより、Emacs の Dired を Windows ドキュメントを開くファイラーとして利用することができます。 dired を OS と連携して使うための設定 Dired から 開いた Windows ドキュメントは、先の設定により Emacsキーバインドで操作できますので、Windows アプリケーションソフトがあたかも Emacs のプラグインソフトウェアであるかのような感覚で利用できます。 この操作感は、一度慣れてしまうと離れられないものです。そしてこの操作感を実現できているのは、モーダレスな Emacsキーバインドの存在 によるものだと思っています。 Emacs を Atom や VSCode などの他のエディタと比較する記事も見かけますが、Emacsキーバインドで使えるエディタであれば状況に応じて使い分ければ良いと思っています。次の設定をすれば、VSCode との相互利用も容易となります。 WSL の Emacs から VSCode でファイルを開くための設定 VSCode で開いているファイルを WSL の Emacs で開くための設定 いずれにせよ、私にとっては Emacsキーバインドで PC の操作を統一できることがとても重要で、その操作の基軸となるソフトウェアとして Emacs を選択して使っている。これが Emacs を使っている理由となっています。 ちなみに、私は vim も時々使います。顧客環境にあるサーバの設定変更などで必要になるときがあるためです。当然、カスタマイズしていない状態の vim を使うことになりますし、vim はそのような状態で使えれば良いと思っています。 一方、自分の PC で vim 使うことはほとんどありません。先に記載したようにすべてのアプリケーションソフトの操作性を統一したいからです。自分の PC からサーバの作業を行う場合でも、大抵は ssh の接続性があるので、Emacs の tramp を使って行っています。 vim の前身の vi は 5年間くらい使っていましたので、vim の優れた操作性はある程度は理解しているつもりです。しかし、Word や Excel など Windows アプリケーションソフトでも同じ操作性を!となると、Emacsキーバインドのようなモーダレスなキーバインドに統一する必要があります。そこで、そのようなキーバインドを持つエディタとして Emacs を選択し、OS のキーバインドを Keyhac の設定で Emacs-like にして使っている。これが現在の PC の利用環境となっています。
https://w.atwiki.jp/ntemacs/pages/61.html
■ Windows Subsystem for Linux の Emacs で利用できる設定 【お知らせ】 2022/11/28 追記 次の問題が報告されていますので、WSL は Microsoft Store版のものを利用することをお勧めします。 https //github.com/smzht/mozc_emacs_helper/issues/1 2021/02/05 追記 本ページの内容は WSL2 でも動作します。DrvFs や VolFs の記載がある場合には、Windows 側のファイルシステム、WSL2 側のファイルシステムと読み替えてください。 2020/09/02 追記 WSL2 では、UNC パスをマウントしているマウントポイント配下がカレントディレクトリの状態で Windows の exe コマンドを実行するとエラー終了するようです。4) の設定にこの対策を行いました。 2019/07/26 追記 Windows 10 1903 にバージョンアップしたところ、次の問題が発生しています。 DrvFs のフォルダに WSL から利用する exe コマンドを格納し、そのフォルダのシンボリックリンクを WSl の PATH に登録している場合、PATH を検索した exe コマンドの実行ができない。 似たような問題として次の issue が登録されています。 https //github.com/microsoft/WSL/issues/3999 新しいビルドでは直っているようですが、Windows 10 1903 を利用している場合は、DrvFs のフォルダへの実際のパス(シンボリックリンクではないパス)を PATH に登録するようにしてください。この件を 4) のコメントとして追記しました。 2019/06/24 追記 Windows 10 1809 以降の Windows で発生する Emacs の shell-mode 等で exe コマンドが実行できない問題が本設定にも影響することがあるようなので、その対策を 4) に実施しました。 【本題】 Windows Subsystem for Linux 上で動かす Emacs の emacs-mozc から、Windows にインストールしている Google日本語入力を利用するための設定です。 1) 次の設定を参考とし、Windows Subsystem for Linux で Emacs を動かす環境を整備する。 WSL で Emacs を使うための設定 ※ 上記では Emacs を X Window で利用する方法(推奨)を紹介しています。Emacs をコンソールで利用する場合は X Window に関連する部分を除いて設定してください。 ※ Emacs をコンソールで利用する場合は、次のページから Migu 1M のフォントをインストールして「プロパティ」で設定すると多少見やすくなります。 http //mix-mplus-ipa.osdn.jp/migu/ 2) 次のサイトから「Google日本語入力」をインストールする。 http //www.google.co.jp/ime/ 3) DrvFs ファイルシステム上にフォルダを作成し、そのフォルダのパスを PATH に登録する。そして、そのフォルダに「emacs-mozc を動かすための設定(mozc_emacs_helper コンパイル編)」で準備した mozc_emacs_helper.exe を格納する。 ※ すでにコンパイルされたコマンドは、次のリポジトリからダウンロードできます。 https //github.com/smzht/mozc_emacs_helper ※ Windows 10 1903 を利用している場合、PATH に登録するパスは DrvFs のフォルダへの実際のパス(シンボリックリンクではないパス)としてください。シンボリックリンクのパスを PATH に登録すると、exe コマンドが実行できなくなります。 4) mozc_emacs_helper.sh を次の内容で作成し、上記で作成したフォルダに格納する。 #!/bin/sh cd mozc_emacs_helper.exe "$@" 2 /dev/null ※ このスクリプトは、VolFs 上にある PATH がとおったフォルダ(~/bin 等)に置いても構いません。 ※ Windows 10 1809 以降の Windows では、Emacs の shell-mode 等で exe コマンドが実行できない問題が発生しています。Emacs から直接起動される際には発生しない問題ですが、shell-mode で動作確認する場合には次のようにパイプで cat を通すことで実行が可能となります。 $ mozc_emacs_helper.sh | cat ※ WSL2 では、UNC パスをマウントしているマウントポイント配下がカレントディレクトリの状態で Windows の exe コマンドを実行するとエラー終了するようです。このため、cd でホームディレクトリに移動してから、mozc_emacs_helper.exe を実行しています。 5) 次を参考として emacs-mozc の環境を設定する。((共通)および(「mozc_emacs_helper コンパイル編」利用の場合)の箇所の設定を行ってください。) emacs-mozc を動かすための設定(Emacs 設定編) ※ Emacs をコンソールで利用する場合は、mozc-candidate-style を 'echo-area に設定する方法もあります。 (setq mozc-candidate-style 'echo-area) 6) 次の設定を行い、mozc_emacs_helper.sh の利用を有効にする。 (setq mozc-helper-program-name "mozc_emacs_helper.sh") 7) Emacs で C-o を入力することにより、mozc-emacs-helper が起動し、「Google日本語入力」を間接的に使って漢字が入力できることを確認する。 変更履歴 2016/09/13 このページを作成した。 2017/04/11 Windows 10 1703 がリリースされ、WSL から Windows の EXE を実行できる機能が追加されたので、一部説明の見直しを行った。 2017/11/06 mozc_emacs_helper.exe の配置場所の説明を見直した。 2019/06/24 Windows 10 1809 以降の Windows で発生する Emacs の shell-mode 等で exe コマンドが実行できない問題が、本設定にも影響することがあるようなので、その対策を実施した。 (function(i,s,o,g,r,a,m){i[ GoogleAnalyticsObject ]=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document, script , //www.google-analytics.com/analytics.js , ga ); ga( create , UA-40267130-1 , atwiki.jp ); ga( send , pageview );
https://w.atwiki.jp/ntemacs/pages/75.html
■ Windows Subsystem for Linux の Emacs で利用できる設定 【お知らせ】 2021/02/05 追記 本ページの内容は WSL2 でも動作します。DrvFs や VolFs の記載がある場合には、Windows 側のファイルシステム、WSL2 側のファイルシステムと読み替えてください。 2020/10/27 追記 WSL2 では、UNC パスをマウントしているマウントポイント配下がカレントディレクトリの状態で Windows の exe コマンドを実行するとエラー終了します。wslclient にこの対策を行いました。 https //github.com/smzht/win-utils/commit/abcc5d5146f1517e35252fc0c941c3fe4b99a602 2020/05/06 追記 WSL2 で動かすために emacsclientw.exe コマンドの見直しを行いました。 https //github.com/smzht/win-utils 2019/11/14 追記 emacsclient のオプションの解説は、以下を参照してください。 https //ayatakesi.github.io/emacs/26.3/html/emacsclient-Options.html#emacsclient-Options 2019/10/23 追記 wslclient コマンドに、リターンコードと標準出力等に対応する対策を行いました。これで git のエディタとして利用する際のコミットキャンセルにも対応できるようになりました。 2019/08/19 追記 wslemacs-start.exe のタスクトレイアイコンのメニューにコンソールを表示/非表示する機能を追加しました。コンソール表示後、非表示に戻す際は、コンソールの閉じるボタン(☓)をクリックするのではなく、アイコンメニューから非表示(Hide Console)を選択してください。また、メニューの Exit は Kill Emacs という機能に変更しました。これは、AutoHotKey のアプリを終了させるのではなく、Emacs を終了させる機能に見直したことによります。Emacs が終了することにより、結果として AutoHotKey のアプリも終了します。(逆に、Emacs に「(kill-emacs)」を送っても Emacs が終了しない場合(Emacs が起動中の場合など)は、AutoHotKey のアプリも終了しません。) なお、Emacs のアイコンをタスクトレイに常に表示させるようにすると、メニューを選択し易くなります。設定方法は次のページを参照してください。 https //pc-kaizen.com/windows10-display-icon-in-task-tray 2019/08/09 追記 1) に「<フレームの高さを補正する設定>」の説明を追記しました。 2019/07/19 追記 wslemacs-start.exe プロセス終了時、起動している Emacs に「(kill-emacs)」を送信するように見直しました。ただし、AutoHotKey の仕様でシャットダウンやログオフの場合に終了処理(OnExit)が走ることになっているのですが、実際にはうまく動作していないようです。 http //ahkwiki.net/OnExit 2019/07/16 追記 Emacs をデーモンモードで起動した際、起動した bash のコンソールを維持した場合と終了した場合とで、次の実行結果が異なることが分かりました。 (shell-command-to-string "cmd.exe /c echo あああ | nkf -g") この結果から、Emacs を起動した bash を終了すると Emacs から exe コマンドを利用する際に不都合が発生することが分かりましたので、wslemacs-start.exe で起動する Emacs のオプションを --daemon から --fg-daemon に変更し、Emacs が起動中は bash が終了しないように対策しました。⇒(2019/07/23 追記)その後、Emacs を exec で起動しても問題ないことが分かりましたので、そのように見直しました。 https //github.com/smzht/win-utils/commit/dcb7b3dedec3a69fcb3baf64efac7896a0277d6c この対策をした結果の副産物として、タスクトレイに wslemacs-start.exe の Emacs アイコンが表示されるようになり、Emacs デーモンが起動している状態を確認できるようになりました。 2019/07/14 追記 次の機能の不具合対策を行いました。 Windowsパス と UNCパス を使えるようにするための設定(WSL 設定編) 【本題】 Windows Subsystem for Linux の emacsclient を Windows から利用するための設定です。 1) 次のページを参考とし、Emacs が GWSL を使って起動できるように設定を行う。 WSL で Emacs を使うための設定 上記の 10) の設定は行ってください。GWSL の起動や DISPLAY 環境変数の設定を行っています。 また、13) の「<フレームの高さを補正する設定>」も行ってください。WSL Emacs on GWSL でフレームを開く際、高さが低く作成される状況が改善されます。 さらに、21) で紹介している次の設定を行ってください。この設定は、本設定を使う上での 前提条件 となっています。 Windowsパス と UNCパス を使えるようにするための設定(WSL 設定編) この設定をすることで、Emacs で指定するパスに Windows パスや UNC パスを指定できるようになり、以降で説明する wslclient 系コマンドが利用可能となります。 ⇒ (注)ただし、wslclient.exe を起動するのみであれば、上記設定は不要です。wslemacs-start.exe を起動して Alt+e を押下した場合にも wslclient.exe が起動されていますが、このような使い方のみであれば、上記設定は不要となります。 2) DrvFs ファイルシステム上にフォルダを作成し、そのフォルダのパスを PATH に登録する。そして、そのフォルダに 次のリポジトリにあるコマンドを配置する。 https //github.com/smzht/win-utils ※ Windows 10 1903 を利用している場合、PATH に登録するパスは DrvFs のフォルダへの実際のパス(シンボリックリンクではないパス)としてください。シンボリックリンクのパスを PATH に登録すると、exe コマンドが実行できなくなります。 3) wslclient.exe をコピーして、次の名称のコマンドを上記と同じフォルダ内に作成する。 wslclient.exe # wait version (コピー元) wslclient-n.exe # no-wait version wslclient-c.exe # create-frame and wait version wslclient-cn.exe # create-frame and no-wait version ※ 2) で紹介したリポジトリには、コピーを作成するための wslclient-copy.sh スクリプトも格納しています。 4) Emacs にタイトルフォーマットの設定("emacs" で始まるタイトルとする設定)を行う。上記でインストールした wslclient 系コマンドを使う場合に必要となる。 (setq frame-title-format (format "emacs-%s - %%b " emacs-version)) ※ 別途公開している sglstart コマンドを利用している場合、%%b の後のスペースは必要 5) Emacs に emacs-server を立上げる設定を行う。これで、WSL 側で emacsclient が利用可能となる。(以降で紹介する Emacs のデーモンモードを利用する際には、server-start が自動起動されるため本設定は不要となります。) (require server) (unless (server-running-p) (server-start)) ※ EDITOR 環境変数の設定をすることにより、git などとも連携が可能となります。 export EDITOR=emacsclient ※ WSL コンソールから Emacs on GWSL を間接的に使いたい場合は、次のようにすることもできます。(ウインドウフォーカスが移動します。) export EDITOR=wslclient 6) Emacs をデーモンモードで起動する。 WSL コンソール起動時(bash 起動時)にインタラクティブな応答(例えば、 keychain や ssh-add 実行時のパスフレーズの入力など)が 無い 使い方をしている場合には、wslemacs-start.exe を実行することで Emacs を起動することができます。Windows の Startup フォルダに wslemacs-start.exe のショートカットを置くことで、ログイン時に自動起動させることもできます。 wslemacs-start.exe を終了するには、タスクトレイのアイコンを右クリックして Kill Emacs を選択してください。もしくは、wslemacs-stop.exe を実行することでも終了できます。 WSL コンソール起動時にインタラクティブな応答がある場合は、WSL コンソールを起動してから Emacs --daemon で Emacs を起動してください。 ⇒ (2019/07/16 追記)次のページで紹介されている ssh-agent-wsl を利用することで、keychain や ssh-add 実行時のパスフレーズの入力を回避できる(OS を再起動しても ssh-add で登録した秘密鍵が保持され、パスフレーズの入力が不要となる)ことが分かりました。お試しください。 https //qiita.com/q1701/items/3cdc2d7ef7a3539f351d ⇒ (2019/08/21 追記)wslemacs-start.exe を起動したときのタスクトレイのメニューにコンソールを表示する機能(Show Console)を追加しました。この機能を使えば、インタラクティブな応答がある場合でも、コンソールを表示して入力することができるようになりました。 Emacs を常時立ち上げて利用されている方は、デーモンモードでなく Emacs を直接立ち上げることでも構いません。 7) 次のページの方法で、3) で作成した wslclient 系コマンドの中から適当なコマンドのショートカットを SendTo フォルダに作成する。 https //www.atmarkit.co.jp/ait/articles/1109/30/news131.html これで Explorer の右ボタンメニューの「送る」機能で、ファイルやフォルダを wslclient 系コマンドに送る(で開く)ことができるようになります。作成するショートカットの名前を「n」で始めておくと、右ボタンでメニューを開いた後に n を二回押下するだけで、wslclient 系コマンドを開くことが可能となります。 上記の方法以外に、次の方法でも wslclient 系コマンドを起動させることができます。 wslclient 系コマンドとファイルの結びつけを行い、そのファイルをダブルクリックする。 wslclient 系コマンドのアイコンに開きたいファイルやフォルダをドラック&ドロップする。 また、次の方法で Emacs のフレームをアクティブに表示させることができます。 wslclient 系コマンドを直接ダブルクリックする。 wslemacs-start.exe で Emacs を起動している場合、Alt+e を入力する。 さらに、Thunderbird で外部エディタとして Emacs を使いたい場合は、wait version の wslclient.exe または wslclient-c.exe が利用できます。外部エディタの設定については、MinGW版 Emacs 用に作ったページですが、次の設定が参考になると思います。 emacsclientw を使うための設定 8) Keyhac で以下のような設定を行う(オプション)。 この設定により、クリップボードにコピーした Windows パスや UNC パスをワンキーで Emacs で開けるようになります。 ※ 「 Windows パス 」の部分は書き換えてお使いください。 ※ 「Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版)」を利用する(している)場合には、拡張機能 emacsclient Extension を有効にしてください。 # -*- mode python; coding utf-8-with-signature-dos -*- # http //qiita.com/hshimo/items/2f3f7e070ae75243eb8b from keyhac import * def configure(keymap) keymap_global = keymap.defineWindowKeymap() # emacsclient プログラムを起動するキーを指定する emacsclient_key = "C-Period" # emacsclient プログラムを指定する emacsclient_name = r" Windows パス \wslclient-n.exe" # emacsclient プログラムの起動 def emacsclient() clipboard_text = getClipboardText() if clipboard_text path = re.sub("\n|\r", "", clipboard_text.strip()) path = re.sub(r (\\+)" , r \1\1" , path) path = re.sub( " , r \" , path) path = re.sub( ^ , " , path) keymap.ShellExecuteCommand(None, emacsclient_name, path, "")() keymap_global[emacsclient_key] = emacsclient 変更履歴 2018/03/16 このページを作成した。 2018/12/06 clipboard_text からパスを抽出する際、キャリッジリターン(\r)も除去するように対応した。 2019/07/14 デーモンモードで起動した Emacs とでも連携して利用できるように見直した。 2019/07/16 wslemacs-start.exe で起動する Emacs のオプションを --daemon から --fg-daemon に変更した。 2019/07/18 wslemacs-start.exe で Emacs デーモンを起動する際、WSL のホームディレクトリから起動されるように設定を追加した。 2019/07/19 wslemacs-start.exe プロセス終了時、起動している Emacs に (kill-emacs) を送信するように見直しした。 2019/07/20 Alt+e で wslclient.exe が起動するように wslemacs-start.exe を見直しした。 2019/07/26 WSL のスクリプト wslclient を使うための設定を追記した。 2019/07/27 wslclient 系コマンドの wait バージョン wslclient-w.exe を使うための設定を追記した。 2019/07/31 wslclient-w.exe の処理終了時の挙動を変更した。 2019/08/19 wslemacs-start.exe のタスクトレイアイコンのメニューにコンソールを表示/非表示する機能を追加した。 2019/10/20 emacsclientw.exe コマンドを作成し、wslemacs.exe コマンドと wslemacs-w.exe コマンドを emacsclientw.exe コマンドを利用するコマンドに見直した。 2019/10/23 wslclient コマンドに、リターンコードと標準出力等に対応する対策を行った。 2019/10/25 wslclient 系コマンドの仕様を見直した。 2019/10/26 Fakeymacs の設定で、コピペしたパスにダブルコーテーションが含まれている場合の対策を行った。 2020/05/06 WSL2 で動かすために emacsclientw.exe コマンドの見直しを行った。
https://w.atwiki.jp/eraiwa/pages/19.html
概要 以下のリストはシステムエラー -299 から -5553 についての説明です。この記事は、Mac OS 9 以前にのみ適用します。 対象製品 Mac OS 9.2, Mac OS 9.1, Mac OS 9.0, Mac OS 8.6, Mac OS 8, Mac OS 8.1, Mac OS 8.5 注記 1.[カッコ]中の項目は古い結果コードを意味します。 2.「????」この情報は入手できなかったものです。 Notification Manager エラー 299 nmTypErr 無効な qType *ORD (nmType) である可能性あり Start Manager エラー 290 smSDMInitErr SDM を初期化できなかった 291 smSRTInitErr Slot Resource Table を初期化できなかった 292 smPRAMInitErr Slot Resource Table を初期化できなかった 293 smPriInitErr カードを初期化できなかった 300 smEmptySlot スロットにカードが見つからない 301 smCRCFail 不明なデータにより CRC チェック失敗 302 smFormatErr FHeader フォーマットがアップルのものでない 303 smRevisionErr 不良リビジョンレベル 304 smNoDir ディレクトリオフセットが NIL 305 smLWTstBad 不良ワードテストフィールド $5A932BC7 306 smNosInfoArray sInfoArray がない、メモリマネージャエラー。 307 smResrvErr 致命的なリザーブエラー。リザーブフィールド 0。 308 smUnExBusErr 予期せぬバスエラー 309 smBLFieldBad ByteLanes フィールド不良 310 smFHBlockRdErr _sGetFHeader 中に発生したエラー 311 smFHBlkDispErr _sDisposePtr(FHeader ブロックの削除)中に発生したエラー 312 smDisposePErr _DisposePointer エラー 313 smNoBoardsRsrc Board sResource が見つからない 314 smGetPRErr _sGetPRAMRec(SIMStatus 参照)中に発生したエラー 315 smNoBoardId Id が見つからない 316 smIntStatVErr 1 回目または 2 回目の初期化後に InitStatusV フィールドが負 317 smIntTblVErr Slot Resource Table 初期化中に発生したエラー 318 smNoJmpTbl SDM ジャンプテーブルが作成されなかった 319 smBadBoardId BoardId 不良、PRAM レコードを再初期化 320 smBusErrTO BusError タイムアウト 330 smBadRefId リストにリファレンス Id が見つからなかった 331 smBadsList 不良 sResource [sList] ストラクチャ Id1 332 smReservedErr リザーブフィールドがゼロでない 333 smCodeRevErr コードリビジョン不良 334 smCPUErr コードリビジョン不良 335 smsPointerNil LPointer がない {sOffsetData の。このエラーが起きた場合は、詳しい情報について sInfo レコードをチェックしてください} 336 smNilsBlockErr Nil sBlock エラー {アロケートせずに、nil sBlock を使用してみてください} 337 smSlotOOBErr Slot 範囲外エラー 338 smSelOOBErr Selector 範囲外エラー; 関数はインプリメントされない 339 smNewPErr _NewPtr エラー 340 smBlkMoveErr _BlockMove エラー 341 smCkStatusErr スロットのステータス = fail 342 smGetDrvrNamErr _sGetDrvrName 中に発生したエラー 343 smDisDrvrNamErr _sDisDrvrName 中に発生したエラー 344 smNoMoresRsrcs sResources がない*または* 344 smNoMoresResources 特定の sResource データストラクチャが見つからない 345 smsGetDrvrErr _sGetDriver 中に発生したエラー 346 smBadsPtrErr 不良ポインタが sCaldSPointer 関数に渡った 347 smByteLanesErr カードフォーマットブロックの ByteLanes フィールドがゼロになるように決定されていた 348 smOffsetErr オフセットが大きすぎる(一時的、要修正) 349 smNoGoodOpens ループでオープンができなかった 350 smSRTOvrFlErr SRT オーバーフロー 351 smRecNotFnd SRT 内でレコードがみつからない Device Manager Slot Support エラー 360 slotNumErr 無効なスロット番号エラー 400 gcrOnMFMErr 高密度メディアの gcr フォーマットエラー Edition Manager エラー 450 editionMgrInitErr Manager が初期化されない、またはパッケージをロードできなかった 451 badSectionErr 有効なセクションタイプではない 452 notRegisteredSectionErr 登録されていない 454 badSubPartErr 不良エディションコンテナ仕様または無効なエディションコンテナ 460 multiplePublisherWrn パブリッシャーはすでに存在する 461 containerNotFoundWrn エイリアスが展開できなかった 463 notThePublisherWrn パブリッシャーでない SCSI Manager Errors 470 scsiBadPBErr パラメタブロック内の無効フィールド(複数) 471 scsiOverrunErr 多すぎるバイト転送を試みた 472 scsiTransferErr データ転送フェーズで書き出しフラグのコンフリクト 473 scsiBusTOErr 転送中のバスエラー 474 scsiSelectTOErr scsiSelTO 超過(選択は失敗) 475 scsiTimeOutErr scsiReqTO 超過 476 scsiBusResetErr バスはリセットされ、リクエストはキャンセルされた 477 scsiBadStatus ゼロでない(「良い」状態でない)状態に戻った 478 scsiNoStatusErr デバイスがステータスフェーズに入らない 479 scsiLinkFailErr リンクされているコマンドが実行されない 489 scsiUnimpVctErr インプリメントされていないルーチンがコールされた オンライン $A9FF $ABFF の代わりに使用された SysErrs 490 userBreak ユーザデバッガ・ブレーク 491 strUserBreak ユーザデバッガ・ブレーク - スタック上の文字列を表示 492 exUserBreak ユーザデバッガ・ブレーク - スタック上でコマンドを実行 QuickDraw エラー 500 rgnTooBigErr ビットマップが 64 KB 以上のリージョンに変換された Text Edit エラー 501 teScrapSizeErr テキスト編集レコード用にスクラップ項目が大きすぎる O/S エラー 502 hwParamrErr _HWPriv の不良セクタ プロセスエラー 600 procNotFound 特定のプロセスシリアル番号がついた適切なプロセスがみつからない 601 memFragErr 特定条件でアプリケーションを起動するための十分な空き領域がない 602 appModeErr メモリモードは 32 ビットであるが、アプリケーションは 32 ビットクリーンでない 603 protocolErr アプリケーションが不適切な順番でモジュールのコールを実行した 604 hardwareConfigErr ハードウェア構成がコールに対して不適切 605 appMemFullErr SIZE リソースに指定されているパーティションサイズが、起動には十分でない 606 appIsDaemon アプリケーションはバックグラウンド専用 607 bufferIsSmall バッファが小さすぎる 608 noOutstandingHLE 未処理のハイレベルイベントはない 609 connectionInvalid 接続は無効 610 noUserInteractionAllowed バックグラウンドから PostHighLevelEvent を試みて、セッションはまだ確立されていない メモリディスパッチエラー 620 notEnoughMemoryErr 不適切な実装メモリ 621 notHeldErr 指定範囲のメモリがホールドされない 622 cannotMakeContiguousErr 指定範囲を連続にできない 623 notLockedErr 指定範囲のメモリがロックされない 624 interruptsMaskedErr マスクされた割り込みにコールされた DatabaseAccess (Pack 13) エラー 800 rcDBNull データ項目が NULL だった 801 rcDBValue データは利用可能、またはうまくリトリーブできた 802 rcDBError エラーを実行した関数 803 rcDBBadType 次のデータ項目はリクエストされたデータタイプと違う 804 rcDBBreak 関数タイムアウト 805 rcDBExec クエリーは現在実行中 806 reDBBadSessID セッション ID が無効 807 rcDBBadSessNum 無効なセッション番号 808 rcDBBadDDEV 指定されたデータベース機能拡張を見つけられなかった、またはデータベース機能拡張をオープンしている途中でエラーが発生した 809 rcDBAsyncNotSupp データベース機能拡張は非同期コールをサポートしていない 810 rcDBBadAsyncPB 無効なパラメータブロックが指定されていた 811 rcDBNoHandler 現在のアプリケーション用にインストールされているこのデータタイプに対するハンドラは存在しない 812 rcDBWrongVersion 不良バージョン番号 Help Manager エラー 850 hmHelpDisabled ヘルプバルーンが有効になっていない 851 hmResNotFound ???? 852 hmMemFullErr ???? 853 hmBalloonAborted カーソルが動き続けているので、ヘルプバルーンは表示されなかった 854 hmSameAsLastBalloon メニューと項目は、以前のメニューと項目と同じ 855 hmHelpManagerNotInited ヘルプメニューがセットアップされていない 856 hmBadSelector ???? 857 hmSkippedBalloon バルーンコンテンツが入っていない 858 hmWrongVersion Help Manager リソースの不良バージョン 859 hmUnknownHelpType Help メッセージのレコードに不良タイプが含まれている 860 hmCouldNotLoadPackage ???? 861 hmOperationUnsupported 不良メソッドパラメタ 862 hmNoBalloonUp バルーンが表示されない 863 hmCloseViewActive CloseView を使用するユーザにより、バルーンを外すことができない AppleTalk * PPC Toolbox Errors 900 notInitErr PPC Toolbox が初期化されていない 902 nameTypeErr ロケーション名の無効、または不適切な locationKindSelector 903 noPortErr 無効なポート名; ポートをオープンできない、または不良ポート参照番号 904 noGlobalsErr システムがメモリアロケートできない、重大なエラー 905 localOnlyErr ネットワーク機能が現在使用できない 906 destPortErr 目的先のポートが存在しない 907 sessTableErr PPC Toolbox がセッションを作成できない 908 noSessionErr 無効なセッション参照番号 909 badReqErr このオペレーションに対して不良パラメータ、または無効なステート 910 portNameExistsErr 他のポートがすでに同じ名前でオープンされている 911 noUserNameErr 目的のマシンのユーザ名不明 912 userRejectErr 相手先がセッションリクエストを否認した 915 noResponseErr アプリケーションと連絡できない 916 portClosedErr ポートはクローズされていた 917 sessClosedErr セッションはクローズされていた 919 badPortNameErr PPC ポートレコードが無効 922 noDefaultUserErr ユーザが共有設定コントロールパネルに所有者名を指定していない 923 notLoggedInErr デフォルトユーザ参照番号が存在しない 924 noUserRefErr 新規デフォルトユーザ参照番号を作成できない 925 networkErr ネットワークでエラーが発生した 926 noInformErr ターゲットアプリケーションがペンディングの通知をしなかったので、PPCStart 失敗 927 authFailErr ユーザパスワードの不良 928 noUserRecErr 無効なユーザ参照番号 930 badServiceMethodErr サービスメソッドが ppcServiceRealTime 以外 931 badLocNameErr ロケーション名が無効 932 guestNotAllowedErr 相手先ポートが認証を要求する AppleTalk - NBP エラー 1024 nbpBuffOvr LookupName でバッファオーバーフロー 1025 nbpNoConfirm ConfirmName で名前が確認されない 1026 nbpConfDiff 別のソケットで名前が確認された 1027 nbpDuplicate すでに重複する名前が存在する 1028 nbpNotFound 削除で名前が見つからない ASP エラー (XPP ドライバ) 1066 BadVersNum サーバはこれをサポートできない 1067 BufTooSmall バッファが小さすぎる 1068 NoMoreSess サーバ上にセッションがみつからない 1069 NoServers 対象となるアドレスにサーバは存在しない 1070 ParamErr パラメタエラー 1071 ServerBusy サーバは他のセッションをオープンできない 1072 SessClosed セッションはクローズされた 1073 SizeErr コマンドブロックが大きすぎる 1074 TooMany クライアントが多すぎる(サーバエラー) AppleTalk - ATP エラー 1096 reqFailed ルータに通信するリクエストが失敗 再試行回数が超過 1097 tooManyReqs 同時発生リクエストが多すぎる 1098 tooManySkts 同時発生返信ソケットが多すぎる 1099 badATPSkt 不良 ATP-返信ソケット 1100 badBuffNum 不良返信バッファ番号が指定された 1101 noRelErr リリースを受けていなかった 1102 cbNotFound Control Block がみつからない; ペンディングになっている非同期コールはない 1103 noSendResp SendResponse なしで AddResponse が発行された 1104 noDataArea MPP に対するリクエスト用データ領域がない Data Stream Protocol - DSP ドライバエラー 1273 errOpenDenied オープンリクエストが受け手によって拒否された 1274 errDSPQueueSize 送信または受信キューが小さすぎる 1275 errFwdReset 前のリセットによって読み込みが停止された 1276 errAttention Attention メッセージが長過ぎる 1277 errOpening 接続をオープンする試みが失敗 1278 errState このオペレーションに対して不良接続ステート 1279 errAborted dspRemove または dspClose 関数によってリクエストはアボートされた HFS エラー 1300 fidNotFound ファイル ID がみつからない [ファイルスレッドが存在しない] 1301 fidExists ファイルはすでに存在する 1302 notAFileErr 指定されたファイルはディレクトリ 1303 diffVolErr 別のボリューム上のファイル 1304 catChangedErr カタログが変更されていて CatPosition が無効である可能性あり 1305 desktopDamagedErr デスクトップデータベースが破損している * Finder はこれを修復するが、Finder でアプリケーションが動作していない場合は、DTReset または DTDelete を使用してください。 AppleEvent エラー 1700 errAECoercionFail リクエストされているディスクリプションタイプにデータを強制的にあわせることができなかった 1701 errAEDescNotFound ディスクリプタレコードがみつからなかった 1702 errAECorruptData イベントのデータが読めなかった 1703 errAEWrongDataType 不良ディスクリプタタイプ 1704 errAENotAEDesc 有効なディスクリプタレコードでない 1705 errAEBadListItem オペレーションに不良項目のリストが含まれている 1706 errAENewerVersion Apple Event Manager の新しいバージョンが必要 1707 errAENotAppleEvent イベントが Apple イベントでない 1708 errAEEventNotHandled イベントは Apple イベントハンドラで取り扱うことができなかった 1709 errAEReplyNotValid AEResetTimer が無効な返答を渡した。 1710 errAEUnknownSendMode 無効な送信モードが渡された 1711 errAEWaitCanceled ユーザが「アウトオブウェイト」ループを返答またはレシートのためにキャンセルした 1712 errAETimeout Apple イベントタイムアウト 1713 errAENoUserInteraction ユーザの操作は許可されない 1714 errAENotASpecialFunction 特別な関数に対する不良キーワード 1715 errAEParamMissed ハンドラが必要なパラメタすべてを獲得しなかった 1716 errAEUnknownAddressType 未設定 Apple イベントアドレスタイプ 1717 errAEHandlerNotFound Apple イベントや強制 (coercion) でハンドラはみつからなかった 1718 errAEReplyNotArrived 応答が到着しない AppleTalk - ATP エラー 3101 buf2SmallErr パケットがバッファに対して大きすぎる; 一部のデータが戻った 3102 noMPPErr MPP エラーなし 3103 ckSumErr チェックサムエラー 3104 extractErr 展開エラー 3105 readQErr キュー読み込みエラー 3106 atpLenErr ATP 長のエラー 3107 atpBadRsp ATP 応答不良エラー 3108 recNotFnd レコードがみつからない 3109 sktClosedErr ソケットがクローズされているエラー Print Manager w/LaserWriter 4096 ??? 利用可能な空き Connect Control Blocks はない 4097 ??? 不良接続参照番号 4098 ??? リクエストはすでにアクティブ 4099 ??? 書き出しリクエストが大きすぎる 4100 ??? 接続はクローズされている 4101 ??? プリンタがみつからない、またはクローズされている File Manager 機能拡張エラー 5000 accessDenied このファイル/フォルダに対する不正なアクセス 5006 DenyConflict 許可/拒否モードが、フォークがすでにオープンしている現在のモードとコンフリクト 5015 NoMoreLocks サーバからのバイト範囲ロック失敗 5020 RangeNotLocked すでにロック解除された範囲をロック解除しようとする AFP エラー (XPP ドライバ) 5000 afpAccessDenied AFP アクセスは拒否された 5001 afpAuthContinue AFP 権限継続 5002 afpBadUAM AFP 不良 UAM 5003 afpBadVersNum AFP 不良バージョン番号 5004 afpBitmapErr AFP ビットマップエラー 5005 afpCantMove AFP がエラーを移動できない 5006 afpDenyConflict AFP 拒否コンフリクト 5007 afpDirNotEmpty AFP ディレクトリが空でない 5008 afpDiskFull AFP ディスクフル 5009 afpEofError AFP「エンドオブファイル」エラー 5010 afpFileBusy AFP ファイルビジー 5011 afpFlatVo AFP フラットボリューム 5012 afpItemNotFound AFP 情報がみつからない 5013 afpLockErr AFP ロックエラー 5014 afpMiscErr AFP その他のエラー 5015 afpNoMoreLocks AFP これ以上ロックできない 5016 afpNoServer AFP サーバがない 5017 afpObjectExists AFP オブジェクトがすでに存在する 5018 afpObjectNotFound AFP オブジェクトがみつからない 5019 afpParmErr AFP Parm エラー 5020 afpRangeNotLocked AFP 範囲がロックされていない 5021 afpRangeOverlap AFP 範囲が重なっている 5022 afpSessClosed AFP セッションがクローズされている 5023 afpUserNotAuth AFP ユーザが認証されない 5024 afpCallNotSupported AFP コールがサポートされていない 5025 afpObjectTypeErr AFP オブジェクトタイプエラー 5026 afpTooManyFilesOpen AFP オープンしているファイルが多すぎる 5027 afpServerGoingDown AFP サーバがダウンする 5028 afpCantRename AFP が名前を付け替えられない 5029 afpDirNotFound AFP ディレクトリがみつからない 5030 afpIconTypeError 新規アイコンのサイズとそれに置き換えられたアイコンのサイズが一致していない 5031 afpVolLocked ボリュームは読み込み専用 5032 afpObjectLocked オブジェクトがロックされているため、指定されたコマンドが実行できなかった 5033 afpContainsSharedErr 指定されている共有ポイントが共有ポイントを含んでいる 5034 afpIDNotFound 指定されている ID がみつからなかった 5035 afpIDExists 指定されている ID はすでに存在する 5036 afpDiffVolErr Mac OS エラーコードと同様 5037 afpCatalogChanged カタログは変更されていて CatPosition は有効でない可能性がある。一致するものは帰ってこない 5038 afpSameObjectErr Mac OS エラーコードと同様 5039 afpBadIDErr 指定されている ID は無効 5040 afpPwdSameErr 新規パスワードは旧パスワードと同じ 5041 afpPwdTooShortErr 指定されているパスワードは短すぎる 5042 afpPwdExpiredErr パスワードの有効期限切れ 5043 afpInsideSharedErr 指定されているディレクトリは共有ポイントにある 5044 afpInsideTrashErr 指定されているディレクトリはゴミ箱にある 5045 afpPwdNeedsChangeErr ユーザが初回ログインしたパスワードを変更する必要がある 5046 afpPwdPolicyErr 指定されているパスワードは UAM の方針に反する 5047 afpAlreadyLoggedOn 指定されているユーザは、すでにログイン済 SysEnvirons エラー 5500 envNotPresent SysEnvirons トラップが起こらない--グルーによって戻される 5501 envBadVers バージョンが前に進むものでない 5502 envVersTooBig バージョンが扱い可能なものより大きい Gestalt Errors 5550 gestaltUnknownErr 返答を獲得できなかった 5551 gestaltUndefSelectorErr 未定義セレクタ 5552 gestaltDupSelectorErr セレクタがすでに存在する 5553 gestaltLocationErr 関数がシステムヒープにない