連続する大文字 (ex. UNIX, OECD, TOEIC) を入力するにはどうするか? こんな問いが、英数/かなさんの記事に上がっていた。
英数/かなさんは、この問いに三つの解答を返した。
- Shift キーを押しながら入力する
- CapsLock キーを押してから入力する
- SandS 方式を使う
Shiftを使う方法だと、小指を横に取られてしまうため、小文字のときよりも打ちづらくなることは避けられない。
Caps Lockを使う方法だと、モードの切り替えが面倒だ。
この問題を解決するものとして、SandS というものがある。
SandS は Shift and Space の略で、Shiftキーの代わりにスペースバーを使ってしまうというもの。
英数/かなさんの記事は、SandS 方式を解説しておられる。Windows では窓使いの憂鬱というツールを使って、SandS が使えるようになるらしい。興味のある方は、英数/かなさんの記事をご一読されたし。
ぼくの場合
さて、ぼくは Emacs を使って、大文字を連続入力している。4 つ目の答えということで、簡単に書いてみやう。
Emacs には、大文字/小文字関連のコマンドに次の三つが用意されている。
- M-c (M-x capitalize-word)
- ポイント以降の単語の最初の一文字目を大文字に、残りの文字を小文字にする (eMaCs → Emacs)
- M-u (M-x upcase-word)
- 単語を全て大文字にする (eMaCs → EMACS)
- M-l (M-x downcase-word)
- 単語を全て小文字にする (eMaCs → emacs)
全文字を大文字にする場合、使うのは upcase-word というコマンド。例えば、emacs という文字を大文字にする場合、次のように入力する。
emacs M-b M-u
emacs と入力後、M-b (backward-word) コマンドで emacs の前にポイントを動かし、M-u (upcase-word) コマンドで大文字にする。
upcase-backward-word
さて、上述の方法だと M-u の前に M-b が必要なので一手間分面倒。というわけで、M-b を必要としない、upcase-backward-word という関数を作ってみた。M-U でポイントの前の単語を大文字化する。
(global-set-key "\M-U" 'upcase-backward-word) (defun upcase-backward-word (arg) "Convert previous word (or arg words) to upper case." (interactive "p") (upcase-word (- arg)))
大文字の入力の仕方にも、色々有るのですね。
ReplyDelete僕は2.のSHIFTキー派ですね。
「3.SandS 方式を使う」というのは、初めて知りました。
「窓使いの憂鬱」、キーボード配列で紹介されていたページにも出てきましたね。=)
私も SandS 方式は、知ったばかりです。世の中、いろいろな方法を考えつく人達がいるものですね。
ReplyDelete「窓使いの憂鬱」はこの手の業界 (?) では有名なソフトです。Dvorak 周りで一度レビューを書きたいのですが、私自身が使っていないので、気持ちばかりが空回りしています :p
なるほど.. Emacsでは専用のキーバインドがあるんですね。
ReplyDelete私はこっちの方を初めて知りました。
SandSはキーの違いはありますが、シフトしたままということ自体は変わらないので、慣れればEmacs方式のほうが楽かもしれませんね:)
私は、逆に SandS を試したことがないので、どんなものなのか興味があります :) 実際、どちらの方が入力が楽でしょうね。両方を試した人に感想を聞いてみたいものです。
ReplyDelete