トップ «前の日記(2009-10-11) 最新 次の日記(2009-10-13)» 編集

日々の破片

著作一覧

2009-10-12

_ cmd.exeに^pを

cmd.exeを使っていて、つい^pを打ち込み文句を垂れられたことがあれば……と書いて試してみたら64ビットVistaでは、それほど致命的ではないことに気づく(ということは、最近、打ち間違えないらしい)。
c:\home\arton\test>^P
'' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

かっては、プリンターがどうしたというすごくやっかいなエラーになったものだが。

と、出鼻をくじかれたが、次のスクリプトで取りあえずはそれなりにハッピーになるとわかった。

#!/usr/local/bin/ruby -Ks
require 'readline'
IO.popen("cmd.exe /A", "a") do |cmd|
==begin
  以下は無意味(cmdはreadモードではないので動作していない)
  Thread.start do
    while s = cmd.gets.rstrip
      puts s
    end
  end
==end
  while buf = Readline.readline('', true)
    if buf == 'exit'
      exit 0
    end
    cmd.puts buf
  end
end

こんなちょろいはずないから、実際に常用するといろいろ問題が出てきそうであるが、とりあえず、^p、^n、^a、^e、^d、^f、^bが使えるだけでも結構なことだ。

不思議なのは、なぜこの状態でTabの補完が使えるのかだけど(つまり使える)、readleinがTabを解釈しているのかな(ちゃんと調べずに取りあえず使ってみたのであった)。(というか出方が違うから、やっぱりreadlineが勝手にやっているのか。bashと同じことなのか)

追記:なんか無茶苦茶便利なんだけど。^kや^y、^rも使えるし。

追記:細かいことは後で考えることにしよう。とりあえずソースを書いたらgithub(readmeの代わりに上のをルートに置いた)

追記:上のリストのThreadの処理はデタラメだったので削除(しょうがないのでコメントアウト)


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|

ジェズイットを見習え