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利用方法のチュートリアル |