「Notepad を使って印刷するための設定」の編集履歴(バックアップ)一覧はこちら

Notepad を使って印刷するための設定」(2019/11/01 (金) 12:37:19) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

&bold(){■ Windows版 Emacs 共通の設定 } ---- &bold(){【お知らせ】} ---- &bold(){<2018/03/22 追記>} 「-*- lexical-binding: t -*-」を使うバージョンは、正常に動作していませんでしたので削除しました。(coding-system-for-write をセットする let も lexical で動いていたため。) ⇒&bold(){(2018/05/07 追記)}その後、defvar を用いることでの対応方法があることが分かりましたが、とりあえず lexical-let を利用したもののみを紹介することとしました。 &bold(){<2017/05/28 追記>} Windows Subsystem for Linux の Emacs で動作するバージョンもあります。お試しください。 ・[[Notepad を使って印刷するための設定(WSL 設定編)]] &bold(){【本題】} ---- Windows のテキストエディタを使って、バッファの内容を印刷するための設定です。 以下のページの内容を参考とし、Cygwin版 Emacs でも動くように調整したものです。 ・http://d.hatena.ne.jp/tunefs/20060501/p2 なお、本機能で開いたファイルはテンポラリーなものです。このファイルを編集しても元のファイルは変更されませんのでご注意ください。 (require 'cl-lib) ;; 印刷のために使うプログラムを指定する (defconst print-program "notepad.exe") ;; lpr-bufferコマンド で Windows のテキストエディタが開くようにする (setq print-region-function (lambda (start end program &optional delete destination display &rest args) (lexical-let* ((tmp-file (expand-file-name (concat (make-temp-name "print-") ".txt") temporary-file-directory)) (win-file (if (fboundp 'cygwin-convert-file-name-to-windows) (cygwin-convert-file-name-to-windows tmp-file) tmp-file))) (let ((coding-system-for-write 'cp932-dos)) (write-region start end win-file)) (set-process-sentinel (start-process "print-buffer" nil print-program win-file) (lambda (process state) (when (file-exists-p win-file) (delete-file win-file))))))) ;; lpr-buffer を実行する (global-set-key (kbd "C-c C-p") (lambda () (interactive) (lpr-buffer))) Cygwin版 Emacs の場合、以下の設定の print-program 変数の値を cygstart にすることでも動作すると思います。こちらの方がシンプルな設定かもしれません。 ・[[Notepad を使って印刷するための設定(WSL 設定編)]] ---- <変更履歴> ・2015/06/11 このページを作成した。 ・2015/09/09 「-*- lexical-binding: t -*-」を使うバージョンを追加した。 ---- #javascript(){{ <script> (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'); </script> }}
&bold(){■ Windows版 Emacs 共通の設定 } ---- &bold(){【お知らせ】} ---- &bold(){<2018/03/22 追記>} 「-*- lexical-binding: t -*-」を使うバージョンは、正常に動作していませんでしたので削除しました。(coding-system-for-write をセットする let も lexical で動いていたため。) ⇒&bold(){(2018/05/07 追記)}その後、defvar を用いることでの対応方法があることが分かりましたが、とりあえず lexical-let を利用したもののみを紹介することとしました。 &bold(){<2017/05/28 追記>} Windows Subsystem for Linux の Emacs で動作するバージョンもあります。お試しください。 ・[[Notepad を使って印刷するための設定(WSL 設定編)]] &bold(){【本題】} ---- Windows のテキストエディタを使って、バッファの内容を印刷するための設定です。 次のページの内容を参考とし、Cygwin版 Emacs でも動くように調整したものです。 ・http://d.hatena.ne.jp/tunefs/20060501/p2 なお、本機能で開いたファイルはテンポラリーなものです。このファイルを編集しても元のファイルは変更されませんのでご注意ください。 (require 'cl-lib) ;; 印刷のために使うプログラムを指定する (defconst print-program "notepad.exe") ;; lpr-bufferコマンド で Windows のテキストエディタが開くようにする (setq print-region-function (lambda (start end program &optional delete destination display &rest args) (lexical-let* ((tmp-file (expand-file-name (concat (make-temp-name "print-") ".txt") temporary-file-directory)) (win-file (if (fboundp 'cygwin-convert-file-name-to-windows) (cygwin-convert-file-name-to-windows tmp-file) tmp-file))) (let ((coding-system-for-write 'cp932-dos)) (write-region start end win-file)) (set-process-sentinel (start-process "print-buffer" nil print-program win-file) (lambda (process state) (when (file-exists-p win-file) (delete-file win-file))))))) ;; lpr-buffer を実行する (global-set-key (kbd "C-c C-p") (lambda () (interactive) (lpr-buffer))) Cygwin版 Emacs の場合、次の設定の print-program 変数の値を cygstart にすることでも動作すると思います。こちらの方がシンプルな設定かもしれません。 ・[[Notepad を使って印刷するための設定(WSL 設定編)]] ---- <変更履歴> ・2015/06/11 このページを作成した。 ・2015/09/09 「-*- lexical-binding: t -*-」を使うバージョンを追加した。 ---- #javascript(){{ <script> (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'); </script> }}

表示オプション

横に並べて表示:
変化行の前後のみ表示: