スキップしてメイン コンテンツに移動

投稿

2月, 2011の投稿を表示しています

Diary/2011-02-22

Daily Memo ターミナルが文字化けしたので,echo ^V^Oを実行したが直らない.試行錯誤した結果,screenを一度デタッチして再アタッチしたら直った. (09:23 JST)

Diary/2011-02-21

Daily Memo w3m をビルドしたのだが,起動後に操作しようとすると,なぜか SEGV で落ちる.-no-mouse オプションを付けることで解決. http://nlp.kuee.kyoto-u.ac.jp/ (10:12 JST) Emacs-lisp で文字の連結.(concat "a" "b") -> "ab" (10:34 JST)

Diary/2011-02-17

Daily Memo Emacs の起動時のメッセージを表示しない方法.(setq inhibit-startup-message t) 今まで間違っていた. http://sourceforge.jp/magazine/09/04/23/0834240/5 (09:21 JST) Emacs の起動時のウインドウサイズを変更する. http://sourceforge.jp/magazine/09/04/23/0834240/5 (09:23 JST) screenを多重に起動している場合,エスケープ文字を複数回連続で押すことで,すべての階層の screen の操作ができることを知った.例えば,screen (scrA) から screen (scrB) を起動している場合,scrA の操作する際は escape を1回,srcBでは escape を2回押す. (10:05 JST)

Diary/2011-02-16

Daily Memo NTEmacsは,文字コードの自動判別が弱いのだろうか.Emacs(Linux)では正常に判別できるものの,Windowsでは失敗することが多く見受けられる. (09:31 JST) (prefer-coding-system 'euc-jp-unix) で解決した.判別の優先順位を表す coding-category-list に違いがあるようだ. http://groundwalker.com/blog/2007/04/emacs_coding_system_priority.html (09:36 JST) 自分はつくづく締切ドリブンであるということを悟った. (12:20 JST) 会社のLinuxサーバのEmacsをemacs-23.2にバージョンアップ中.これが終われば,私が使用する全てのEmacsが23世代に. (16:58 JST) Emacs23への移行終わり.特に問題も無く,以外とすんなり. (17:07 JST)

Diary/2011-02-15

「コンピュータの管理」を起動する 「コントロールパネル」->「管理ツール」->「コンピュータの管理」 Telnetサービスの設定を変更する 「サービスとアプリケーション」->「サービス」を選択 一覧からTelnetを選択し,スタートアップの項目を適宜変更する.この項目が無効になっていると,telnetサービスを起動できない.「自動」にすると,Windowsの起動時に常に自動で立ち上がる.ここでは,「手動」を選択することとする.以上の操作により,コマンドプロンプトで起動・停止が可能となる. Telnetサービスを起動する > net start telnet Telnetサービスを停止する > net stop telnet

Windows XP Pro で Telnet サーバを立ち上げる

「コンピュータの管理」を起動する 「コントロールパネル」->「管理ツール」->「コンピュータの管理」 Telnetサービスの設定を変更する 「サービスとアプリケーション」->「サービス」を選択 一覧からTelnetを選択し,スタートアップの項目を適宜変更する.この項目が無効になっていると,telnetサービスを起動できない.「自動」にすると,Windowsの起動時に常に自動で立ち上がる.ここでは,「手動」を選択することとする.以上の操作により,コマンドプロンプトで起動・停止が可能となる. Telnetサービスを起動する > net start telnet Telnetサービスを停止する > net stop telnet

Diary/2011-02-14

Daily Memo パラメタを変えて評価するだけの単純作業をしている.スクリプトを書いて自動化したいとこなのだが,GUIしすぎていて残念ながらできない. (10:33 JST) emacsで環境変数を扱う例.参照する場合 (getenv "HOME").更新する場合 (setenv "SHELL" "/bin/zsh"). (14:23 JST) Cygwinからlocalhostのコマンドプロンプトにtelnet接続したいので奮闘中. (15:26 JST)

Emacsで外部コマンドを起動する

外部プロセスを起動する 同期プロセスの起動 外部コマンドを呼び出し,これが実行を終了するまで待ち合わせる. 例1 tgifを起動する まず,何もオプションの無い,最も簡単な呼び出し方を紹介する. (call-process "tgif") これを実行すれば,tgifが起動する.しかし,同期プロセスであるため,tgifで作業はできても,emacsの作業はできないことに気づくだろう.シェルでtgifをフォアグラウンドで起動すると,tgifを終了するかサスペンドするまで,シェルの操作ができないのと同様である. 例2 ディレクトリ内のファイルを挿入する 次に,出力先をカレントバッファに設定する例を紹介する. (call-process "ls" nil t nil "/usr/") ここで,\C-xe を入力し実行すると,次の出力が得られる. X11 X11R6 bin etc include ... 上の例では,/usr/直下のファイル一覧を,カーソル位置に展開する.ここでは,3番目の引数 (destination) にtを指定し,出力先をカレンドバッファとしている. 非同期プロセスの呼び出し 例1 tgifを起動する 例によって,最も簡単なtgifの起動について紹介する. (start-process "tgif" "*tgif*" "tgif") 1個目の引数はEmacsが内部で識別する名前である.2個目の引数は起動するプロセスの標準出力と標準エラー出力が表示されるバッファ名である.3個目の引数は起動するプロセスのコマンドである. こちらは非同期であるため,tgifもemacsも作業できる.シェルにおけるバックグラウンド実行に似ている.

Diary/2011-02-08

Daily Memo Windows端末からsambaにアクセスしようとしたら,次のメッセージが.「同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。サーバーまたは共有リソースへの以前の接続をすべて切断してから、再試行してください。」日本語が変.コマンドプロンプトで,$ net use //servername /delete でセッションを切断し,再度エウスプローラからログインすれば直った.Windows苦手... http://blog.cles.jp/item/3905 (09:20 JST) エクスプローラを使わずに,プロンプトから再接続する方法もあるらしい. http://blog.livedoor.jp/shoeberry/archives/50525691.html (09:23 JST) 今年の末に特許を一本書くことが,たった今決まった. (09:24 JST) Emacs23の変更点を読んでいると,serial-termというものが.興味津々. (09:56 JST) M-x serial-termでemacsがシリアル端末と化した.素敵すぎる. (09:26 JST) emacsのserial-termは素敵だけど,これを立ち上げると,elscreenのキーバインドが効かなくなるから困った.ということで,ruby-serialtermを導入しよう. (14:41 JST) Cygwin上でrubygemsがうまく動作しない.rubyのバージョンの問題だろうか.ということで,rubygemsが標準装備されているruby-1.9をビルド. (14:42 JST) Cygwin上で./configure && make && make install なう.遅い... (14:43 JST)

Diary/2011-02-07

Daily Memo Windowsの「ファイル名を指定して実行」は,explorerに引数を与えているだけだったのか. (12:59 JST) 引数を与えているだけではなく,%PATH%を用いたコマンドの検索機能も加わっているらしい.コマンドプロンプトで $ explorer cmd としても起動しなかった. (13:04 JST) cygwinのcygstartでは,sambaのURLが開けない.なので,explorerを使って起動するスクリプトを書いた.もちろん,仕事中なので,評価項目の計測中にバックグラウンドで:-) (13:10 JST)

Diary/2011-02-04

Daily Memo viで検索する際に,キーワードのハイライトによって文字が見難いので,色を変更する.highlight Search ctermbg=1 http://www.crimson-snow.net/tips/unix/vim.html (10:04 JST) Windowsでキーボード入力のリピート速度を加速するツールkbdaccを導入して,幸せになった. http://www.jsdlab.co.jp/ (11:46 JST)

Diary/2011-02-03

Daily Memo 自身が使用しているPC等の資産を,資産管理システムに入力している.資産管理は重要だけれども,もう少し簡単におこなえないものか.管理システムの説明書や入力ポリシを一箇所に集約するとか. (11:31 JST) emacs lispにおいて,外部コマンドを実行し,その出力を文字列として受けとるには,shell-command-to-string関数を使う. (16:43 JST)

ssh-agentの管理を自動化する

ssh-start.sh ssh-agentの管理を自動化するスクリプトssh-start.shを紹介する. 詳細 ssh-agentを使うことで,sshでリモートログインする際に,パスワードの入力を省略できる. ssh-agentを利用するためには,ソケットのパスとプロセスIDを環境変数に登録する必要がある.環境変数に登録すべき情報は,ssh-agentの起動時に,以下のように標準出力に出力される. $ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-XTqIvn4918/agent.4918; export SSH_AUTH_SOCK; SSH_AGENT_PID=4919; export SSH_AGENT_PID; echo Agent pid 4919; 上記のように,ssh-agentの出力はシェルコマンドとなっており,実行すれば環境変数がセットされる.このため,多くの解説記事では,次のようにevalを用いる方法が述べられている. $ eval `ssh-agent` Agent pid 4919 しかし,この方法は,同じssh-agentのプロセスを複数のシェルから利用することはできない.上記コマンドを他のシェル上でも実行すれば,動作はするが,次の点で優れた手法とは言えない. ssh-agentのプロセスを複数起動する (本来は1個で充分). 起動毎に秘密鍵の登録,およびパスフレーズの入力が必要となる. 上記の問題は解決するには,1個のssh-agentを複数のシェルから再利用すればよい.例えば2個のターミナルから1個のssh-agentプロセスを利用するには,次のようにする. # terminal 1 $ ssh-agent > ~/tmp.sh $ source ~/tmp.sh Agent pid 4919 # terminal 2 $ source ~/tmp.sh Agent pid 4919 こうすることで,2個のターミナルから同一プロセスのssh-agentを利用できる. 以上の処理を自動化したものが,ここで紹介するスクリプトである. 使い方 環境変数を扱かうため,通常のスクリプトのようには利用できない.このため,sourceコマンドや.(ドット)コマンドで実行する. $ source /path/to/dir/s

Diary/2011-02-02

Daily Memo emacsで,現在のカーソル位置を得る方法.桁数は(current-column).行数は(count- lines (point-min) (point)). http://d.hatena.ne.jp/khiker/20060616/1150483361 (11:01 JST) ssh-agentの管理を自動化するスクリプトを書いた. ssh-agentの管理を自動化する (22:26 JST)

Diary/2011-02-01

Daily Memo いつも忘れる.svnでパーミッション設定.$ svn propset svn:executable ON filename / $ svn propdel evn:executable filename (08:26 JST) emacsの検索において,カーソル位置にある文字列を検索するには,C-sを押下後にC-wを入力すると便利. (10:20 JST) Linux Kernelのコード中によく見られるlikely/unlikelyや_builtin_expectマクロの存在価値を初めて知った.通常,これらのマクロの引数には条件式を書く.そして,その条件式の評価結果が通常どうなるか,を示すものである.例えば,一般的にループの条件式がかなりの確率で真になることは,自明なことである.このような箇所でこれらのマクロを使用することにより,(1)コンパイラによるコード最適化に利用したり,(2)ソースコードの可読性を高めたりする効果がある. http://kerneltrap.org/node/4705 (14:37 JST) /bin/や/usr/bin/などではなく,オリジナルなパス,例えば~/binとかにあるコマンドをNTEmacsで実行したいとする.今日試したら,exec-pathにパスが登録されているにもかかわらず,何故かコマンドが見付からないとエラーを出し,実行できない.この場合は,実行するコマンドを "sh" に変え,引数に本来実行したいコマンドを指定することで解決する. (17:35 JST)