スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ckwでコピペして改行が消えないようにする

前はそんなことがなかったんですが,いつの頃か気づいたら ckwでコピペをすると改行が消えてしまうようになっていました.不便とは思いつつ放置していたのですが,「不便じゃね?」というコメントをいただきましたので試行錯誤してみました.

!注意!

適当にソースを検索して見つけた箇所を,さらに適当に修正したので,副作用があるかどうか分かっていません.何か見つかりましたら,連絡いただけると幸いです.


ビルド手順

コンパイルには Visual C++ Expressを使用します.具体的な手順は以下のとおりです.

ソース入手&展開
[/]# mkdir /c/tmp
[/]# cd /c/tmp
[/c/tmp]# wget 'http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fgnupack%2F46328%2Fckw-mod-0.9.0-d1-src.zip'
[/c/tmp]# unzip ckw-mod-0.9.0-d1-src.zip
[/c/tmp]# wget 'http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fgnupack%2F46328%2Ficon_icon48.gz'
[/c/tmp]# gzip -d -N icon_icon48.gz
[/c/tmp]# mv icon.ico deflis-ckw-mod-dc6317a/rsrc

ソース修正
[/c/tmp]# cd deflis-ckw-mod-dc6317a
[/c/tmp/vc2008/deflis-ckw-mod-dc6317a]# cp misc.cpp misc.cpp.org
[/c/tmp/vc2008/deflis-ckw-mod-dc6317a]# vi misc.cpp
[/c/tmp/vc2008/deflis-ckw-mod-dc6317a]# diff misc.cpp misc.cpp.org
46,49c46,49
<               //if(*str == '\r') {
<               //      str++;
<               //      length--;
<               //}
---
>               if(*str == '\r') {
>                       str++;
>                       length--;
>               }
[/c/tmp/vc2008/deflis-ckw-mod-dc6317a]# cp makefile makefile.org
[/c/tmp/vc2008/deflis-ckw-mod-dc6317a]# vi makefile
[/c/tmp/vc2008/deflis-ckw-mod-dc6317a]# diff makefile makefile.org
9c9
< ULIB = ShLwApi.Lib user32.lib gdi32.lib shell32.lib
---
> ULIB = user32.lib gdi32.lib shell32.lib

ビルド
[/c/tmp/vc2008/deflis-ckw-mod-dc6317a]# nmake

次のgnupackリリースから上記のバイナリに置き換える予定です.

スポンサーサイト

コメントの投稿

非公開コメント

Re: No title

色々ご意見いただけていて,とても参考になっています.
私自身も言うほどソースを見ているわけでもないので,
そこまで畏まらないでください.

(1)について,ckwで再現しました.
ckwで実行しているbashから,minttyを起動して同様の操作をしてみたところ
私の環境では,minttyでも再現しました.もしかして,ckw,minttyとは
別なところに問題があるのかも?

(2)について,こちらは確かにおっしゃるとおりですね.
思い返してみると,私も同じことを経験していたかもしれません.
(そのときは,Enterを連打するか,ckwを再起動なんて手段で逃げてましたが…)

(2)のことを踏まえると,minttyに変更は悪い選択肢じゃないかもしれません.
-oオプションを使えば,起動時にパラメータも渡せるようですし.

ckw自体,一時期は様々な方が改造して,公開されていたようですが,
最近はまったくそういう情報もないので,そういった点でも良いかも.

# というか,minttyって ckwと違って 256色出るし,
# フォントをアンチエイリアスで表示できるのが素晴らしい

No title

毎度ソースコードを追わずにリポートばかりで申し訳ありません。

再現手順について記載いたします。OSはWindowsXP SP3です。

(1) ckwでは大文字の「C」の入力ができない場合がある

gnupackを展開⇒bash(ckw)を起動⇒大文字の「C」を続けて3回入力する⇒1回目の大文字の「C」が表示されないがそのまま「Enter」を入力すると以下のようにshellは3文字として受け付けている(「Enter」を入力すると3文字として表示される)

# CCC
bash: CCC: command not found

(2) ckwではウィンドウの resize時に画面表示が崩れる.

gnupackを展開⇒bash(ckw)を起動⇒ckwのウィンドウ右上のボタンでウィンドウを最大化する⇒yesコマンドを実行してしばらくしたら^C⇒ckwのウィンドウ右上のボタンでウィンドウサイズを元に戻す⇒ウィンドウの左下にプロンプトが表示されず、しばらく「Enter」を入力するなどして表示を戻す必要がある

ckwとminnttyのメリットデメリットについては、完成度はさておき、なんといってもminttyがterminal typeとしてxtermやVT100などをサポートしているのが決定的に違っていると思います。(ただ、Windowsを極力UNIX Flavorな感覚で使いたい場合の事なので、Windowsらしく使いたい立場の場合には逆にコマンドプロンプトの機能強化版としてのckwがよいというのもあるかもれません)

UNIX FlavorとWindowsのどちらを主として考えたいかによって好みが変わってくると思うので、UNIX Flavorを求める人用にcygwinでは標準的なminttyも使えるようにしておくという考え方はいかがでしょうか。(もちろん作者の方の主観が第一と思っております)

No title

minttyはかなり前に私も試して,理由がなんであったか忘れてしまいましたが,
そのときは ckwの方が良いという結論になり,現状にいたっています.
(確か,設定画面で変更後に OKボタンを押下すると落ちるとかだったような)
今軽く試してみたところ確かに悪くないような気がしています.

採用するかどうかの判断材料にしたいので,mintttyのメリット,
ckwのデメリットをもう少し詳しく教えてください.

(1) ckwでは大文字の「c」の入力ができない場合がある
(2) ckwではウィンドウの resize時に画面表示が崩れる.

(1)については,具体的にどのような手順で発生しますでしょうか?
(私の環境ではそのようなことが発生していません)

(2)については,ckwでは確かにそういうこともあった気がしますが,
自分でもどのような場合に発生したか覚えていません.minttyで
そうならないことの確認をしたいので,再現手順があればご教示
ください.

(1)(2)以外にも具体的なメリット・デメリットがあれば,ご教示ください.


P.S.
minttyはapt-cygでインストールしました.
予想以上に apt-cygは便利だと実感しました.

No title

修正版のckwでかなり幸せになりました。

これまた好みの話で恐縮ですが、cygwin付属のminttyを使うようにgnupackのソースコードを変更してみたらさらに幸せになりました。
(IMEがOnになっているときのカーソル色についても~/.minttyrcでIMECursorColour=0,191,0などと指定すれば変更できます)

ちょっと使ってみた感じでは、なぜかckwにて大文字のCがうまく入力できなかったり、resizeした時の表示が崩れる問題なども解消しました。puttyをベースに作られているようなので、Terminalの機能としてはそれほど悪くないと思います。
リンク
最新コメント
カテゴリー
最近の記事
月別アーカイブ
ブログ内検索
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。