その6
5章 エディタの使い方
vi コマンド(vim)の基本的な操作
開始はvi [ファイル名]と入力し、保存と終了はそれぞれ:w,:qコマンド
インサートモードとコマンドモード
文字列を打ち込むにはコマンドでインサートモードへ切り替える
使ったコマンドはi,a,I,A
インサートモードから抜けるにはEscキーを使う
編集画面では以下のコマンドで移動できる
[Ctrl]fコマンド 次の画面へ
[Ctrl]bコマンド 前の画面へ
:1 1行目へ移動
:n n行目へ移動
:$ 最終行へ移動
さらに以下のコマンドでコピーや貼り付けが可能
x 1文字カット(削除)
dd 1行文字カット(削除)
yy 1行コピー
p カーソルの次の文字または次の行にペースト(挿入)
P カーソルの前の文字または前の行にペースト(挿入)
さらにさらに以下のコマンドで検索と置換が可能
/検索文字列 検索
n 下方向へ繰り返し検索
N 上方向へ繰り返し検索
:対象の行s/検索文字
列/置換文字列/オプ
ションによって
置換
対象の行…m,n でm 行目〜n 行目、%で全体、省略で現在の
行
オプション…gで1行にある複数を置換(省略可能
ファイルとテキストの処理
テキストエディターはVim 7.1を使って以下のプログラムを作成
imp = open("memo.txt", "r") for line in imp: print line imp.close()
動かすとテキスト内容が表示される
import os, time try: memo = open('memo.txt', 'r') outf = open('memo.tmp', 'w') header = 'Memo for %s' % time.ctime(time.time()) outf.write(header + '\n\n') lines = memo.readlines() for i in range(2, len(lines)): outf.write(lines[i]) outf.close() memo.close() os.rename('memo.txt', 'memo1.bak') os.rename('memo.tmp', 'memo.txt') os.remove('memo1.bak') except: print 'error'
動かすとファイルの先頭にMemo for Mon Oct 13 18:30:54 2008
のように書き込まれる