[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21. 日本語の入力方法と文字コード (2008/05/05)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=input%20method"
"MeadowMemo/日本語の入力方法と文字コード"へのコメント(無し)
検索全文Elisp


この章で紹介していること

Meadow の基本はテキストエディタです.したがって,日本語や英語を入力することができ ます.これができないと話になりませんからね.

しかし, Meadow/Emacs ができるのはそれだけではありません.日本語だけでなく中国語 など非常に多くの言語を入力する機能も備えているのです.

そこで,このページでは,文字入力に関連することを紹介します.

さらに,日本語の入力においては,文字コードの問題を避けて通ることができません.そ こで,文字コードや全角・半角の変換などについても,ここで紹介します.文字コードの 基本については,11.1 文字コードと改行コード − Meadow での変換方法 (2004/01/19) を参照してください.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.1 文字の入力方法 (2005/02/15)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=default%20input%20method"
"MeadowMemo/文字の入力方法"へのコメント(無し)
検索全文Elisp
要約

Meadowには標準で様々なIMEが備わっています.また,普段使っているIMEを使うように設 定することもできます.

何が問題なのか?

Meadowには標準で様々な入力方法(IME)が備えられています.しかし,日本語の入力であ れば,普段使っているIMEをMeadowでも使いたいことでしょう.

詳しい使い方

Meadowで普通に文字を入力するとアルファベットが入力されます.日本語を入力するため には,入力方法を切り替える必要があります.

入力方法の切り替えは C-\ で行います.この時,選択される入力方法は .emacs の設定によります.例えば

 
(set-language-environment "Japanese")
(setq default-input-method "MW32-IME")
(mw32-ime-initialize)

のように設定していると,C-\で Windows の IME をオン/オフすることができます. つまり,この「 MW32-IME 」というのが, Windows のデフォルトの IME を意味している のです.

文字の入力方法には「 MW32-IME 」以外にもたくさんあります.他の入力方法を選択する ためには,C-u C-\とします.こうすると,ミニバッファにカーソルが移動しますの で,TABを入力します.

すると,たくさんの入力方法がずらっと並びます.これが, Meadow で利用できる入力方 法です.日本語の入力方法としては,「 japanese 」というのがあります.これは 「 quail 」という入力方法です (ミニバッファに「 skk 」と出ますが,「 skk 」ではあ りません) .

他にも,「 latin-*」や「 chinese-*」など,多数の入力方法を選ぶことができます.こ れにより,アクセント付きのアルファベットや中国語などの入力が可能になります.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.2 日本語入力 ― SKK (2005/02/15)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=skk"
"MeadowMemo/日本語入力―SKK"へのコメント(無し)
検索全文Elisp

関連情報

顔文字辞書は本関連の辞書,音便の追加などは Wiki の SKK 辞書にあります.

何が問題なのか?

MS-IME は楽で便利ではあるのですが,英数字と日本語が明確に切り分けられていません. そのため,半角の英数字の入力のためには, IME を OFF にしたりする必要があり面倒です.

さらに,辞書に単語を登録するためには,わざわざ辞書ツールを起動しなくてはなりませ ん.いちいち,辞書ツールを起動するなんて面倒なので,結局学習機能だけで手動ではあ まり登録しないという人も多いのではないでしょうか.

そんな面倒なことを解決できるのが, SKK なのです.

何ができるのか?

SKK を使うと,日本語を入力することができます. SKK のページより,特徴を引用して おきます.

入力方法は MS-IME などとは大きく異なりますので,快適に使うことができるようになるに は,練習をする必要があります.少し時間がないといらいらだけが募るかもしれません.

インストール方法は?

インストールは Netinstall で可能です.

手動でやる場合には,SKK のページ より, Elisp と辞書をダウンロードしてきま す.辞書は SKK-JISYO.L がお勧めです.

そして,それらを解凍します.辞書はどこか適当なフォルダへ移動します. Elisp の方は 解凍し, bash で以下のようにします.

 cd skk/main
 make EMACS=meadow
 make EMACS=meadow install

これで,インストール完了です.

設定方法は?

以下を参考に設定します.辞書のパスとチュートリアルファイルのパスについては,適当 に変更してください.

 
(require 'skk-autoloads)

;; SKK.tut と辞書ファイルの場所を指定
(setq skk-tut-file "C:/unix/Meadow/site-lisp/etc/skk/SKK.tut")
(setq skk-large-jisyo "C:/unix/Meadow/site-lisp/etc/skk/SKK-JISYO.L")

(global-set-key "\C-x\C-j" 'skk-mode)
(global-set-key "\C-xj" 'skk-mode)
(global-set-key "\C-xt" 'skk-tutorial)

詳しい使い方は?

まず, SKK を起動します.上の設定をしていると C-x j で起動できます.そうす ると,モードラインが変化します.これで,日本語入力モードになりました.

後は,ローマ字入力で文字を入力していくと,ひらがなが入力できます.

MS-IME とは違い,SKKには文法を解析する仕組みはありません. そのため,IMEをオンにし た状態で普通に入力するとひらがなが入力されることになります.漢字を入力する時には, 明示的に「漢字」を入力するとSKKに伝える必要があります.

そのためには,「 Nihongo 」という風に,漢字に変換したい文字を大文字で始めるのです. その上で変換すると,「日本語」と変換できます.送り仮名も同様で, 「書く」と入力す るためには「 KaKu 」と送り仮名の最初の文字は大文字で始める必要があります.

このように説明すると, なんだか面倒くさい入力方法だなぁと思うかもしれません. 私も 最初の頃は使いにくいと思ってました. しかし, これに慣れてしまうと, 不思議と離れら れなくなります. IME まかせではなく,自分で切り分けながら入力してゆく.その入力方 法はまるで自分の手で書いているような操作性です.

もしも, 期待する候補がなければ, カーソルがミニバッファへ移動し,単語の登録になり ます.普通の入力の延長で,気軽に単語を登録できる操作性のよさもまた, SKK のいいと ころです.

こんな風に, SKK は MS-IME などの IME とは大きく操作方法が異なります.そのため, SKK を使ったことのない人はM-x skk-tutorial, あるいは, C-x t で練習が できますので, 一度やっておくことをお勧めします.

主な変換方法は

です.

困ったら, C-u M-x help-for-help i C:/usr/Meadow/1.15/info/skk.infoでとりあ えずヘルプを見ましょう

また,こんな設定を入れておくと, インクリメンタルサーチで日本語が使えるようになり ます.

 
(add-hook 'isearch-mode-hook
          (function (lambda ()
                      (and (boundp 'skk-mode) skk-mode
                           (skk-isearch-mode-setup)))))
(add-hook 'isearch-mode-end-hook
          (function (lambda ()
                      (and (boundp 'skk-mode) skk-mode
                           (skk-isearch-mode-cleanup)
                           (skk-set-cursor-color-properly)))))

21.2.1 SKK に関するリンク (2003/07/12)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.2.1 SKK に関するリンク (2003/07/12)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=skk%20link"
"MeadowMemo/SKKに関するリンク"へのコメント(無し)
検索全文Elisp

SKK Openlab [ 辞書登録希望フォーム ]

SKK 辞書

SKK 関係のツール

skkime's page



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3 skk をカスタマイズ (2008/05/05)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=skk%20custom"
"MeadowMemo/skkをカスタマイズ"へのコメント(無し)
検索全文Elisp

SKKは多様なカスタマイズが可能になっています.ここでは,そのカスタマイズについて 説明します.

21.3.1 skk の主要なカスタマイズ項目  
21.3.2 漢字をひらがなへ変換 ― skk-kakasi (2005/02/15)  
21.3.3 SKK 辞書サーバ (2004/01/07)  
21.3.4 複数の辞書を使おう (2003/07/12)  
21.3.5 Shift キーを使わずに大文字を入力したい (2003/05/17)  
21.3.6 句読点の自動認識  
21.3.7 変換する単語の注釈を表示 (2008/05/05)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3.1 skk の主要なカスタマイズ項目

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=skk%20normalcustom"
"MeadowMemo/skkの主要なカスタマイズ項目"へのコメント(無し)
検索全文Elisp

要約

SKKは様々なカスタマイズが可能です.主要なカスタマイズを簡単に紹介.

設定済みMeadowでは

一部,設定しています.

設定方法

以下がカスタマイズできるものの一部になります.

コメントを参考に必要なものだけコピーしてください.

 
;; 変換時,改行でも確定
(setq skk-egg-like-newline t)

;; メッセージは日本語で
(setq skk-japanese-message-and-error t)

;;"「"を入力したら"」"も自動で挿入
(setq skk-auto-insert-paren t)

;;漢字登録のミスをチェックする
(setq skk-check-okurigana-on-touroku t)

;; 句読点は , . を使う
(setq skk-kuten-touten-alist
  '(
    (jp . ("。" . "、" ))
    (en . ("." . ","))
    ))
;; jp にすると「。、」を使います
(setq-default skk-kutouten-type 'en)

;; @で挿入する日付表示を半角に
(setq skk-number-style nil)

;; 変換候補をツールチップに表示
(setq skk-show-tooltip t)

;; 変換候補をインラインに表示
(setq skk-show-inline t)

;; isearch時にSKKをオフ
(setq skk-isearch-start-mode 'latin)

;; .と。を動的に決定
(add-hook 'skk-mode-hook
          (lambda ()
            (save-excursion
              (goto-char 0)
              (make-local-variable 'skk-kutouten-type)
              (if (re-search-forward "." 10000 t)
                  (setq skk-kutouten-type 'en)
                (setq skk-kutouten-type 'jp)))))


;; 10 分放置すると個人辞書が自動的に保存される設定
;; 自動保存設定:ここから
(defvar skk-auto-save-jisyo-interval 600)
(defun skk-auto-save-jisyo ()
  (skk-save-jisyo)
  ;; skk-bayesian.el を使っていなければ以下の 2 行はコメントアウト
  ;; (skk-bayesian-save-history)
  ;; (skk-bayesian-corpus-save)
  )
(run-with-idle-timer skk-auto-save-jisyo-interval
                     skk-auto-save-jisyo-interval
                     'skk-auto-save-jisyo)
;; (cancel-function-timers 'skk-auto-save-jisyo)
;; 自動保存設定:ここまで



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3.2 漢字をひらがなへ変換 ― skk-kakasi (2005/02/15)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=skk%20kakasi"
"MeadowMemo/漢字をひらがなへ変換―skk-kakasi"へのコメント(無し)
検索全文Elisp

これは SKK に附属しています。 skk-kakasi.el です。動作には kakasi が必要です。

例えば, 読み方の分からない文字をリージョンで選択し, skk-gyakubiki-message とすると, ミニバッファによみ方が出力されます. ただし, 第 1 候補のみ. C-u M-x skk-gyakubiki-messageとすると, すべての候補が出力されます.

他にも

漢字の混ざった文章にふり仮名を

という文章を選択し, skk-hurigana-regionとすると

漢字 [かんじ] の混ざ [まざ] った文章 [ぶんしょう] にふり仮名 [かな] を

とできます.

他にもいろいろと用意されているので, 一度ソースを読んで見てください. ちゃんと日本 語で詳しく説明してありますよ.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3.3 SKK 辞書サーバ (2004/01/07)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=skk%20server"
"MeadowMemo/SKK辞書サーバ"へのコメント(無し)
検索全文Elisp

何が問題なのか?

SKK は漢字変換を行うためにいくつかの辞書ファイルを使います.それは,ユーザ辞書と 通常の辞書ファイルです.

ユーザ辞書は変換した文字や登録した文字が追加されていきます.そのため,よく育てれ ばこのファイルだけで大体の文字は変換できるようになります.

通常の辞書はユーザ辞書に無い文字を変換する場合に使われます.これは,必要な時にバッ ファに読み込まれ,利用されます.

しかし,通常の辞書はファイルサイズが大きく,読み込む時間がかかります.また, Meadow を再起動すると,また読み込み直す必要があります.

何ができるのか?

辞書サーバとは,名前の通り,サーバとして働き,辞書ファイルの読み込みや変換を行い ます.

もう少し詳しく説明します.まず,辞書サーバを起動すると,辞書ファイルを読み込み, 常駐します. Meadow で SKK を利用して変換すると, Meadow は常駐ソフトに変換候補を要求 します.辞書サーバは,変換候補を返します.

このように,辞書ファイルの読み込み,変換候補の検索を行ってくれるソフトが辞書サー バです.

これを使うと,

といったメリットがあります.

紹介しているサーバ

今のところ以下のサーバを紹介しています.簡単にメリットなどを書いておきますので, 参考に好きな方を選んでください.

21.3.3.1 SKK 辞書サーバ - rskkserv (2003/06/27)  
21.3.3.2 SKK 辞書サーバ - wceSKKSERV (2004/01/07)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3.3.1 SKK 辞書サーバ - rskkserv (2003/06/27)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=rskkserv"
"MeadowMemo/SKK辞書サーバ-rskkserv"へのコメント(無し)
検索全文Elisp

XP にして環境を移動したらなぜか動かなくなってしまいました.というわけで今は使っ ていません.一応メモとして残しておきますが,もしかするとうまくいかないかもしれま せん. (2002/12/13)

何が問題なのか?

通常は SKK は辞書を起動時に読み込み検索して利用しています. これだと Meadow を複 数起動すると無駄ですし, 毎回読み込み直す必要があり, 時間がかかってしまいます.

何ができるのか?

辞書サーバを利用すると,辞書の読み込みは辞書サーバがやってくれるようになります. これは, Meadow とは別のプログラムが動作しますので, Meadow を起動するたびに辞書の読 み込みをする必要がなくなり,快適に編集できるようになります.

SKK 辞書サーバといってもいろいろありますが, ここでは Ruby を使ったサーバを紹介し ます.

インストール方法は?

インストールはちょっと面倒ですが, 以下のようにします.

http://raa.ruby-lang.org/list.rhtml?name=rskkservより rskkserv をダ ウンロードします. 解凍後, bash を起動し

 ./configure
 make
 make install

とします. これで, /usr/local/sbin/などへコピーしているようなメッセージが出れば問 題ありません. skkserv.rb で起動できるはずです. 多分, エラーが出ると思いますが.

次に, Cygwin の環境だと起動ディレクトリがないというエラーが出るので,

 /usr/local/var/run
 /usr/local/var/log
 /usr/local/share/skk

を作成します. Cygwin の設定によりますが, デフォルトなら c:/cygwin/usr/local/var/run などに相当します. 一度, bash で mount と入力して / がどこにマウントされているのか確認してください

次に SKK-JISYO.L を /usr/local/share/skk/SKK-JISYO.L へ置いてください. これで, skkserv.rb とするとサーバが起動できます. 複数の辞書を使いたければ, 一個にまとめ てしまいましょう.

設定方法は?

.emacs に以下を追加します

 
(setq skk-large-jisyo nil)
(setq skk-server-host "127.0.0.1")
(setq skk-server-portnum 1178)
(setq skk-server-prog "c:/cygwin/usr/local/sbin/skkserv.rb")
(setq skk-server-jisyo "e:/cygwin/usr/local/share/skk/SKK-JISYO.L")

最後の 2 行はなくても構いません. 書いてあると, サーバが起動していなければ起動し てくれるはずなんですが, どうもうまく起動してくれないみたいです.

詳しい使い方は?

後は普通に変換を行うと, サーバを利用した変換になります

ruby を入れ直すと動かないことがありますので,その時にはもう一度サーバをインストー ルしてみましょう.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3.3.2 SKK 辞書サーバ - wceSKKSERV (2004/01/07)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=wceskkserv"
"MeadowMemo/SKK辞書サーバ-wceSKKSERV"へのコメント(無し)
検索全文Elisp
要約

実行ファイル形式の辞書サーバの紹介

何ができるのか?

Windows の実行形式の辞書サーバです.扱い方が非常に簡単です.

複数の辞書にも対応しており,変換速度も不満はありません.辞書サーバの導入を考えて いるなら,ぜひお勧めできるサーバです.

インストール方法

wceskkserv の起動画面

wceSKKSERVのページからバイナリ をダウンロードし適当なフォルダに置きます.実行するとスクリーンショットのような画 面になります.

スクリーンショットでは, 1178 という数字が入っていますが,初回起動時には 1178 という 数字が入っていません.そのため,標準ボタンを押します.そうすると, 1178 になります. 1178 は嫌な人は適当に変更します.

次に辞書の編集ボタンを押し,変換に使いたい辞書を追加していきます.

これで, wceSKKSERV の設定は完了です.

wceSKKSERV のショートカットを作って,スタートアップに移動しておきます.

設定方法

以下を.emacs に追加します.

 
(setq skk-large-jisyo nil)
(setq skk-server-host "127.0.0.1"
      skk-portnum 1178)

詳しい使い方

普通に SKK で変換を行うだけです.今までに変換したことのない文字を変換すると,総問 い合わせ数などの数字が変化するはずです.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3.4 複数の辞書を使おう (2003/07/12)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=multi%20skkjisyo"
"MeadowMemo/複数の辞書を使おう"へのコメント(無し)
検索全文Elisp

SKK を使い出すと, 自分なりの辞書を作ったり, インターネット上で辞書を見つけたりと いうこともあると思います.その辞書を使う方法を紹介します.

ここで紹介した他にSKK 辞書サーバを使う方法もあります.

設定による方法

1 つ目の方法は lisp による方法です. 辞書の検索順は skk-search-prog-list という変 数で定義されています. これを編集してやります. 設定にもよりますが, デフォルトは

 
(defcustom skk-search-prog-list
  '((skk-search-kakutei-jisyo-file skk-kakutei-jisyo 10000 t)
    (skk-search-jisyo-file skk-initial-search-jisyo 10000 t)
    (skk-search-jisyo-file skk-jisyo 0 t)
    (skk-search-jisyo-file skk-large-jisyo 10000)
  ))

となっていると思いますので, これを

 
(setq skk-search-prog-list
  '((skk-search-kakutei-jisyo-file skk-kakutei-jisyo 10000 t)
    (skk-search-jisyo-file skk-initial-search-jisyo 10000 t)
    (skk-search-jisyo-file skk-jisyo 0 t)
    (skk-search-jisyo-file skk-large-jisyo 10000)
    
    (skk-search-jisyo-file "~/dic/SKK-JISYO.2ch" 10000)
  ))

のように編集します. 上から順番に検索されるので, 優先順位に応じて変更してください.

辞書ファイルを 1 つに統合する方法

2 つ目の方法は SKK-JISYO.L へ統合する方法です.

まずは, http://www1.interq.or.jp/~deton/skktool/から skktools をダウンロー ドします. 解凍後, 実行ファイルをパスの通ったところへ置いておきます. 使い方は簡単 です.

skkdic-expr2.exe SKK-JISYO.L + SKK-JISYO.MY > SKK-JISYO.new

のようにします. この例だと, SKK-JISYO.L と SKK-JISYO.MY を足して SKK-JISYO.new を作成しています. 足し算だけでなく, 引き算もできます.

skkdic-expr2.exe SKK-JISYO.L - SKK-JISYO.MY > SKK-JISYO.new

こうすれば SKK-JISYO.L から SKK-JISYO.MY を引いた残りを SKK-JISYO.new へ出力して くれます.

足し引きする辞書は 2 つ以上でも指定できますので, 使いたい辞書をどんどん + で足せ ば, 一つの辞書になります.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3.5 Shift キーを使わずに大文字を入力したい (2003/05/17)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=sticky-key%20jisyo"
"MeadowMemo/Shiftキーを使わずに大文字を入力したい"へのコメント(2007/12/28)
検索全文Elisp

ネタ元:2 ちゃんねる (大元は blankspace)

SKK で Emacs と入力しようと思うと, E を入力するために Shift + E とする必要が あります.しかし,これでは,小指を酷使してしまいます.

そこで,この入力を ; e として, Shift キーを使わずに設定する方法があります.

方法は,以下を, SKK の設定に追加するだけです.これで,上記のようなキーを実現で きます.ただし, SKK がオン (英数字入力モード) になっている必要があります.

 
(defvar sticky-key ";")
(defvar sticky-list
  '(
    ("a" . "A") ("b" . "B") ("c" . "C") ("d" . "D") ("e" . "E") ("f" . "F") ("g" . "G")
    ("h" . "H") ("i" . "I") ("j" . "J") ("k" . "K") ("l" . "L") ("m" . "M") ("n" . "N")
    ("o" . "O") ("p" . "P") ("q" . "Q") ("r" . "R") ("s" . "S") ("t" . "T") ("u" . "U")
    ("v" . "V") ("w" . "W") ("x" . "X") ("y" . "Y") ("z" . "Z")
    ("1" . "!") ("2" . "\"") ("3" . "#") ("4" . "$") ("5" . "%") ("6" . "&") ("7" . "'")
    ("8" . "(") ("9" . ")") ("0" . "~")
    ("@" . "`") ("[" . "{") ("]" . "}") ("-" . "=") (":" . "*") ("," . "<") ("." . ">")
    ("/" . "?") (";" . "+") ("\\" . "|") ("^" . "_")
    ))
(defvar sticky-map (make-sparse-keymap))
(define-key global-map sticky-key sticky-map)
(mapcar (lambda (pair)
          (define-key sticky-map (car pair)
            `(lambda() (interactive)
               (setq unread-command-events
                     (cons , (string-to-char (cdr pair)) unread-command-events)))))
        sticky-list)
(define-key sticky-map sticky-key '(lambda () (interactive) (insert sticky-key)))
(add-hook 'skk-mode-hook
          (lambda ()
            (progn
              (define-key skk-j-mode-map sticky-key sticky-map)
              (define-key skk-jisx0208-latin-mode-map sticky-key sticky-map)
              (define-key skk-abbrev-mode-map sticky-key sticky-map)
              )
            ))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3.6 句読点の自動認識

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=skk%20kutouten"
"MeadowMemo/句読点の自動認識"へのコメント(無し)
検索全文Elisp
要約

「.」と「。」を自動的に認識して,その文書に合わせた句読点を使うことができます.

情報源

SKKのメーリングリストから.

何が問題なのか?

技術系文書などでは「,」や「.」を句読点を使うことがあります.一方で一般的な文書 では「、」や「。」を句読点として使います.

どちらを使うかは,変数 skk-kutouten-type を設定することでできますが,これでは全 文書で同じ句読点になってしまいます.

何ができるのか?

現在編集中の文書に合わせた句読点を使うことができるようになります.

設定済みMeadowでは

設定していません

設定方法

以下を.emacsに追加します.

;; .と。の動的な決定
(add-hook
 'skk-mode-hook
 (lambda ()
   (save-excursion
     (goto-char 0)
     (make-local-variable 'skk-kutouten-type)
     (if (re-search-forward "." 10000 t)
         (setq skk-kutouten-type 'en)
       (setq skk-kutouten-type 'jp)))))

詳しい使い方

普通にファイルを開いて,SKKを起動するだけです.

すると,そのファイルに合わせた句読点が設定されます.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3.7 変換する単語の注釈を表示 (2008/05/05)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=skk%20annotation"
"MeadowMemo/変換する単語の注釈を表示"へのコメント(無し)
検索全文Elisp
要約

変換する単語の簡単な意味を表示できます.

何が問題なのか?

日本語にはいろいろな同音異義語があります.そんな単語を変換する時,どっちが正しかっ たか迷うことがあります.

何ができるのか?

例えば「いどう」を SPC で変換して,例えば現在の変換語が「異動」なら,ミニ バッファに『†「人事-」』と表示されます.

設定済みMeadowでは

設定していません.

設定方法

以下を .emacs に追加します.

 
(setq skk-show-annotation t)

詳しい使い方

普通に SPC で変換していくだけで,自動的に注釈が表示されます.

ただし,注釈が登録されている単語のみですので,何も表示されない言葉も多いです.

21.3.7.1 Wikipedia の説明を表示 (2008/05/05)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.3.7.1 Wikipedia の説明を表示 (2008/05/05)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=wikipediannotation"
"MeadowMemo/Wikipediaの説明を表示"へのコメント(無し)
検索全文Elisp
要約

Wikipedia の説明を注釈として表示できます.

何が問題なのか?

注釈機能は便利ですが,登録されていない単語も多くこの漢字はどういう意味だったかが 分からない時もあります.

何ができるのか?

Wikipedia の説明を表示できます.

設定済みMeadowでは

設定していません.

設定方法

以下を .emacs に追加します.

 
(setq skk-annotation-show-wikipedia-url t)

詳しい使い方

SKK で SPC を使い変換していくと,注釈がない単語で Wikipedia の URL が表示 されるようになります.

URL が表示されている時に TAB を押すと,ミニバッファに Wikipedia の説明の一 部が表示されます.また,C-o を押すと,その URL をブラウザで表示します.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.4 行末に ^M と表示される場合の対処法 (2004/02/03)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=return%20code"
"MeadowMemo/行末に^Mと表示される場合の対処法"へのコメント(無し)
検索全文Elisp

^M はなぜ表示されるのか?

テキストを開いた時に,行末に ^M と表示されることがあります.これは, 11.1 文字コードと改行コード − Meadow での変換方法 (2004/01/19) でも少し触れましたが,改行コードです.「^M 」は「 CR 」に相当しま す.「 CR 」という改行コードは DOS 形式のファイルで一般的に使われています.

そのため, DOS 形式のファイル (改行コードは「 CR+LF 」) を Unix 形式 (改行コード は「 LF 」) として開くと,余計な「 CR 」が文字 (^M) として表示されてしまうのです.

つまり,^M が表示されたということは,テキストの改行コードを誤って判断してしまって いるということです.

判断を誤る原因は,改行コードの判断を何らかの原因で誤ったか, Elisp で読み込む改 行コードが固定されてしまっているかのどちらかであることがほとんどです.

改行コードの判断を誤った時の対処法

改行コードの判断を何らかの原因で誤った場合には,一度閉じて,C-x RET c euc-jp-dos C-x C-f のように文字コード (euc-jp の部分) と改行コード (dos の部分) を指定して開くとうまくいきます.

Elisp で固定されている場合の対処法

Elisp で固定されてしまっている場合は,設定があるはずなので,マニュアルを読みましょ う.

マニュアルになければ,ソースを探してみます. 「 euc-jp-unix 」や「 shift_jis-unix 」のようになっているところを探します. 見つけたら関係しそうなところの「 unix 」を「 dos 」に変えてみてください.

ファイルの改行コードを変える方法

読み込むファイルを開いて,C-x RET f euc-jp-unix などとして,改行コードを変 更しておくとうまくいきます.

関連情報



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.5 Unicode の編集 ― mule-ucs (2004/09/21)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=mule-ucs"
"MeadowMemo/Unicodeの編集―mule-ucs"へのコメント(無し)
検索全文Elisp

何が問題なのか?

日本で文字コードというと EUC や JIS , SJIS などがよく使われています.しかし,こ れらは日本語に特化した表現方法であり,日本語以外の文字を混在させることはできませ ん.

そこで,多言語を同一の方法で表現したものが Unicode なのです.

しかし, Unicode を扱うことのできるエディタはあまりありません. Meadow なら, mule-ucs を使うことで, Unicode を扱うことができます.

何ができるのか?

Unicode の読み書きができるようになります.

インストール方法は?

まず, mule-ucs をダウンロードします.

ftp://ftp.m17n.org/pub/mule/Mule-UCS/ に通常のものが, ftp://ftp.m17n.org/pub/mule/Mule-UCS/test/ に最新版があります.

最新版の方がいいので,最新のものをダウンロードし,解凍します.

そして,解凍してできたフォルダを site-lisp へ移動します.そして, bash を起動し, 以下のようにします.

cd e:
cd unix/Meadow2/site-lisp/Mule-UCS/
meadow -q --no-site-file -batch -l mucs-comp.el
cd lisp/jisx0213/
meadow -q --no-site-file -batch -l x0213-comp.el

big5 の変換が必要な人は,

cd ../big5conv/
meadow -q --no-site-file -batch -l big5-comp.el

も実行しておきます.

設定方法は?

.emacs に以下を追加します.

 
(require 'un-define)
(require 'jisx0213)

ただし,

 
(set-language-environment "Japanese")

よりも前に書かなければなりません.

詳しい使い方は?

ファイルを開いてから,C-x RET fとして, utf- で始まる文字コードを選択する と, Unicode での編集になります.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.6 旧 jis と新 jis を区別する (2003/11/14)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=old%20jis"
"MeadowMemo/旧jisと新jisを区別する"へのコメント(無し)
検索全文Elisp

旧 jis と新 jis を区別できます. 必要性のある人は少ないとは思いますが, 一応メモと して.どこかの ML で見かけたものです.

 
(setq standard-character-unification-table-for-decode nil)
(if (fboundp 'make-unification-table)
    (setq standard-character-unification-table-for-decode
          (make-unification-table
           (let ((i 33)
                 dest)
             (while (< i 128)
               (or (memq i '(?\\ ?~))
                   (setq dest
                         (cons (cons (make-char 'latin-jisx0201 i) i)
                               dest))
                   )
               (setq i (1+ i))
               )
             (nreverse dest))))

  (setq standard-translation-table-for-decode
        (make-translation-table
         (let ((i 33)
               dest)
           (while (< i 128)
             (or (memq i '(?\\ ?~))
                 (setq dest
                       (cons (cons (make-char 'latin-jisx0201 i) i)
                             dest))
                 )
             (setq i (1+ i))
             )
           (nreverse dest))))
  )



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.7 文字の変換 − 全角,半角,機種依存文字 (2003/11/24)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=text%20convert"
"MeadowMemo/文字の変換−全角,半角,機種依存文字"へのコメント(無し)
検索全文Elisp

ここでは,全角から半角などの文字の変換をしてくれるものを紹介します.

21.7.1 文書整形 (機種依存文字の削除) ― text-adjust (2003/06/27)  
21.7.2 半角カタカナを全角カタカナへ変換 (2003/05/17)  
21.7.3 現在の文字コードと異なる文字を置換 (2003/07/24)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.7.1 文書整形 (機種依存文字の削除) ― text-adjust (2003/06/27)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=text-adjust"
"MeadowMemo/文書整形(機種依存文字の削除)―text-adjust"へのコメント(無し)
検索全文Elisp

何が問題なのか?

メールを書く際, 機種依存文字を省いて欲しいとか, 英数字は常に半角に変換したい,英 字の前後にはスペースを入れたいということがあります.

しかし,いちいち手でやるのも面倒です.

何ができるのか?

半角カナを「〓」に置き換える,全角英数を半角英数に変換する,句読点を統一する,英 数字の前後にスペースを入れるということを自動で行ってくれます.

インストール方法は?

小松さんのページ からダウンロードでき ます. ダウンロードしたらロードパスの通ったディレクトリに置きます.

設定方法は?

.emacs に以下を記入します.

 
(load-library "text-adjust")
(setq adaptive-fill-regexp "[ \t]*")
(setq adaptive-fill-mode t)

詳しい使い方は?

使い方は以下の通り

*-region でリージョン内を変換することも可能です.

句読点の変換については,

 
(setq text-adjust-touten-from nil)
(setq text-adjust-kuten-from nil)

のようにすると変換しないようにできます.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.7.2 半角カタカナを全角カタカナへ変換 (2003/05/17)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=hannkaku%20zenkaku"
"MeadowMemo/半角カタカナを全角カタカナへ変換"へのコメント(無し)
検索全文Elisp

お勧め度:★☆☆☆☆.そもそも半角カタカナを入力しないので,使ってません.

文字通り,半角カタカナへ全角カタカナへ変換するものです.

ちなみに,リージョンに関しては 半角→全角が M-x japanese-zenkaku-region, 半角→全角が M-x japanese-hankaku-region,ひらがな→カタカナが M-x japanese-katakana-region,カタカナ→ひらがなが M-x japanese-hiragana-region でできます

 
;;手元の code です。 M-Z でカーソル下が半角カナであれば全角にします。
;;## あんまし使ってないので微妙にヘンなところがあるかも。。。
(defun zenkaku-katakana-region (min max)
  (interactive "r")
  (save-excursion
    (goto-char min)
    (while (re-search-forward "\\ck+" max t)
      (japanese-zenkaku-region (match-beginning 0) (match-end 0)))))

(defun zenkaku-katakana-buffer ()
  (interactive)
  (zenkaku-katakana-region (point-min) (point-max)))

(defun zenkaku-katakana-at-point (&optional point)
  (interactive)
  (setq point (or point (point)))
  (when (looking-at "\\ck+")
    (forward-char 1)
    (backward-word 1)
    (re-search-forward "\\ck+")
    (zenkaku-katakana-region (match-beginning 0) (match-end 0))))

(global-set-key "\M-Z" 'zenkaku-katakana-at-point)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

21.7.3 現在の文字コードと異なる文字を置換 (2003/07/24)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=encode%20able"
"MeadowMemo/現在の文字コードと異なる文字を置換"へのコメント(無し)
検索全文Elisp

ネタ元:http://www.ysnb.net/meadow/meadow-users-jp/2003/msg00113.html

要約

現在の文字コードと異なる文字を置換できる

何が問題なのか?

文字コードによっては保存しようとしても保存できない文字があります.例えば,発音記 号付きの英語は euc-jp などでは保存できませんし,英語用の文字コードでは日本語を保存 できません.

そのような,現在のファイルの文字コードでは保存できないファイルを保存しようとする と,適切な文字コードを指定するように促されます.

しかし,文字コードは euc でないと困るという場合には,どこが不適切だったのかを検索 する必要があります.

何ができるのか?

現在の文字コードでは保存できない文字に色をつけることができます.

保存できない文字に色を付ける

以下を.emacs に追加します.

これで,リージョンを選択し,M-x my-check-encode-able とすると,保存できない 文字に色が付きます.バッファ全体は C-x h M-x my-check-encode-able でできま す.

 
(defun my-check-encode-able (beg end)
  (interactive "r")
  (save-excursion
    (let* (
           (mycodingsystem buffer-file-coding-system)
           mychar
           mycharname
           (mycount 0)
          ;;;encoding に対応する charset のリストを取得する。
          ;;;Meadow2 (Emacs21) でも動くかどうか未確認
          ;;;うまくいかなければ、自分で対応を定義すれば良い
           (mycharsetlist (coding-system-get mycodingsystem 'safe-charsets))
           )
      (goto-char beg) ;;;リージョンの先頭に移動
      (while (< (point) end) ;;;リージョン内を順に調べる
        (setq mychar (following-char))
        (setq mycharsetname (char-charset mychar))
        ;;合成文字に対する処理。 Meadow2 (Emacs21) では不要かも????
        (if (equal 'composition mycharsetname)
            (setq mycharsetname
                  (char-charset (string-to-char
                                 (decompose-string (char-to-string mychar))))))
        ;;encode できない文字だったら色をつける
        (if (or (equal mycharsetlist t) (member mycharsetname mycharsetlist))
            nil ;;;encode できる時は何もしない。 encode できない時↓
          (overlay-put (make-overlay (point) (1+ (point))) 'face 'region)
          (setq mycount (1+ mycount)))
        (forward-char) ;;;次の文字へ
        )
      ;;結果の表示
      (if (< 0 mycount)
          (message "%s で encode できない文字が%d 個ありました。"
                   mycodingsystem mycount))
      (if transient-mark-mode
          (setq deactivate-mark t)) ;;;region を色つけしている時、色を解除
      )))

保存できない文字を置換

以下を.emacs に追加します.

これで,リージョンを選択し,M-x my-check-encode-ableとすると,保存できない 文字を順番に置換か削除していくことができます.バッファ全体は C-x h M-x my-check-encode-able でできます.

発音付きの英字を適当な文字に置換したい時に便利です.

 
(defun my-check-encode-able (beg end)
  (interactive "r")
  (save-excursion
    (let* (
           (mycodingsystem buffer-file-coding-system)
           mychar
           mycharname
           (mycount 0)
          ;;;encoding に対応する charset のリストを取得する。
          ;;;Meadow2 (Emacs21) でも動くかどうか未確認
          ;;;うまくいかなければ、自分で対応を定義すれば良い
           (mycharsetlist (coding-system-get mycodingsystem 'safe-charsets))
           )
      (goto-char beg) ;;;リージョンの先頭に移動
      (while (< (point) end) ;;;リージョン内を順に調べる
        (setq mychar (following-char))
        (setq mycharsetname (char-charset mychar))
        ;;合成文字に対する処理。 Meadow2 (Emacs21) では不要かも????
        (if (equal 'composition mycharsetname)
            (setq mycharsetname
                  (char-charset (string-to-char
                                 (decompose-string (char-to-string mychar))))))
        ;;encode できない文字だったら色をつける
        (if (or (equal mycharsetlist t) (member mycharsetname mycharsetlist))
            nil ;;;encode できる時は何もしない。 encode できない時↓
          (if (y-or-n-p (format "Delete %s?" (buffer-substring-no-properties
                                              (point) (1+ (point)))))
              (delete-region (point) (1+ (point)))
            (delete-region (point) (1+ (point)))
            (insert (read-from-minibuffer "Replace String: "))
            (setq mycount (1+ mycount))))
        (forward-char) ;;;次の文字へ
        )
      ;;結果の表示
      (if (< 0 mycount)
          (message "%s で encode できない文字が%d 個ありました。"
                   mycodingsystem mycount))
      )))


[ << ] [ >> ]           [表紙] [目次] [索引] [検索] [上端 / 下端] [?]