使い方(1) Vzエディターライクな、エディターの使い方 NxEdit

GPLライセンスのエディター NxEdit を配布しています。ubuntu/mint 64bitに対応させました。起動は、mint 17.1、ubuntu 15.04(mate) 14.04.2 で確認しています。放置していたのでですが、はじめて具体の使い方を説明してみます。

◎制限事項と利用上の注意事項


ワイドキャラクターを扱えるフォーマットは、Shift_JIS(JISも) と EUC-JP です。
UTF-8は適切に扱えません。UTF-8はそのままでは使えません。だいじなことなので2回いいました。

別言すれば、アスキーファイルのみ編集できればいいのならそのまま使えばいいので、以下はほとんど必要がないくらいですが読んでください。だいじなのはあくまで日本語を使いたい場合の話です。

もうひとつだいじなことをいえば、スタッカブルなバッファの操作はとても気持ちいいということ。ALT+S で保存などのコマンドが設定できること。欲をいえば際限がありませんが、そのまま埋もれ消えてしまうのも残念なので、64bitバイナリ生成までは当方で実施しました。

本エディタは現状仕様でEUC-JPロケールで使います。ここだいじです。

UTF-8でなく、SJIS,EUCのファイルをどうぞ。


日本語を適切に扱うためにはSJIS(JISでも)かEUCのどちらかに変換する必要があります。
(ちなみに、VIMはUTF-8に変換して読み込んでいるようです)。

2015年の今、職業でITしていない日本人ユーザーにとって、Shift_JISかUTF-8エンコーディングのファイルさえ扱えれば、99.9%のニーズは満たせるでしょう。0.1%については考慮しません。


Linuxにおいては、日常的な保守作業、アスキー文字列だけの定義ファイル数文字修正などなら、そのまま使えばいいのではないかと思います。

前置きが長くなりましたが、簡単にいえば、Gnome系ターミナルなら、UTF-8で起動して、ターミナルのロケールをEUC-JPにして、このエディターを使いましょうということです。

Terminator になじみがある人はそれでロケールを変更して利用してもかまいません。好きなターミナルを使えばいいです。但しロケールの変更がめんどうだったりするとアレですね。保存が効かないのも困ります。

※とはいえ、品質にまったく担保はありません。ファイルが壊れることも
視野において、ご利用は慎重にお願いします。コンパイルしている本人ですら
十分なテストはしていません。自前でバックアップをとるようにして下さい。バグフィックスの予定はありません。パッチは大歓迎です。よろしくお願いします。

オリジナルの特徴

  • Vz エディタの主要な操作方法・機能を実装している
  • スタッカブルな文字削除アンドゥー
  • スタッカブルなブロックバッファー
  • カーソルの移動方向により二種類のブロックを使い分ける方向感応
  • なるべく視点が動かなくてすむカーソル位置保持
  • カーソルが行を離れるまで行を更新しない行編集
  • キーボードの操作を覚えさせるキーボードマクロ機能
  • ツインウィンドーのファイラーを装備
  • その時点の編集状態をそのまま保存するプロファイル機能
  • 動作が極めて軽快である
  • 漢字コードを自動判別する※(UTF-8時代以前の話)
  • シグナルなどを受けた場合、可能な限りプロファイルを保存終了する
  • 同じユーザーが複数の ne 使用時に、 既に開いているファイルを保護する
  • 環境変数 NE_TERM 及び TERM に合わせて独自の端末設定を行える

ドキュメントより抜粋しました。EUC時代に生まれたエディターです。


話は戻って、利用のためにはEUC-JPロケール環境も必要、次の手順を踏んで構築します。(15.04以降ではターミナルにロケール切り替えスイッチャーが搭載されていますので、ロケール作成も不要です。以下の大半は、14.04LTS/17.1ユーザーを対象にしています)

◆ja_JP.EUC-JPロケール ターミナル環境の構築


ロケールファイルを(なければ)作成する。一回のみコマンド発行。デフォルトではないはずです。15.04以降のgnome-terminal ではこの作業は不要です。メニューから切り替えてください。(今月末リリース予定のmint 17.2も14.04系なのです。17.02RCで確認)

sudo locale-gen ja_JP.EUC-JP

◆ターミナルをEUC-JPロケールで起動する。


◆その前に、新しいプロファイルを作成する。


ターミナルを起動し、編集、プロファイル、新規で作成します。

以下のコマンドと合せておいてください。EUC-JPにしておきましょう。


env LANG=ja_JP.EUC-JP gnome-terminal --disable-factory --profile=EUC-JP

プロファイルを切り替えて、日本語文字列のあるディレクトリで、lsしてみましょう。綺麗に文字化けしているはずです。それで正解です。utf-8で名前がついたファイルを見ているので、EUCというメガネからみると化けているように見えて正解です。色めがねというやつです。

ターミナルでEUC-JPプロファイルにした状態で、SJISなファイルを探して、ne ファイル名 としてみましょう。日本語が表示されていると思います。

◆汎用:便利に使ってみる。


うまくいくようなら、パネルやデスクトップにオブジェクト(アイコン)を作成します。

たとえば、こんなかんじのファイルを作ればいいのです。

まず、エディターで空ファイルを指定して開きます。

gedit ~/Desktop/NeX.desktop
以下の内容を貼り付けて保存。

----cut----
[Desktop Entry]
Name=NeX Editor Terminal
Comment=CJK Terminal plus
TryExec=gnome-terminal
Exec=env LANG=ja_JP.EUC-JP gnome-terminal --disable-factory --profile=EUC-JP
Icon=utilities-terminal
Type=Application
Categories=GNOME;GTK;Utility;TerminalEmulator;
StartupNotify=true
OnlyShowIn=GNOME;Unity;
Actions=New
X-Ubuntu-Gettext-Domain=gnome-terminal

[Desktop Action New]
Name=New Terminal
Exec=env VTE_CJK_WIDTH=1 gnome-terminal --disable-factory
OnlyShowIn=Unity
----cut----

デスクトップにどこかさみしげなオブジェクトができているので、クリック。
警告がでます。自分自身を信頼します。すると、起動可能なオブジェクトに変身します。
たぶん。

ここまで、15.04以降のユーザーは実質不要です。

コマンドラインでの操作


以後は、コマンドラインで、操作します。~/.ne 配下にカスタマイズファイルがあります。メッセージに関してはめんどうなので英語のまま使うのがおすすめです。

文字コード変換は、nkf コマンドが便利です。

日本語原稿.txt があります。UTF-8です。


nkf -g 日本語.txt
UTF-8
と返りました。

#SJISにします。
nkf -s --overwrite 日本語.txt
#読み込んで編集します。終了します。
ne 日本語.txt
#UTF-8に戻します。
nkf -s --overwrite 日本語.txt



gedit ~/bin/vz

#!/bin/dash
nkf -s --overwrite $1
ne $1
nkf -w --overwrite $1
exit 0
 

と3行ほどのバッチでいいのかも。コード判別して分岐すべきですが。


 
vz ファイル名
 
で使います。





入手先:

このブログ内で配布しています。ne nice editor と名前がかぶっているのでneを入れている方はご注意ください。アンイストールしておいたほうがいいかもしれません。最近も少し触ってコンパイルしなおしたので、gccのバージョンもあがっていますので、そのうちアップするかもしれません。

debをクリック。dpkgまかせで導入します。本ブログにあります。

配布サーバを変更するため、バイナリーは一時配布停止します。申し訳ありません。

ubuntuにインストールできますから、mintなどubuntu派生Distributionでも使えるかと(使えます)。.debをクリックして、 ソフトウェアセンター(またはDPKGツール)から導入してください。品質云々が警告として表示される場合もあります。やめることもできます。完走ソース をDirectoryごとアーカイブしています。
転んでも泣かないを念頭によろしくお願いします。とんでもないことが生じるかもしれません。実際、化けた状態で無理やり日本語入力しようとすると変になります。その結果ファイルの修正が必要になったりします。人によってはこれを壊れたというのかもしれません。また、使えないキーアサインがありますね。あれ、どうするんだろう?! とか、既知の問題だらけです。


Vzエディターライクな、エディターの使い方 (2) に続く。

おまけ

ターミナル利用の際には、env VTE_CJK_WIDTH=1 と併用するといいかも。あるいはLTSでない最新環境に乗り換える。

15.04搭載gnome-terminal ではロケール切り替えは圧倒的に楽になったが、「あいまいな文字幅」の文字表示が日本人としてはやはり納得できない。大半の日本人とっては曖昧ではなく固定幅として染み付いているのだけど。「曖昧」なのは国際的視野にたった場合なのでしょうね。


ロケール毎に文字幅が選択できれば解決するのだろうが、ここまで来ると伝統的不具合と考えたほうがいいのかもしれない。たとえば、◉◯。治るといいなぁ。^^;  ✪はまっとうに使えるようだが、あまり馴染みがない。


cf.
http://www.wheel.gr.jp/~dai/fonts/pcf_on_ubuntu.html

CJK Terminal :ワイドキャラクター文字幅の問題解決への糸口(当時)
https://gist.github.com/sgk/5991138

nkf コマンド
http://takuya-1st.hatenablog.jp/entry/20100511/1273585953 が整理されていてわかりやすいです。