HP-BASIC入門
ホーム » 技術集 » viエディタ

viエディタ


HPBASICを習得するには、やりたいことと言語のルール学習だけでなく、 HP-UNIXの操作やネットワーク、計測器のハードウェア等さまざまな知識 が必要になってきます。

ここではUNIX操作関係に関して もっとも便利と思われるviエディタの使いかたについて まとめてみました。


viエディタを使おう




HP-BASICはBASIC端末と呼ばれる専用のデバッガになるのですが、 実際にそこで編集してまうと保存性や可読性、バック アップの関係であまりよくない。 やはりアスキーテキストが一番です。

そこでUNIX標準のviテキストエディタの 習得が必要になってきます。
エディタは数あれどviを推奨する理由は

HP-UXだけでなく、LINUXやUNIXでも使用できる
中途半端に古いとmuleやEmacsが入っていない

ことが多い為です。
そのため、標準エディタであるviを習得 するといろいろプラスになると思います。
コマンド一覧は下記に記しますが、
"コマンドモード"
"入力モード"
の2種類があるので最初はとっつきにくいかもしれません。 その2つのモードを使いこなせるようになることこそが viマスターへの近道です。


vi起動・ファイルを開く

起動時は"コマンドモード"で起動されています。

キー入力 動作
vi ファイル名 対象ファイルを開く
vi +n ファイル名 n 行目から対象ファイルを開く
vi -r ファイル名 壊れたファイルのリカバリ


入力、編集

"コマンドモード"でこのコマンドを入力すると"入力モード"になります。

キー入力 動作
i カーソルの左から入力開始
I 行の始めから入力開始
a カーソルの右から入力開始
A 行の最後から入力開始

なお"入力モード"で"ESC キー"を押すことで"コマンドモード"に切り替わります。

わからなくなったときは ESCキーを連打するクセをつけましょう



保存、終了 "コマンドモード"

キー入力 動作
ZZ vi を終了(内容が変更されている場合は保存)
:wq ファイルに保存、vi を終了
:#,# w #行目から#行目までを保存
:q vi を終了(内容が変更されいる場合は警告)
:q! vi を強制終了(内容が変更されていても保存しない)


バッファ "コマンドモード"

一度開いたファイルはバッファとして管理されます。

キー入力 動作
:ls バッファリストの表示
:b バッファ バッファを表示
:bn 次のバッファを表示
:bp 前のバッファを表示


カーソル移動 "コマンドモード"

キー入力 動作
1G ファイル先頭へ移動
G ファイル末尾へ移動
Ctrl+n 1画面進む
Ctrl+b 1画面戻る
[n] k n 行戻る
[n] h n 文字戻る
[n] j n 行進む
[n] l n 文字進む


削除、コピー、貼り付け "コマンドモード"

[n] +キー入力と書いているものは、n 文字(行)分の処理も可能です。

キー入力 動作
[n] x カーソル上の1文字削除
[n] X カーソルの左の文字を1文字削除
[n] d 目的語
d [n] 目的語
目的語一覧:
w - カーソル位置から空白を含む単語の末尾まで削除
e - カーソル位置から空白を含まない単語の末尾まで削除
$ - カーソル位置から行末まで削除
d - 1行削除切り取り(カット)
[n] yy 1行バッファにコピー
p バッファ内のテキストを挿入(文字はカーソルの右、行はカーソルの下に挿入)
P バッファ内のテキストを挿入(文字はカーソルの左、行はカーソルの上に挿入)
:r [ファイル名] ファイルの中身を挿入する


検索 "コマンドモード"

less や man コマンド内でも利用する標準操作です。

キー入力 動作
/<文字列> 文字列 を検索する(順方向)
?<文字列> 文字列を検索する(逆方向)
n 順方向へ検索する
N 逆方向へ検索する
% (,[に対して対応する ),] や } を検索


置換、変更 "コマンドモード"

キー入力 動作
r カーソルの下の文字を置き換える
[n] c 目的語
c [n] 目的語
目的語一覧:
w - 単語の一部を変更する
$ - 行の一部を変更する
:s/[old]/[new] [old]を[new]に置換する
現在行の最初の old を new に置換する :s/old/new
現在行の全ての old を new に置換する :s/old/new/g
2つの # 間で語句を置換する :#,#s/old/new/g
ファイルの中の全ての検索語句を置換する: :%s/old/new/g
'c' を加えると置換の度に確認を求める :%s/old/new/gc


位置とファイル情報 "コマンドモード"

キー入力 動作
CTRL-g ファイル内での位置とファイルの状態を表示
[n] Shift-g ファイル内のn行に移動(nが無ければファイル末に移動)


ウインドウ操作 "コマンドモード"

キー入力 動作
:sp [ファイル] ウインドウを横に分割
:vs [ファイル] ウインドウを縦に分割
: q , :only カーソルのあるウィンドウ以外を全部閉じる
:new 空の横ウインドウを開く
:vnew 空の縦ウインドウを開く
Ctrl-w w 次のウインドウに移動
Ctrl-w p 前のウインドウに移動
Ctrl-w o 現在のウインドウ以外を閉じる


取り消し、繰り返し、再描画 "コマンドモード"

キー入力 動作
u 直前の操作を取りやめる
U 行全体の操作を取りやめる
Ctrl-R 取り消しの取り消し
. 直前の操作の繰り返し


外部コマンドの利用 "コマンドモード"

キー入力 動作
:! [外部コマンド] 外部シェルコマンドが実行
U 行全体の操作を取りやめる


その他 "コマンドモード"

キー入力 動作
:set number、 :set nu 行番号を表示
:set no number、 :set nonu 行番号の表示をやめる
:set showmode 現在のモードを表示
:set showmatch () や {} の対応を報告
:set ignorecase 大文字/小文字の区別なく検索
:set autoindent 自動インデントモード
:set noautoindent 自動インデントモードをやめる
:set all すべてのオプションを表示
:e [ファイル] ファイルを開く
:syntax on キーワードをハイライト表示する
:vert diffsplit [ファイル] 今のファイルと、他のファイルとの差分を取るコマンド
:Tutorial 30分程度のVi利用方法のチュートリアル