Yamamoto's Laboratory
Window 7
Windows 10
 設定

環境設定

デスクトップ

タスクバーの幅を狭く

タスクバーの幅が広くて,間抜けに見える.そこで,その幅を修正する.

  1. タスクバーの上にマウスカーソル移動して,右クリック,現れたメニューのタスクバーの設定をクリックする.
  2. そして,左のメニューの「タスクバ」を選択する.
  3. 「小さいタスクバーボタンを使う」をオンにします.

Keyhac の設定

Windows と UNIX 系のショートカットキーはまったく異なっています.UNIX 系 OS をメインに使っているユーザーにとって,Windows は使いにくいものです.UNIX 系の OS は Emacs 風のショートカットになっている場合が多く.一部のユーザーは Windows のショートカットを Eamcs (or Unix) 風に変えたいでしょう.その希望は,「Keyhac」で叶えることができます.Widows で Keyhac を動作させると,さまざまな Windows アプリケーションで Emacs 風のショートカットキーが使えるようになります.

インストール

keyhac のインストール方法は以下のとおりです.

  1. Keyhac - Pythonによる柔軟なキーカスタマイズツール - craftware へ移動します.
  2. 最新の Keyhac をダウンロードします.そして,ダウンロードしたファイル「keyhac_175.zip」(2017.9.30 最新) を解凍します.すると,「keyhac_176」というフォルダーができます.
  3. 解凍したデレクトリー内にある「keyhac」を C:\Program Files に移動します.
  4. フォルダー「keyhac」以下にある keyhac.exe を実行 (ダブルクリック) します.エラー無く,keyhac が実行できることを確認します.
  5. 毎回,keyhac.exe をダブルクリックするのは面倒です.Windows の起動時,自動的に keyhac.exe が実行されると便利です..そのために,以下の設定を行います.
    1. Windows のスタート > すべてのプログラム > スタートアップ を選択します.そして,右クリックし,「開く(O)」を選択します.すると,ダイアログ「スタートアップ」が表示されます.そこには,Windows 起動時に自動的に実行されるプログラムあるいはショートカットが保管されています.
    2. 先にインストールした「keyhac.exe」を右クリックし,「コピー(C)」を選択します.
    3. そして,ダイアログ「スタートアップ」を右クリックし,「ショートカットの貼り付け(S)」を選択します.「keyhac.exe-ショートカット」が保管されます.

アプリケーション

設定が必要なアプリケーションを説明します.

EMACS

昔から,Emacs をエディターとして使っています.Ubuntu で使うことが多かったのですが,Windows でも使うことも増えました.そこで,Ubuntu と同じように使えるように設定します.

インストール

Windows 版の Emacs(もどき?) には,いくつかあります.大きな理由はありませんが,そのなかで NTEmacs を,私はつかっています.そのインストール方法示します.

  1. NTEmacs JP Projectのダウンロードのページから,「emacs_22.2_bin_20080327.exe」をダウンロードする.ソースとパッチをダウンロードしても良いが,make が面倒なので,バイナリー版を使うことにする.
  2. ダウンロードした「emacs_22.2_bin_20080327.exe」をダブルクリックする.
  3. 解凍されたフォルダーの中にあるフォルダー「emacs-22.2」ごと,C:\Program Files\ に移動.
  4. bin ディレクトリーにパスを通す.
  5. 設定ファイル「init.el」は,ディレクトリー「C:\Users\ユーザー名\AppData\Roaming\.emacs.d」に保存します.設定ファイルの例は,次節で示します.

設定

emacs の設定は,ファイル「init.el」に記載します.私の例(init.el)を以下に示します.

;; ================================================================
;; いろいろな設定
;; ================================================================
(global-set-key [delete] 'delete-char)
(global-set-key [kp-delete] 'delete-char)

(global-font-lock-mode t)            ;; 文字装飾(カラー強調)
(setq-default transient-mark-mode t) ;; リージョンのハイライト

(setq require-final-newline t)       ;; 最後に改行を追加

;; stop at the end of the file, not just add lines
(setq next-line-add-newlines nil)

(when window-system
  (mwheel-install)   ;; enable wheelmouse support by default
;; use extended compound-text coding for X clipboard
  (set-selection-coding-system 'compound-text-with-extensions)
)

(global-set-key [(ctrl z)] 'undo)  ;; undo の設定

;; 起動時の画面を非表示にする
(setq inhibit-startup-message t)

;; load pathの追加
(setq load-path (append (list
       (expand-file-name "C:/Program Files/Emacs/emacs-28.2/share/emacs/28.2/site-lisp")
                         )
                        load-path))
(setq load-path (append (list
       (expand-file-name "C:/Users/yamamoto/AppData/Roaming/.emacs.d/site-lisp")
                         )
                        load-path))
(setq load-path (append (list
       (expand-file-name "C:/Users/yamamoto/AppData/Roaming/.emacs.d/site-lisp/yatex")
                         )
                        load-path))


;; =====================================================================
;; WindowsキーをMetaキーにする
;; =====================================================================
(setq w32-pass-lwindow-to-system nil)
(setq w32-lwindow-modifier 'Meta)
(setq w32-pass-rwindow-to-system nil)
(setq w32-rwindow-modifier 'Meta)



;; ----------------------------------------------------------------
;; 日本語の設定
;; https://utsuboiwa.blogspot.com/2014/07/sunnyside-emacs.html
;; -----------------------------------------------------------------
(set-language-environment "Japanese")
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(set-clipboard-coding-system 'shift_jis)


;; ----------------------------------------------------------------
;; 全角の空白を分かり易く
;; http://www2.hyo-med.ac.jp/~tanimura/Ubuntu/UbuntuTrusty.html#sec17
;; -----------------------------------------------------------------
(require 'whitespace)
(cond (window-system
     (setq whitespace-style      ;; キャラクターの登録
           '(face                ;; face で可視化
;;             spaces             ;; 空白
;;             newline            ;; 改行
             space-mark          ;; 表示のマッピング
             newline-mark        ;; 改行のマッピング
             ))
     (setq whitespace-space-regexp "\\( +\\|\u3000+\\)")
     (setq whitespace-display-mappings
           '(
             (space-mark ?\u3000 [?\u25a1])   ;; 全角空白 に
             ))
     (global-whitespace-mode 1)
     (set-face-attribute 'whitespace-space nil
                         :background "white"
                         :foreground "gray80"
                         :underline t)
     ))



;; ================================================================
;;  モードの設定
;; ================================================================
(setq auto-mode-alist
      (append
       '(
     ("\\.h$"    . c++-mode)
     ("\\.txt$"  . text-mode)
     ("\\.tex$"  . yatex-mode)
     ("\\.sty$"  . yatex-mode)
     ("\\.html$"  . web-mode)
     ("\\.htm$"  . web-mode)
     ("\\.php$"  . web-mode)
     ) auto-mode-alist
       )
)


;==========================================================
; web-modeの設定
;        参考: http://yanmoo.blogspot.jp/2013/06/html5web-mode.html
;;==========================================================
(require 'web-mode)
(defun web-mode-hook ()
  "Hooks for Web mode."
  ;; 変更日時の自動修正
  (setq time-stamp-line-limit -200)
  (if (not (memq 'time-stamp write-file-hooks))
      (setq write-file-hooks
            (cons 'time-stamp write-file-hooks)))
  (setq time-stamp-format " %3a %3b %02d %02H:%02M:%02S %:y %Z")
  (setq time-stamp-start "Last modified:")
  (setq time-stamp-end "$")
  ;; web-modeの設定
  (setq web-mode-pre-elements nil)       ;; content inside <code>,<pre>,<textarea> is not indented any more
  (setq web-mode-markup-indent-offset 2) ;; html indent
  (setq web-mode-css-indent-offset 2)    ;; css indent
  (setq web-mode-code-indent-offset 2)   ;; script indent(js,php,etc..)
  (setq web-mode-comment-style 2)
  )

(add-hook 'web-mode-hook  'web-mode-hook)
;; 色の設定
(custom-set-faces
 '(web-mode-doctype-face
   ((t (:foreground "#82AE46"))))                          ; doctype
 '(web-mode-html-tag-face
   ((t (:foreground "#E6B422" :weight bold))))             ; 要素名
 '(web-mode-html-attr-name-face
   ((t (:foreground "#CCFF00"))))                          ; 属性名など
 '(web-mode-html-attr-value-face
   ((t (:foreground "#87ceeb"))))                          ; 属性値
 '(web-mode-comment-face
   ((t (:foreground "#FF7F50"))))                          ; コメント
 '(web-mode-server-comment-face
   ((t (:foreground "#FF7F50"))))                          ; コメント
 '(web-mode-css-rule-face
   ((t (:foreground "#A0D8EF"))))                          ; cssのタグ
 '(web-mode-css-pseudo-class-face
   ((t (:foreground "#FF7F00"))))                          ; css 疑似クラス
 '(web-mode-css-at-rule-face
   ((t (:foreground "#FF7F00"))))                          ; cssのタグ
)

;================================================================
; color設定
;================================================================
(setq default-frame-alist 
      (append 
       (list 
    '(mouse-color . "red");
    '(foreground-color . "bisque1") ;; 文字の色
    '(background-color . "dark slate gray") ; 背景の色
    '(width . 100)                  ;; ウインドウの幅
    '(height . 40)                  ;; ウインドウの高さ
    '(top . 0)                      ;; ウインドウ上端の位置
    '(left . 5)                     ;; ウインドウ左端の位置
    '(vertical-scroll-bars . t)     ;; スクロールバーを出す
       )
      default-frame-alist)
)


;; =====================================================================
;; カーソルの種類
;; =====================================================================
(setq default-frame-alist
      (append '(
        (cursor-color . "GreenYellow")         ;; 色
        (cursor-type . (bar . 2))              ;; 形
               )
              default-frame-alist)
      )


;=====================================================================
; modeline に行数と桁数を表示
;=====================================================================
(line-number-mode t) 
(column-number-mode t)


;; =================================================================
;; 全てのバックアップファイルを/tmp以下に保存する。
;; http://satosan.jp/CustomizeEmacs.html
;; =================================================================
(defun make-backup-file-name (filename)
  (expand-file-name
    (concat "/tmp/" (file-name-nondirectory filename) "~")
    (file-name-directory filename)))


;; =====================================================================
;; 辞書の設定
;; =====================================================================
(setq ispell-dictionary "US-xlg")


;=====================================================================
; #filename というバックアップファイルを作らない
;=====================================================================
(setq make-backup-files nil)

;=====================================================================
;   ツールバーの設定
;=====================================================================
(tool-bar-mode -1)   ;M-x tool-bar-mode で表示非表示を切り替え

;; =====================================================================
;; カーソルの位置から行頭まで削除する
;; http://d.hatena.ne.jp/ama-ch/20090114/1231918903
;; =====================================================================
(defun backward-kill-line (arg)
  "Kill chars backward until encountering the end of a line."
  (interactive "p")
  (kill-line 0))
;; C-S-k に設定
(global-set-key (kbd "C-S-k") 'backward-kill-line)

;; =====================================================================
;; YaTeX-mode
;; =====================================================================
(setq auto-mode-alist  (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq load-path (cons "C:/Users/yamamoto/AppData/Roaming/.emacs.d/yatex" load-path))  ;; ytex のパス
(setq tex-command "platex")
(setq bibtex-command "C:/texlive/2023/bin/windows/pbibtex")     ; BibTeX コマンド

;=====================================================================
; edit-server の設定
;=====================================================================
(require 'edit-server)
(edit-server-start)

;====================================================================
; MELPA リポジトリからプラグインをダウンロード
; https://blog.515hikaru.net/entry/2015/11/10/000000
;;; Package.el config
;====================================================================
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

元々,Linux の emacs で使っていたファイルを書き直したもので,かなりデタラメです.

Happy Hacking Keyboard の設定

私は,Happy Hacking Keyboard (HHKB) の Professional 2 (Type-S, 英語) を使っています.そのままの設定でほとんど問題ないですが,Emacs を使うとき,◇ (ダイアモンドマーク) が Meta キーとしては動作しないことが不満でした.

英語キーボード設定

英語キーボードは,容易に設定可能です.具体的な手順は,以下のとおりです.

  1. Windows の [スタート] > [設定] を選択します ().
  2. 設定のダイアログの「時刻と言語」をクリックします ().
  3. 日付と時刻のダイアログが現れるので,言語をクリックします ().
  4. 優先する言語の日本語をクリックし,現れるボタン [オプション] をクリックします ().
  5. ハードウェア キーボード レイアウトの [レイアウトを変更する] をクリックします ().
  6. キーボードのレイアウトで「英語キーボード(101/102)キー」を選択します ().

以上で設定は完了です.ダイアログを消し PC を再起動すれば,英語キーボードのレイアウトが反映されます.

Emacs 用にメタキーの設定

HHKB の Emacs の ◇ (ダイアモンドマーク) が Meta キーに設定します.やりたいことは,HHKB のダイアモンドマークを windows キーに設定し,Emacs の時のみ,この windows キーを Meta キーにします.ただ,これがそう簡単でなことがわかりました.ネットを検索すると,windows キーを Meta キーに設定するためには,init.el では不可能とのことです.windows キーは低レベルで動作するために,Emacs では如何ともしがたいようです.AutoHotKey を使うと何とかなるかも.

そこで,次善の策として HHKB のディップスイッチの設定で,ダイアモンドマークを Meta キーの代わりに使うことにします.具体的には,以下の通りの設定を行いました.

表のキャプション
スイッチ 設定 動作
SW1 ON ◇='Windows キー'
SW2 OFF
SW3 ON Delete='BS'
SW4 OFF Left ◇='Left ◇'
SW5 ON ◇='Alt', Alt='◇'
SW6 OFF Wake Up Disable

このように設定することにより,キーボードのAltは Windows キー,は Alt キーとして動作します.Windows の Emacs では Meta キーは Alt なので,を押すことで Meta として動作します.Windows キーを使うためには,Altを押すことになります.

その他の設定

  • 一つの画面で複数のデスクトップが使える virtual desktops が便利.Linuxでは常識だったのですが,Windowsでもやっとまともなものがありました.Desktopsをダウンロードして,インストール.
  • 英語配列の Happy Hacking Keyboard の設定です.英語キーボードを使えるようにします.
    1. スタート → 設定 → 時刻と言語 → 言語 → 日本語 → オプション → ハードウェア キーボード レイアウト のレイアウトを変更するをクリックします.英語キーボード(101/102) を選択します.「変更は PC の再起動後に有効になります。」が表示されます.
    2. OK をクリックし,再起動します.
    3. 以上で,英語配列のキーボードを使うことができます.
  • マウスホーバーの設定.デフォルトだとホーバーした時,瞬時にアクティブウインドウになります.これって,結構使い難いです.そこで,ディレイ時間を設定します.
    1. regedit を起動します.タスクバーの虫眼鏡マーク(ここに入力して検索)で「regedit」と入力します.
    2. アクティブになる時間を設定します.そのためには,レジストリーエディターの HKEY_CURRENT_USER > Control Panel > Desktop で右クリックし,新規 > DWORD (32ビット) 値(D) を選択します.
    3. そして,ActiveWndTrkTimeout を作成し,値を500 (10進数) を設定します.これで,ウインドウがアクティブになる遅延時間: 500 [msec] の設定が完了です.
    4. PC を再起動すると,この設定が反映されます.

ページ作成情報

参考資料

更新履歴

2018年10月14日 ページ全体の修正


no counter