swk's log 最新ページ

unix2win - from swk's log

2012-02-14 Tue

* UNIX使いだった俺がWindowsに移行してみるよ -- Meadow (Emacs) [unix2win] 2 users

カレー作りにかまけて久しく放置していたこのシリーズ [2010-01-22-1],その間に私のメイン環境も Windows XP から 7 に変わっていたりして既報分も最早アレなのだけど,まあその辺は追々書いていくことにして,今日はテキストエディタ Emacs (の Windows 版である Meadow) の話.

私自身は,ある程度以上の長さのテキスト書き (メール含む) はほぼ常に Emacs を使っているわけですが,それを見た人から「Emacs ってそんなにいいですか?」と聞かれたり,ごく稀に「Emacs 使ってみようと思うんですけど…」とか相談されたりします.えーと,あのー,まあ,なんだ, お勧めはしません.特に必要がない限り,今さら Emacs なんて使い始める必要はないんじゃないですかね? 私はもう他のエディタを体が受け付けないので使い続けますが.


さて微妙な雰囲気になったところで,インストールのメモ.Windows 7 で Meadow 3.01 の Netinstall 版を使う.

パッケージの選択はいつも悩むところ,というか,インストールする度に前回は何を入れたか忘れていてアレなのだが,現時点では (meadow/packages/setup/installed.db によれば) 以下のものがインストールされている.あまり深く考えずにインストールしているようだ.正直 tdiary-mode とか何のために入れてるのかわからんし.JDEE 関連は,入れたらパッケージ読み込みが途中でおかしくなったので外した.まあ使わないし.フォント関係は特に何も入れていない.

apel apel-10.7-1.tar.bz2 0
css-mode css-mode-1.0-1.tar.bz2 0
flim flim-1.14.9-1.tar.bz2 0
gnuserv gnuserv-0411-1999-5.tar.bz2 0
html-helper-mode html-helper-mode-3.8-4.tar.bz2 0
imagemagick imagemagick-6.2.8-0-Q16-1.tar.bz2 0
info-ja-eintr info-ja-eintr-2.04-3.tar.bz2 0
info-ja-elisp info-ja-elisp-2.9-4.tar.bz2 0
info-ja-emacs info-ja-emacs-21.3.50-2.tar.bz2 0
ispell ispell-3.3.02-1.tar.bz2 0
japanese-holidays japanese-holidays-1.1-1.tar.bz2 0
javascript-mode javascript-mode-2.0b8-2.tar.bz2 0
Meadow Meadow-3.02-r4261-3.tar.bz2 0
mew mew-5.1-1.tar.bz2 0
migemo migemo-1.8-1.tar.bz2 0
misc misc-0.7-1.tar.bz2 0
mule-ucs mule-ucs-0.85-20050113-2.tar.bz2 0
pukiwiki-mode pukiwiki-mode-2.30-1.tar.bz2 0
ruby-mode ruby-mode-23606-1.tar.bz2 0
semi semi-1.14.6-4.tar.bz2 0
tdiary-mode tdiary-mode-20050831-1.tar.bz2 0
yaml-mode yaml-mode-0.3-1.tar.bz2 0

コントロールパネル-システム で設定している環境変数は

TZ    	JST-9
GNUCLIENT     -F
GNUCLIENTW    -F
HOME  	C:\cygwin\home\swk

TZ がないと,とりあえず目に見えるところでは,Mew で送ったメールのタイムゾーンがおかしくなるようだ.

GNUCLIENT(W) の -F は,gnuclient(w) コマンドでファイルを開いたときに Emacs のウィンドウを前面に出すオプション,のはずだが,どうも効いてないような.


各種設定は .emacs ファイルに書くわけだが,UNIX 中心で Emacs を使っていた頃から .emacs は肥大化しまくっていて,何が必要で何が不要なのかさっぱりわからない状況になっていた.これを機にざっくり整理してみた.

.emacs.meadow [この記事の公開時の版] [最新版] (これを .emacs の中から load している)

以下大雑把にメモ.見出しは .emacs.meadow 内のコメントに対応している. (見出しからのリンクは,この記事の公開時のファイルの該当箇所を指している)

;; MULE-UCS; must be put before set-language-environment

UTF-8 なファイルが扱えないと仕事にならない昨今,mule-ucs はどうしても必要.コメントに書いてある通り, set-language-environment する前に jisx0213 を読み込まないといけないという罠がある.

;; ime

文字化けして見えるかもしれない行は

(setq mw32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))

と書いてある.基本的には Meadow に標準でついてくる設定ファイルの通りだけど,

(add-hook 'mw32-ime-on-hook '(lambda () (set-cursor-color "green")))
(add-hook 'mw32-ime-off-hook '(lambda () (set-cursor-color "black")))

として IME の状態によってカーソルの色を変えている.それから,y/n とか yes/no と聞かれたときに IME がオンになっているとイラッとするので,

(wrap-function-to-control-ime 'y-or-n-p nil nil)
(wrap-function-to-control-ime 'yes-or-no-p nil nil)

を入れている.その直後で IME の オン/オフ を C-o にバインドしているが,これは canna を使っていた頃の名残り.あ,というか FreeBSD では今も canna 使っているので名残りというのはおかしいのだが.

その後はしばらく標準の設定項目が続く.よく理解していないものも多い.

;; printing: use ps-print-{buffer,region}[-with-faces]

Windows の文化では驚くべきことかも知れないが,Meadow は標準のままで自前でテキストファイルを印刷することができない(はず).なので,他のテキストエディタ (notepad とか) にファイルを渡して印刷させたりということがよく行われるが,残念な感じが漂い過ぎなので何とかしたい.

一方で,Meadow は Emacs であって UNIX 文化で育ってきたソフトウェアなので,PostScript として出力して印刷するのはお手の物,というかそうするのが正しいと考えて作られているフシがある.おとなしくそれに従うのがよかろう.PostScript プリンタ以外に出力するためには gs (GhostScript) を使えばよい.というわけで gsview32 に渡すように設定している.印刷するときはコメントにあるように

M-x ps-print-buffer
M-x ps-print-buffer-with-faces
M-x ps-print-region
M-x ps-print-region-with-faces

のいずれかを実行する.-with-faces があると色つきになる.

行番号の有無とかヘッダの有無とか,いろいろ切り替えられるようにしようかと思ったこともあるけど,現状でそれほど困らないのでずっと後回しにしたままである.

;;printing in mew: use mew-summary-print (# key)

メールの読み書きにはずっと Mew を使っています.Mew の設定は基本的に.mew.el という別ファイルに分かれていて,その設定についてはまた改めて書こうと思うが,とりあえずここで印刷用の設定だけをしている.要はヘッダをつけて ps-print-buffer-with-faces を呼んでいるだけ.

なぜこれが .mew.el じゃなくて .emacs に入っているのかというと,たぶんこれが Meadow/Windows 依存なので .mew.el からは分離したいと,この設定を書いた当時の私が考えたからだと思う.実は .emacs も Meadow 依存のファイルとそれ以外の共通設定ファイルに分かれていたのだが,だんだん面倒くさくなってまとめてしまって今に至る.

;; imaxima

Maxima,ときどき使います.標準の端末ではどうにも使いにくいし wxWidget のインタフェースも好きじゃないので,結局 Emacs で使うことに. imaxima は表示も見やすくてよい.

;; basic preferences

なぜこんな中途半端なところから「基本設定」が始まるのかというと,昔はここから (Windows に依存しない) 共通設定ファイルが始まってたからですな.今はもうグダグダになってますが.

比較的最近 (といってもここ数年) になって使い始めたものとしては:

(show-paren-mode nil)

括弧の対応を表示.これってどうして nil なんだっけ,と思って今調べたら,デフォルトでオフなのを toggle してオンにすることになるらしい. nil の代わりに正の数にすれば,もとの状態に関わらずオンにするようだ.そのうち直す.

(define-key minibuffer-local-completion-map "\C-w" 'backward-kill-word)

ミニバッファで C-w を打つとカーソル前の文字をワード単位で消してくれる.C-x C-f したときに長いディレクトリ名を編集する場合などに便利.

(require 'uniquify)
(setq uniquify-buffer-name-style 'post-forward-angle-brackets)

同名のファイルを複数開いたときに「Makefile<1>」「Makefile<2>」とか表示されて,どっちがどっちだかわからなくなるのを緩和する.<> の中に1階層上のディレクトリ名が表示されるので,(ディレクトリの掘り方にもよるが) だいぶわかりやすくなる.

;; sdic

英辞郎をインストールして sdic で使ってます.辞書ファイルの変換の話とかはまたそのうち気が向いたら.

で,sdic-eiwa-dictionary-list とか sdic-waei-dictionary-list を設定するところでディレクトリ名を何度も繰り返し書いているのがダサい,というかパス名が Windows 依存なので嫌なのだが,これを避けようと思うと意外と面倒くさい.のでダサいまま放置.

;; shell

特筆事項なし.あまり Emacs 内でシェルを起動することはないので,まあ念のため書いてあるだけ.実際このまま M-x shell で起動するとプロンプトのエスケープシーケンスが化けまくってひどいことになるのだが,気にしてない.

;; dev env

C/C++ での開発は最近はもっぱら Visual Studio を使っているので,Emacs の出番はないかと思いきや,しっかり Visual Studio から外部エディタとして登録して使っています.

「標準のエディタにも Emacs-like なキーバインド用意されてますよ?」 うん,知ってますけど,その like というやつが曲者で,ほとんど同じという認識で使っていたら微妙なところで挙動が違ったりして却ってストレスがたまります.(xyzzy もそれが理由で使うのやめた)

「でも,IntelliSense とか超便利ですよ?」 うん,それもわかりますが,それでも Emacs じゃなきゃ体が動かないのでどうしようもないのです.年を取るというのはそういうことだ.

まあそれでも etags とかを駆使すればそれなりにシンボル名補完とか定義検索とかはできるので,そういう設定が書いてある.

(global-set-key "\C-c\C-i" 'complete-symbol)
(global-set-key "\C-cc" 'compile)
(setq compile-command "make ")

…のはいいのだが,じゃあこの make ってのは何なのか? というと,ソースコードと一緒に怪しい Makefile を用意して,make を実行することで Visual Studio のウィンドウでビルドが実行されて,さらにその出力メッセージが Emacs のバッファに出力されるみたいな頭のおかしい 小細工を (たまに) しているので,そのための設定です.そんなものに需要はないと思うので詳しくは書きませんが,万一興味がある人がいれば,まあそのうち.

(そこまでするなら nmake 使えよ,って話なのですが,そうしてしまうと研究室のメンバと本格的に話が通じなくなるので)

;; sig

sig.el なるファイルを load していて,何だそれ? って話なのですが,15 年くらい前に自分で書いた,メールのシグネチャを対話的に切り替えて挿入するコードです.人様にお見せできるコードではありません….似たような機能のパッケージはいろいろとあると思うので,スルーしてください.

;; mhc

スケジュール管理は,ここ10年くらいずっと MHC を使っています.というか,その前は紙の手帳だったので,ソフトウェアとしては MHC しか使ったことがない.細かい設定は別ファイル .mhc.el に分かれていて,これも詳しくはまたそのうち.

;; comment

comment-region が C-c > に,uncomment-region が C-c < にバインドされているのは,YaTeX を使ってた頃の名残り.

;; time

M-& で「Tue Feb 14, 2012」みたいな文字列を,C-u M-& で「2012-02-14」みたいな文字列を挿入.地味に多用している.

;; latex

上にも書いた通り,以前は YaTeX を愛用していましたが,最近はもう syntax hilight さえしてくれれば後は何でもよくなったというか,あまりお節介を焼いてくれないものの方が好みになりました.latex-mode も verbatim とか super/subscript でフォントを変えられるのは嫌いなので,その手の機能は切っている.

(add-hook 'latex-mode-hook 
          '(lambda () 
             (setq tex-verbatim-face nil) 
             (defun tex-font-lock-suscript () nil)))
関連記事:
[2010-01-22-1] UNIX使いだった俺がWindowsに移行してみるよ
[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Andrey.volfu] узнайте цену качественной отделки коттед... (2019-02-27 16:51:16)

* [AleksandrKex] Вечером серфил материалы сети интернет, ... (2019-02-27 06:12:41)

* [Filippnom] Прошлым вечером мониторил данные инет, н... (2019-02-27 05:28:28)

* [TihonBiP] [url=https... (2019-02-27 02:12:55)

* [Timofeycaupe] Минут десять серфил данные сети интернет... (2019-02-26 01:28:57)

* ...

2010-01-31 Sun

* UNIX使いだった俺がWindowsに移行してみるよ -- screen/cygwin と まめFile の連携 [unix2win]

目次はこちら [2010-01-22-1]

GUI で作業しているときに急に CUI に移りたくなる場合や,あるいはその逆の場合がちょくちょくある.そのための手段を仕込んでおく.

まめFile の現在のフォルダを screen のウィンドウとして開く

まず GUI → CUI の方.基本的には,GUI で開いているフォルダをカレントディレクトリとしたシェルを起動できればよいだけなのだけど,せっかくなので既に起動している screen の中に開きたい.

というわけで,まめFile [2010-01-30-1] に以下のようなクイックランチャを登録しておく:

  • 起動コマンド: C:\cygwin\bin\run.exe
  • コマンドラインオプション: /bin/sh /home/swk/bin/new_screen.sh
  • 現在のフォルダを起動フォルダにする をチェック

new_screen.sh [この記事の公開時の版] [最新版] は, /usr/bin/screen を -X オプション付で実行することで,起動中の screen セッションにコマンドを送りつける.指定されているコマンドは eval "chdir $PWD" screen "chdir $HOME",つまり eval に続く 3 つのコマンドを順に実行することになる.

chdir コマンドによって まめFile で開いていたフォルダ ($PWD として受け取れる) をカレントディレクトリとし,次の screen コマンドで新しいウィンドウを開く.この時点で当初の目的はとりあえず果たせたのだが,このままだとこの screen セッション自体のカレントディレクトリが変わったままになってしまう.つまり次に screen 上で新しいウィンドウを開く操作をしたときに,いま開いたディレクトリになってしまう.それでは困るので,再び chdir コマンドで $HOME に戻しておく.「戻しておく」といっても元々 $HOME にいたと信じる根拠はどこにもないのだが,私自身は普段 screen を $HOME 以外で動かすことがないので,とりあえずこれで困らない.

で,これで終わってもよいのだが,screen の動いている putty を前面にポップアップさせるために winactivate.vbs [この記事の公開時の版] [最新版] を呼んでいる.

蛇足だけどちょっとしたミソなのは,起動コマンドが sh.exe ではなく run.exe である点.普通に sh.exe (= bash.exe) とか zsh.exe を起動してしまうとコマンドプロンプトのウィンドウ (いわゆる DOS 窓) が一瞬開いてしまって鬱陶しい.run.exe でそれを回避できる.

以上の方法は まめFile に限らず,run.exe を起動フォルダを指定しながら引数つきで実行できさえすればよいので,他の多くのファイラ (というかファイラに限らず任意のソフトウェア) にも適用できるんではないかと思う.

Cygwin で指定したディレクトリを まめFile のウィンドウとして開く

CUI → GUI の方はそれほどややこしくない.まめFile 自身に,外部アプリケーションからタブを開くための MameFile5.exe が付属してくるので,それを使えばよいというだけの話.強いて挙げるなら,Cygwin で指定したディレクトリを Windows のパス名に変換するために cygpath をかますところがミソかな.

mamefile [この記事の公開時の版] [最新版] のようなスクリプトを,Cygwin 上のシェルからパスの通った場所に置いておく.

% mamefile some/dir

とかすれば,起動中の まめFile の新タブとして開かれる.引数を指定しなければ,新しいまめFile が起動する.

関連記事:
[2010-01-30-1] UNIX使いだった俺がWindowsに移行してみるよ -- まめFile
[2010-01-23-1] UNIX使いだった俺がWindowsに移行してみるよ -- zsh + screen
[2010-01-22-1] UNIX使いだった俺がWindowsに移行してみるよ
[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [asJepfjpa2i] <a href=http... (2016-08-03 23:24:38)

2010-01-30 Sat

* UNIX使いだった俺がWindowsに移行してみるよ -- まめFile [unix2win]

目次はこちら [2010-01-22-1]

UNIX 出身だというと,さぞコマンドばっかり打ち込んでいることだろう思われがちなのだけど,そんなこともなくて GUI も普通に使います.いや,まあ普通よりはコマンドインタフェースに偏っているのは否定しませんが.

というわけで GUI ファイラの話.いわゆるタブ型ファイラをいろいろ試してみた結果, まめFile5 を使うことに落ち着いた.

落ち着いた決め手は何だったのかと考えると フォルダと通常ファイルを区別せずにソートできる という一点に尽きる.もともと,コマンドラインでファイル操作する場合でも ls -trl とか多用しまくる [2006-09-27-1] 人だし,ファイル名も 20100130_xxx_report.ppt てな風に日付で始めて時系列順に並べたがる人なので,この点はものすごく重要なのである.

実を言うと,それ以外の点は正直あまり満足していないというか,全体的な使い勝手としては X-Finder あたりの方が個人的な好みには合っているのだが,この点だけはどうしても譲れないので仕方がなかった.

と,のっけからネガティブな流れなのだが,気を取り直して設定メモ.以下は Ver.5.52 の場合.


インストール時の選択肢:

  • 簡易設定を行わない
  • 数字キー: 設定しない
  • テンキー: 設定しない

設定:

  • インクリメンタルサーチモード をオン
  • チェックマーク をオフ
  • 上級者メニュー に切替

設定 - 表示設定:

  • 簡易詳細
  • フォルダを優先する をオフ (重要)

設定 - オプション - リスト表示:

  • グリッド表示 をオフ

設定 - オプション - 動作1:

  • 簡易アイコン表示を行う (ネットワーク先の eps とかの表示が重いので)
  • 新規作成時にファイル名を入力する
  • リストの初期状態は選択にする

設定 - オプション - 動作2:

  • ツールチップ: 使用しない (ネットワーク先の表示が重いので)

設定 - オプション - コンテキストメニュー に以下を追加:

  • ファイル名をコピー
  • フルパス名をコピー
  • 選択フォルダを新しい子ウィンドウで開く

設定 - オプション - キー割り当て:

  • ウィンドウ-開く-ここから新しい子ウィンドウを開く: Ctrl+T (Ctrl+N は削除)
  • ウィンドウ-ウィンドウ切り替え-次のタブ: Ctrl+N
  • ウィンドウ-ウィンドウ切り替え-前のタブ: Ctrl+P
  • フォルダ移動-特殊な移動-1つ上の階層: Ctrl+U
  • フォルダ移動-履歴-進む: Ctrl+I
  • フォルダ移動-履歴-戻る: Ctrl+O
  • ツール-クイックランチャ-クイックランチャを起動: Ctrl+L

設定 - オプション - マウス:

  • リストでCtrl+クリック: 選択フォルダを新しい子ウィンドウで開く

表示 - ツリー幅の一括設定:

  • 常に0

クイックランチャをうまく使うと,他のソフトウェアとの連携がしやすくなる.今のところ以下のようなものが登録されている.各詳細については機会があれば語ることにする.

  • 現在のフォルダを Explorer で開く (これは標準機能にあるのだが,どこにあるのかいつもわからなくなるので)
  • 選択ファイルを notepad で開く (同上.notepad ってどうなのよ,ってのは突っ込まない方向で)
  • 選択ファイルを 起動中の Meadow で (というか要するに gnuclient で) 開く
  • 現在のフォルダをカレントディレクトリとした zsh を,起動中の screen に新 window を開いて実行する [2010-01-31-1]
  • 選択ファイルに紐づけられたローカルウェブサーバの Wiki ページを開く (PDF に紐づけられた文献メモとか)
関連記事:
[2010-01-31-1] UNIX使いだった俺がWindowsに移行してみるよ -- screen/cygwin と まめFile の連携
[2010-01-22-1] UNIX使いだった俺がWindowsに移行してみるよ
[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [asJepm3z3zk] <a href=http... (2016-12-02 15:49:30)

* [asJepwb649d] <a href=http... (2016-11-04 21:24:58)

* [asJepsca6hg] <a href=http... (2016-06-07 17:21:25)

* [asJepb1l2m5] <a href=http... (2016-04-13 17:08:46)

* [Angela] Cretead the greatest articles, you have.... (2013-03-23 03:46:25)

2010-01-24 Sun

* UNIX使いだった俺がWindowsに移行してみるよ -- デュアルディスプレイ切替え [unix2win]

目次はこちら [2010-01-22-1]

ノート PC を外部ディスプレイにつないでデュアルモニタ環境に切替えるためには,普通は

  • デスクトップを右クリックして画面のプロパティを開く
  • 設定タブを開く
  • 「Windowsデスクトップをこのモニタ上で移動できるようにする」をチェック
  • モニタ配置をマウス操作で調整
  • OK

てな操作をすると思うが,正直面倒だ.もっと楽をしよう.zsh と VBScript を組み合わせることにする.


disp/toggle_dualdisp.vbs [この記事の公開時の版] [最新版] のような VBScript を ~/lib に置いておく.

.zshrc.cygwin [この記事の公開時の版] [最新版] で dualdisp_on,dualdisp_off という alias を定義しておく.要は,上の VBScript に引数 on または off を与えながら,wscript コマンドで実行するだけ.

「dual」くらいまで打ってから Ctrl+P でコマンド履歴をたぐって dualdisp_on または dualdisp_off を実行.画面のプロパティの設定タブが開き,必要な操作が済んで後は OK するだけの状態になる.Enter キーを押せばディスプレイ設定が切り替わる.(Enter も自動化できるけど,画面位置を微調整したい場合があるので,ここは手動で)

本当は,on すべきか off すべきかの判定も自動化したい. toggle_dualdisp.vbs の前半のコメントアウトされたコードがそために試行錯誤した残骸なのだけど,うまくいったりいかなかったりするので放置中.

その他,単に画面のプロパティの設定タブを開きたいだけのときは

% control desk.cpl ,4 &

とか実行する.覚えにくいので alias を設定してもよいかもしれない.

関連記事:
[2010-01-23-1] UNIX使いだった俺がWindowsに移行してみるよ -- zsh + screen
[2010-01-22-1] UNIX使いだった俺がWindowsに移行してみるよ

2010-01-23 Sat

* UNIX使いだった俺がWindowsに移行してみるよ -- zsh + screen [unix2win] 1 user

目次はこちら [2010-01-22-1]

zsh + screen の組合せが強力なことはあちこちで語り尽くされているので,前置きは抜きにして淡々と設定ファイルを晒しつつ,特記すべきもののみ言及することにする.


.zshrc [この記事の公開時の版] [最新版]

LS_COLORS の色が標準的でないのは,個人的な歴史事情によるものなのでスルーで.

cygwin 環境で ls に --show-control-chars をつけているのは,日本語ファイル名を表示するため.ただし端末を Shift JIS 設定にしておく必要がある.

左プロンプト (PROMPT) の設定がごちゃごちゃして見えるのは,エスケープシーケンスを出して色を変えているからで,表示内容自体はシンプルに「ホスト名 + %」としている.

右プロンプト (RPROMPT) にはカレントディレクトリを表示させている.ただし普通に RPROMPT='[%~]' とかすると日本語が化けてしまう.日本語のフォルダ名なんか使うのが悪いという指摘は至極もっともなのだが,大人には巻かれざるを得ない長い物がいっぱいあるのだ.で,どうするかというと,実は precmd() の中で自前で RPROMPT=$PWD などとセットしてやれば OK.

ここで欲を出して「やっぱり $HOME の部分は ~ って表示したいよね」とか思い始めるとちょっとややこしくなる.いや,普通に考えれば何もややこしくなくて,単に sed とかを通してやればよい.話をややこしくするのは「Cygwin の遅さ」である.プロンプトを表示する度に新規プロセスを起動すると,軽くイラッとする程度には反応が遅くなる.というわけで外部コマンドは呼ばず,zsh 内部の変数展開の小技を駆使するのがよい.

ついでなので,「ホスト名の先頭3文字:ディレクトリ名」をエスケープシーケンス付で出力しておく.これは screen の hardstatus 行で使われる.

「ん? その辺の文字列が更新されるのはカレントディレクトリが変わったときだけなんだから,precmd() じゃなく chpwd() の中でセットする方が効率いいんじゃね?」と注意深い読者は思われたかもしれないが,実は chpwd() ではうまくいかないケースがあるのだ.どううまくいかないかは宿題とします.


.screenrc [この記事の公開時の版] [最新版]

エスケープキーは Ctrl+T にしている.

hardstatus には,上に書いたように zsh の precmd() と組み合わせてホスト名とディレクトリ名を表示するようにしている.

window 分割のキーバインドは Emacs 風

端末文字コードは,Ctrl+T e u で UTF-8 に変更.同様に,最後の u の代わりに e, s, j とするとそれぞれ EUC-JP,Shift JIS,ISO-2022-JP となる.


.zshrc.cygwin [この記事の公開時の版] [最新版]

Cygwin 環境のときにのみ,.zshrc の中から呼び出される.

まあだいたい見てもらった通りなのだけど,alias を設定しまくって,例えば excel と打てば MS Excel が,firefox と打てば Firefox が起動するようになっている.c:/WINDOWS とか c:/WINDOWS/system32 とかにも適宜 path を通しているので,notepad (メモ帳) とか mspaint (ペイント) とか control (コントロールパネル) とかも起動できる.zsh のコマンド履歴・コマンド補完の力がここに加わるお蔭で,強力なランチャソフトウェアとして使用できることになる.

最後に方にはやや変態的な alias が並んでいる.追い追い説明することにする.(追記: 一部書いた [2010-01-24-1])


基本的な使い方としては,CygTerm - Putty を立ち上げたらすぐに

% ssh-agent screen

して,その中で ssh-add する.他のマシンにログインするときは,適当な window 内で

% screen ssh hostname.example.com

とかして新しい window を開くようにする.入力が面倒そうに見えるかも知れないが,だいたい「scr」辺りまで打ってから Ctrl+P でコマンド履歴をたぐればよいだけなので全く問題ない.

他には,ホットキーで Cygwin のウィンドウにすぐ移れるようになってたりとか,ファイラで指定したフォルダを screen の window として開いたりとか [2010-01-31-1],Windows 環境ならではの小技はいろいろあるのだけど,まあその辺も追い追い語ることにする.

関連記事:
[2010-01-22-1] UNIX使いだった俺がWindowsに移行してみるよ
[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [asJepw5pzb7] <a href=http... (2016-04-11 11:37:07)

* [Paul] You\'re a real deep tihkner. Thanks for ... (2012-12-31 04:10:37)

2010-01-22 Fri

* UNIX使いだった俺がWindowsに移行してみるよ -- Cygwin + CygTerm + Putty [unix2win] 1 user

目次はこちら [2010-01-22-1]

そもそも私の Windows 全面移行を現実のものとしたのは Cygwin の存在だといっても過言ではない.というわけで,まず Cygwin まわりの環境から書き始めてみる.

Cygwin が強力だと思うのは,Windows のアプリケーションやファイル,サービスを直接操作できる点だ.Windows コマンドの出力を grep と sort と uniq に流し込んだり,シェルで for 文を回しながら Windows コマンドを走らせたり,シェルスクリプトの中から VBScript を呼んだり,そういうことが普通にできる.逆にいうと,そういうことをしないのであれば VMware なり coLinux なりを使えばよいし,その方がスマートだと思う.

Cygwin を使い始めてまず辟易するのは,標準の端末ソフトウェア (コマンドプロンプト端末?) がお話にならないくらい使いにくい点である.こんな端末は即捨てるに限る.

さてどうするかというと,いくつか選択肢があるのだけど,結局 CygTerm + Putty に落ち着いた.その他に検討した,あるいは実際にしばらく使ってみた選択肢は以下の通り.

  • Cygwin/X 上で kterm: 実はかなり長いこと使っていた.というか自宅の PC ではいまだに使っている.致命的に困ることはないのだけど,ドラッグ操作に遅延があったりとか,微妙に使いにくいのは否めない.
  • Poderosa: screen を動かすと表示が崩れることがあったので早々に断念.試したのはだいぶ前なので,最近は直ってるかも?.
  • Cygwin で sshd を走らせて,putty とかからログイン: ウィンドウを開くアプリケーションを走らせたり,クリップボードを操作したりできなかったので却下.(ただし,これは sshd を Windows サービスとして動かしていたからで,手動で実行すれば問題ないという説あり.試してない)

というわけで CygTerm.まず CygwinPutty日本語版は普通に入れておく.

Cygwin 上で CygTerm を make して,cygterm.exe と cygterm.cfg を同じフォルダ ($HOME/bin) に置く. cygterm.cfg の内容は以下の通り.

Putty 側もいろいろ設定したけど忘れた.ここを参考にしたと思う.

あとは cygterm.exe を実行すればよいのだけど,そのままだと起動時のディレクトリが cygterm.exe のある場所になってしまう.cygterm.exe へのショートカットを作って,そのプロパティの「作業フォルダ」をホームディレクトリに変えておく.ショートカットはどこに置いてもよいのだが,クイック起動に入れてある.

関連記事:
[2010-01-22-1] UNIX使いだった俺がWindowsに移行してみるよ

2010-01-22 Fri

* UNIX使いだった俺がWindowsに移行してみるよ [unix2win] 5 users

オフィスの机の上の計算機環境は,頑なに UNIX を使っていた学生時代から始まり,デュアルブートやら仮想マシンやら何やらを駆使して Windows / UNIX を両使いする生活を経て,2年ほど前からついに Windows の動くノート PC 1台のみで済ますようになった (もちろんサーバ類や実験関係は除く).

UNIX で育った人間にとっては素の Windows ほど使えないものはないので,いろいろと手を入れる必要があって大変なのだけど,やってみるとまあ何とかなるものだ.移行の結果わかったことは,私にとって重要だったのは UNIX 環境の UI であって,カーネルではなかったらしいということだ.

というわけで,次にセットアップするとき用のメモも兼ねて,各種ソフトウェアの環境設定などについて,気が向いた範囲で気が向いた順に,覚書きを残しておくことにする.かなり偏った環境なので,他の誰かにとって役に立つかどうかは定かではない.つうか,次にノートPCを変えるときはさすがに Windows XP じゃないような気もするので,自分の役に立つかどうかすら定かではない.

この記事は目次の役目をします.気が向くたびに別記事として書いて,リンクを張っていきます.

マシン / OS:

  • Panasonic Let'snote CF-W8
  • Microsoft Windows XP Pro SP3

(追記: 2011年秋以降は,Let'snote CF-S10,Windows 7 に移行済み.しばらく双方に関する記述が入り乱れます.そのうち統一予定)


  • 基本設定
  • IME 関係
  • キーボード関係
  • 端末環境: Cygwin + CygTerm + Putty [2010-01-22-2]
  • シェル環境: screen + zsh [2010-01-23-1]
  • ディスプレイ設定 [2010-01-24-1]
  • ネットワーク設定
  • ファイラ: まめFile [2010-01-30-1]
  • シェルとファイラの連携 [2010-01-31-1]
  • ブラウザ: Firefox
  • エディタ: Meadow (Emacs) [2012-02-14-1]
  • メール関係: Mew + Gmail
  • スケジュール管理: MHC
  • 画像表示・編集: IrfanView
  • バックアップ: rsync
  • ファイルシステム暗号化: TrueCrypt
  • ローカル用ウェブサーバ: Apache
  • ウィルス対策: Moonsecure Antivirus
  • ...
関連記事:
[2012-02-14-1] UNIX使いだった俺がWindowsに移行してみるよ -- Meadow (Emacs)
[2010-01-31-1] UNIX使いだった俺がWindowsに移行してみるよ -- screen/cygwin と まめFile の連携
[2010-01-30-1] UNIX使いだった俺がWindowsに移行してみるよ -- まめFile
[2010-01-24-1] UNIX使いだった俺がWindowsに移行してみるよ -- デュアルディスプレイ切替え
[2010-01-23-1] UNIX使いだった俺がWindowsに移行してみるよ -- zsh + screen
[2010-01-22-2] UNIX使いだった俺がWindowsに移行してみるよ -- Cygwin + CygTerm + Putty
[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [asJeptzr1g3] <a href=http... (2016-11-25 17:41:17)

最終更新時間: 2012-02-14 03:52


Shingo W. Kagami - swk(at)kagami.org