1 *usr_23.txt* For Vim バージョン 7.2. Last change: 2006 Apr 24
3 VIM USER MANUAL - by Bram Moolenaar
8 この章では特殊なファイルの編集について説明します。圧縮ファイルや暗号化された
9 ファイルを編集できます。多少不便ですが、バイナリファイルも編集できます。イン
10 ターネット越しにファイルアクセスする方法も説明します。
12 |23.1| DOS、Mac、Unix形式のファイル
18 次章: |usr_24.txt| 効率的な入力
19 前章: |usr_22.txt| ファイルを探す
22 ==============================================================================
23 *23.1* DOS、Mac、Unix形式のファイル
25 その昔、旧いテレタイプマシンは改行のために二つの文字を使っていました。一つ目の
26 文字 (キャリッジリターン。<CR>) でキャリッジを初期位置に戻し、二つ目の文字 (ラ
27 インフィード。<LF>) で用紙を送っていたのです。
28 コンピュータが登場した頃は記憶装置がとても高価だったので、改行のために二文字も
29 使う必要はないと考える人たちがいました。UNIX の人々は <LF> だけを使って改行す
30 ることに決めました。Apple の人々は <CR> を標準としました。MS-DOS (と Microsoft
31 Windows) の人々は <CR><LF> を使い続けました。
32 このような事情により、異なるシステム間でファイルを交換するときには改行文字の非
33 互換が問題になります。Vim はファイル形式を自動的に認識し、それを適切に処理する
35 'fileformats' オプションを設定して使用するファイル形式を指定してください。例え
36 ば、最初に Unix 形式を試し、次に MS-DOS 形式を試すには、次のように設定します:
38 :set fileformats=unix,dos
40 ファイルを開いたときのメッセージにファイル形式が表示されることがあります。シス
41 テム標準のファイル形式だった場合は表示されません。例えば、Unix で Unix 形式の
42 ファイルを編集するときに注意は必要ないでしょう。しかし、DOS 形式のファイルな
43 ら注意が必要です。次のようなメッセージが表示されます:
45 "/tmp/test" [dos] 3L, 71C ~
47 Mac 形式なら "[mac]" と表示されます。
48 ファイル形式は 'fileformat' オプションに設定されます。現在のファイル形式を確認
63 Unix では <LF> が改行文字です。行の途中に <CR> 文字がくることは普通はありませ
64 ん。ただし、Vi (と Vim) のスクリプトでは <CR> 文字が使われることがあります。
65 Macintosh では <CR> が改行文字なので、行の途中に <LF> 文字を使うことができま
67 つまり、<CR> と <LF> を両方含んでいるファイルは、ファイル形式を 100% 確実に判
69 そのため、Unix では Mac 形式の改行はチェックされません。おそらく、Unix で Mac
70 形式のファイルを編集することはあまりないでしょう。どうしても Mac 形式のファイ
71 ルを使いたい場合は 'fileformats' オプションに "mac" を追加してください。 >
75 これで、Mac 形式の改行が認識されるようになります。ただし、正しく認識できないこ
80 ----------------------
82 古き良き Vi で MS-DOS 形式のファイルを開くと、すべての行末に ^M が付きます。
83 (^M = <CR>)。Vim では改行が自動認識されるので、そのようなことにはなりません。
84 敢えて昔の動作を再現したい場合は、ファイル形式を指定してください: >
86 :edit ++ff=unix file.txt
88 "++" に続いてオプション名を指定することで、コマンドの設定を変更できます。
89 'fileformat' なら "++ff" です。もちろん "++ff=mac" または "++ff=dos" と設定す
91 この方法ではすべてのオプションを設定できません。現在のところ "++ff" と "++enc"
92 だけが実装されています。"++fileformat" や "++encoding" のようにフルネームでも
99 'fileformat' オプションを使ってファイル形式を変換できます。例えば、README.TXT
100 を MS-DOS 形式から UNIX 形式に変換してみます。まず、MS-DOS 形式のファイルを開
105 ファイル形式は自動的に認識されます。では、ファイル形式を変換しましょう: >
110 ファイルは Unix 形式で保存されます。
112 ==============================================================================
115 誰かがあなたにメールを出しました。メールには URL が書いてあります。例:
118 ftp://ftp.vim.org/pub/vim/README ~
120 他のプログラムを使ってファイルをダウンロードし、それを Vim で開いても構いませ
121 んが、もっと簡単な方法があります。カーソルを URL の上に移動して次のコマンドを
126 運が良ければ、ダウンロード用のプログラムが実行され、ダウンロードされたファイル
127 が開かれます。新しいウィンドウで開きたい場合は "CTRL-W f" を使ってください。
128 ダウンロードが失敗してエラーメッセージが表示された場合は、次のような原因が考え
134 残念ながら、エラーの原因を把握するのは非常に困難です。エラーが起きた場合は手作
137 インターネット経由のファイルアクセスは netrw プラグインによって実行されます。
138 現在、以下の形式の URL が認識可能です。
143 http:// wget を使う (読込専用)
145 Vim 自身は通信機能を持っていません。インターネットアクセスは外部プログラムを
146 使って実行されます。"ftp" と "rcp" はほとんどの Unix システムで利用できるはず
147 です。"scp" と "wget" は別途インストールする必要があるかもしれません。
149 ":edit" や ":split" などのコマンドでファイルを開くときにも URL を指定できます。
150 もちろん保存もできます (http:// は不可)。
152 パスワードの指定方法など、詳細は|netrw|を参照してください。
154 ==============================================================================
157 情報を秘密にしたいことがあると思います。例えば、生徒と共有のコンピュータを使っ
158 てテストを作成している場合、賢い生徒にテスト問題を盗み見られてしまうようでは困
159 ります。Vim の暗号化機能を使って情報を保護しましょう。
160 ファイルを暗号化するには、Vim の起動引数に "-x" を指定します。例: >
164 プロンプトが表示されるので、ファイルを暗号化または複号するための鍵を入力してく
169 慎重に秘密鍵を入力してください。入力した文字は表示されません。代りにスター (*)
170 が表示されます。入力ミスがあると大変なので、念のため、もう一度同じ鍵を入力して
175 ファイルの編集方法は通常のファイルと同じです。秘密にしたいことを書き込んでくだ
176 さい。ファイルを保存すると、暗号化されて保存されます。
177 次にそのファイルを Vim で開くと、鍵を入力するためのプロンプトが表示されます。
178 既に暗号化されたファイルを開くときは "-x" 引数を指定する必要はありません。通常
179 の ":edit" コマンドで開くこともできます。暗号化ファイルにはマジック文字列が埋
180 め込まれているので、Vim は暗号化ファイルを認識できます。
181 他のプログラムで暗号化ファイルを開くと、ゴミが表示されます。たとえ Vim で開い
182 たとしても、不正な鍵を使った場合は、やはりゴミが表示されます。鍵が正しいかどう
183 かを判断する機能は Vim にはありません (暗号をより強固なものにするため)。
189 ファイルの暗号化を解除するには、'key' オプションに空文字を設定します: >
193 空に設定してからファイルを保存すると、暗号化されずに保存されます。
194 'key' オプションに鍵を設定すれば暗号化を有効にできますが、それは安全ではありま
195 せん。パスワードがコマンドラインに表示されるので、肩越しに盗み見られてしまいま
197 安全に暗号化を有効にするには、":X" コマンドを使ってください。"-x" 引数を使った
201 暗号化用のキーを入力してください: ******
202 もう一度同じキーを入力してください: ******
208 Vim の暗号アルゴリズムは脆弱です。いたずら小僧を撃退するには十分ですが、暗号エ
209 キスパートのハックには耐えられません。さらに、スワップファイルが暗号化されない
210 ことにも注意が必要です。ファイルを編集している間、スーパーユーザ権限さえあれば
211 誰でも平文のスワップファイルを読むことができます。
212 スワップファイルを使わないというのも一つの手です。起動引数に "-n" を指定すれ
213 ば、スワップファイルは作成されなくなります (代わりにメモリが使われます)。例え
214 ば、暗号化した "file.txt" をスワップファイル無しで開くには、次のコマンドを使い
219 既にファイルを編集中なら、次のコマンドでスワップファイルを無効にできます: >
223 スワップファイルが無いということは、リカバリできないということです。普段よりま
224 めにファイルを保存し、クラッシュによるリスクを抑えましょう。
226 メモリ上のファイルは暗号化されていません。権限さえあれば誰でもエディタのメモリ
227 を調べてファイルの内容を知ることができます。
228 viminfo ファイルを使っている場合、レジスタの中身が平文で保存されることにも注意
230 本気でファイルを秘密にしたいなら、ネットワークから切り離したマシンで作業し、強
231 力な暗号化ツールを使い、そのマシンを使わないときは金庫に入れておきましょう。
233 ==============================================================================
236 Vim はバイナリファイルを編集できます。専用ツールではないので若干の制限はありま
237 すが、ファイルを読み込み、編集し、保存できます。
238 Vim の便利な (そして今は邪魔な) 機能を無効にするために、"-b" 引数を付けて Vim
243 'binary' オプションがオンになります。これにより、余計な機能が無効になります。
244 例えば、'textwidth' が 0 に設定され、自動整形が無効になります。そして、ファイ
247 バイナリモードを使うと、例えば実行ファイルのメッセージを変更できます。ただし、
248 文字を挿入したり削除したりするとプログラムが動かなくなってしまうので注意してく
249 ださい。"R" コマンドの置換モードを使いましょう。
251 バイナリファイルには非印字可能文字がたくさんあります。これを 16 進数で表示する
256 あるいは、調べたい文字にカーソルを移動して "ga" コマンドを使います。例えば、
257 <Esc> の上で "ga" を実行すると、次のように表示されます:
259 <^[> 27, Hex 1b, Octal 033 ~
261 ファイルに含まれている改行コードが少ない場合、'wrap' オプションをオフにすると
270 次のコマンドで現在のカーソル位置をバイト単位で表示できます: >
276 列 9-16 / 9-16; 行 277 / 330; 単語 1806 / 2058; バイト 10580 / 12206 ~
278 末尾の数字に注目してください。カーソルの位置とファイルの大きさがバイト単位で表
279 示されています。'fileformat' の設定による改行の種類もちゃんと考慮されています。
280 指定したバイト位置に移動するには "go" コマンドを使います。例えば、2345 バイト
289 本物のバイナリエディタは、テキスト表示と 16 進表示の二通りの方法でファイルを表
290 示します。"xxd" を使ってファイルを変換すれば Vim でも同じように表示できます。
291 "xxd" は Vim に付属しています。
292 まず、ファイルをバイナリモードで開いてください: >
296 そして、xxd を使って16進数ダンプ形式に変換します: >
302 0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49 ....9..;..tt.+NI ~
303 0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30 K,.`.....b..4^.0 ~
304 0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9 7;'1.".....i.59. ~
306 あとは、好きなようにテキストを編集してください。普通のテキストを編集するのと同
307 じです。16 進数部分を変更しても、テキスト部分は更新されません。逆も同様です。
308 編集が済んだら変換し、テキストに戻します: >
312 16 進数部分への変更だけが反映されます。右側のテキスト部分への変更は無視されま
315 詳細は xxd のマニュアルを参照してください。
317 ==============================================================================
320 これは簡単です。圧縮ファイルを編集するのに特別な操作は必要ありません。ただファ
321 イルを開くだけです。"gzip" プラグインが展開の面倒をみてくれます。ファイルを保
323 現在、以下の圧縮形式がサポートされています:
329 実際の圧縮と展開には上記のプログラムが使われます。無い場合は別途インストールし
332 ==============================================================================
334 次章: |usr_24.txt| 素早く入力する
336 Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: