« シングルユーザモードの忘備録 | トップページ | freebsd-update を使ってみる »

vi を使おう(基本編)

 最近、なぜか忙しい日々が続いてます…。

 私の場合は、忙しいと、だらだらと中身のない文書を書いたり、ギャグがダダ滑りしたりするので(^^;;;、しばらく、更新の間隔を開けることにしま~す(^^;

 …で、今回は、UNIX 管理者の必須教養科目(^^;vi エディタの最小限の使い方を解説します。


■ vi にまつわるウワサについて

 vi は、ほぼ全ての UNIX に最初から入っている、UNIX 標準ともいえるエディタですが、vi にまつわる、いろいろなウワサを聞いて、vi を避けている人が多いようです(^^;;

 まず最初に、そんなウワサを片付けてしまいましょう。


○ ウワサ1:vi は難しい

 え~、vi の操作方法が、現在主流のエディタと大きく違う、という意味であれば、その通りです(^-^;ヾ(^^;;ぉぃ

 ただし、vi は、学習コストは高いけれど、それを補(おぎな)ってあまりあるくらい生産性が高い、と言われているので、大量の文書(プログラムを含む(^^))を書く人で、興味のある方は、一度、極(きわ)めてみるのもいいかもしれません(^^;

 ちなみに私の場合、FreeBSD では viですが、Windows では TeraPad を使ってます。
 で、大量に文書を書いてた頃は、vz を使ってました(^-^)

○ ウワサ2:vi は操作性が悪い

 vi では、カーソルの移動に h,j,k,l を使う…と聞いて、それだけで vi を使う気をなくしてる人もいますが、いまどきの vi は、カーソルキーが使えるのは当たり前で、[PgUp] や [PgDn] キーでページめくりができるものもあります。

 また一方で、マウスを使って文字を選択してから、編集メニューのコピーを選んで…などという操作法をまどろっこしいと思ってる人がいるのも確かで、いうなれば、単なる好みと慣れの問題だと思います。

 それから、vi 嫌いの人にとっては不評の(^^;、「文字を入力するたび、いちいち [I] キーを押さなくてはいけない」ですが、vi 使いにとっては、コマンドモードで利用できる編集機能の豊富さが vi の魅力だったりするわけで…
 …っと、まあ、この件については、話がかみ合わず、平行線のままかも(^^;;

○ ウワサ3:vi は低機能だ

 これは全くの迷信またはデマで(^-^;、vi は、そこらへんのエディタより、ずっと高機能です。
 例を挙げると、

 ・複数ファイルの同時編集が可能
 ・26個のバッファが使える
 ・マクロ機能あり
 ・コマンドの実行結果を取り込み可能

 などの機能が vi には備わっています

 また、古い vi で、編集中のファイルに対して行った変更が、画面にすぐに反映されないことを指して「vi は低機能だ」と思ってる人もいますが、これは、1200 baud とか、それ以下の速度で UNIX にリモートログインして vi を使っていた時代のことを考えると、合理的な仕様です(^-^;

 もちろん、最近の vi では、ネットワーク速度の心配はないので、画面の書き換えはリアルタイムに行われます。


■ vi の設定

 ここでは、FreeBSD 付属の vi を使うことを前提に、vi の設定をしておきましよう。

 vi の設定ファイル:~/.exrc
set autoindent
set ruler
set showmode
set verbose
 設定ファイルの名前が .virc でなく、.exrc なことに注意してください(特に UNIX を知ってる方(^^;)。

 なお、これは、本当の vi 初心者用の設定で、vi をある程度使えるようになったら、「set autoindent」と「set showmode」だけ残して、あとは削除してしまっていいでしょう。

.exrc の解説

01行目:set autoindent
 オートインデント(自動字下げ)機能を有効にします。
 オートインデントというのは、行の最初にある空白の数を合わせてくれるという、ちょっと気の利いた機能です(^^)

 例で示すと、ファイルの編集中に、次のような画面で [Enter] を押すとき、

        if ( $?tcsh ) then
                bindkey "^W" backward-delete-word 
 ・オートインデントありで [Enter] を押した場合

    if ( $?tcsh ) then
        bindkey "^W" backward-delete-word
          ← 前の行の頭にある空白が引き継がれた
 ・オートインデントなしで [Enter] を押した場合

    if ( $?tcsh ) then
        bindkey "^W" backward-delete-word
  ← 設定しない場合は、こうなる
 …オートインデントありの方が、なにげに役立ちそうですよね(^^)

02行目:set ruler
 カーソル位置を画面に表示します

03行目:set showmode
 vi のモードを画面に表示します

04行目:set verbose
 些細なエラーでも、いちいち画面に表示するようにします


 vi を使って、この .exrc を作ってもいいのですが、ここではヒアテキストというシェルの機能を使って、.exrc を作ってみましょう。
 《 ホームディレクトリに移動 》
$ cd[Enter]
 《 .exrc が存在しないことを確認 》
$ ll[Enter] ←「ls -lA」を実行してもOK
-rw-r--r--  1 violet  violet   758 Nov 18 20:00 .cshrc
-rw-------  1 violet  violet  3992 Nov 18 20:00 .history
-rw-r--r--  1 violet  violet   258 Nov 18 20:00 .login
-rw-r--r--  1 violet  violet   167 Nov 18 20:00 .login_conf
-rw-------  1 violet  violet   379 Nov 18 20:00 .mail_aliases
-rw-r--r--  1 violet  violet   339 Nov 18 20:00 .mailrc
-rw-r--r--  1 violet  violet   773 Nov 18 20:00 .profile
-rw-------  1 violet  violet   284 Nov 18 20:00 .rhosts
-rw-r--r--  1 violet  violet   980 Nov 18 20:00 .shrc
-rw-r--r--  1 violet  violet  1085 Nov 18 20:00 .tcshrc
 《 ヒアテキストを使って、.exrc を作る 》
$ cat << _EOT_ > .exrc[Enter] ← 終端文字に「_EOT_」を指定して、ヒアテキスト開始
? set autoindent[Enter]
? set ruler[Enter]
? set showmode[Enter]
? set verbose[Enter]
? _EOT_[Enter] ← 終端文字「_EOT_」と完全一致したので、読み込み終わり
 《 .exrc の中身を確認 》
$ cat .exrc[Enter]
set autoindent
set ruler
set showmode
set verbose
$  
 ヒアテキストというのは、途中に改行を含んだ文字列を、一度にプログラムに渡すための機能です。
 具体的には「<<」の直後に置かれた終端文字(上の例では「_EOT_」)に完全一致する行が現れるまで、行を次々と読み込み、最後に指定されたプログラム(「cat」)へ、まとめてリダイレクトで渡します。

 上の例では、cat の出力先をさらにファイル(.exrc)にリダイレクトすることで、.exrc ファイルを作っています。


■ vi の操作を勉強する前に…

vi を使う前に、最低限、知っておいて欲しいこと(その1)

 vi には、大きく分けて、

 (1) コマンドモード
  文字入力以外の、カーソル移動、編集機能、検索機能が使えるモード。
  起動直後の vi は、このモードになっています

 (2) 文字入力モード
  文字を入力するためのモード。
  コマンドモードに戻るには、[Esc] キーを押します

 (3) コロンモード
  ファイルの操作など、やや特殊な機能を実行するためのモード。
  画面の一番下に、入力した文字がそのまま表示されるのが特徴

 という、3つのモードがあります。 このうち、基本となるのは「コマンドモード」です。

┌──────────────────────┐
│      起動:vi ファイル名       │
└──────────────────────┘
            ↓
┌────┐ i,A,o┌────┐ :  ┌────┐
│文字入力│←──│コマンド│──→│ コロン │
│ モード │──→│ モード │←──│ モード │
└────┘[Esc] └────┘   └────┘
                     ↓q
┌──────────────────────┐
│          終了          │
└──────────────────────┘
vi エディタのモード間の関係

vi を使う前に、最低限、知っておいて欲しいこと(その2)

 コマンドモードでの操作は、vi に対し英数字を入力することによって行います。

 言い換えると、[A] というキーを押すことによって vi が何かをするのではなく、「a」(あるいは「A」)という文字を入力する(送る)ことによって、vi がそれに応じた動作を行います。
 …こういう仕組みなので、vi のコマンドは大文字、小文字の区別をするので、注意してください。

 最近のエディタに慣れた人にとっては、思いも付かないような操作方法だと思うので、一応、先に書いておきます(^^;

操作の起点となる画面について

 以下の説明では、特に断りのない限り、以下の画面に対して操作を行った結果を載せます。
 なお、カーソルのある行だけしか変わらない編集コマンドの場合には、カーソル行のみを載せています。

Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.
Pa's wijze lynx bezag vroom het fikse aquaduct.

                 2,13                 *Command
操作の起点となる画面

 画面右下が vi のモード表示(この画面では、「Command」= コマンドモードになっています)、画面下の中央がカーソル位置の表示(現在、カーソルは2行目の13文字目=「brown」の「o」のところにあります)です。


■ vi の基本操作

 では、お待ちかね、FreeBSD 付属の vi を使って、vi の基本操作を説明します。
(ほかの vi を使った場合、画面表示などが多少違う場合もありますが、基本的な操作は同じです(^^;)。

 vi のコマンドは、操作を表す英単語に由来しているものが多いので、英単語と関連付けると覚えやすいかもしれません。

 とりあえず、これだけ知っていれば、vi を使った一通りのファイル編集は、不自由なくできるようになります(^^)

vi の起動

 ファイル名を引数にして、vi を起動します。
$ vi ファイル名[Enter]
 すでに存在するファイルを指定した場合は、そのファイルが読み込まれ、存在しないファイルを指定した場合には、新しいファイルが開かれます。

ファイルの保存と vi の終了

 コマンドモードで、キーボードから次のように文字を入力すると、それに応じた vi の機能が実行されます。

 :w[Enter] 
(write)
ファイルを上書き保存
 :q[Enter] 
(quite)
 vi の終了

 この2つの合わせワザとして、次の操作もよく使われます。

 :wq[Enter] ファイルを保存して vi を終了

 これを画面の例で示すと、

wq-1 キーボードから「:wq」を入力
Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.
Pa's wijze lynx bezag vroom het fikse aquaduct.

:wq
 (画面の最下行に「:wq」が表示される)

wq-2 [Enter] を押す
a.txt: 3 lines, 134 characters.
$  
 (vi が終了し、コマンドプロンプトに戻る)

 また、保存と終了のバリエーションとして、これらも覚えておくとよいでしょう。

 :w![Enter] 読み込み専用ファイルへの強制書き込み
 :q![Enter] ファイルを保存せずに vi を終了

カーソル移動

 まずは、基本的なカーソル移動から。

  h  カーソルを左に移動
  j  カーソルを下に移動
  k  カーソルを上に移動
  l  カーソルを右に移動

 最近の vi では、カーソルキー[PgUp][PgDn] キーが使えることが多いので、このカーソル移動法を知らない vi 使いも存在します(^^;;;

 もっと大きくカーソルを移動させたいときは、

nG
  (Go)  
ファイルのn 行目に移動
(行ジャンプ)

 を使います。

 例えば、「1G」でファイルの最初の行に、「50G」でファイルの50行目にカーソルが移動します。
 また、数字を省略して単に「G」とすると、ファイルの最終行に移動します。

 そのほかにも、あとで出てくる検索機能を使って、カーソルを移動することもできます。

文字入力モード

 コマンドモードから文字入力モードに移行するためには、

i
 (insert
カーソル位置から文字を入力
A
(Append)
行末の文字の右に文字を入力

 を使います。コマンドモードに戻るには、[Esc] キーを押します。

 画面の例を示すと、

i-1 キーボードから「i」を入力
The quick brown fox jumps over the lazy dog.

                 2,13                 *Insert
 (画面右下のモード表示が「Insert」に変わる)

i-2 続けてキーボードから「123」を入力
The quick br123own fox jumps over the lazy dog.

                 2,16                 *Insert
 (キーボードから、文字が入力できる)

i-3 [Esc] でコマンドモードに戻る
The quick br123own fox jumps over the lazy dog.

                 2,16                 *Command
 (画面右下のモード表示が「Command」に戻る)

A-1 キーボードから「A」を入力
The quick brown fox jumps over the lazy dog. 

                 2,45                 *Append
 (画面右下のモード表示が「Append」に変わる)

A-2 続けてキーボードから「123」を入力
The quick brown fox jumps over the lazy dog.123 

                 2,48                 *Append
 (キーボードから、文字が入力できる)

A-3 [Esc] でコマンドモードに戻る
The quick brown fox jumps over the lazy dog.123

                 2,47                 *Command
 (カーソルが1文字分 左に戻り、画面右下のモード表示が
 「Command」に戻る)

 また、行の途中に文字を入力するのではなく、新しい行を作ってそこに文字を入力したい場合には、

o
 (open
現在カーソルのある行の後ろに、
新しい行を追加
O 現在カーソルのある行の前に、
新しい行を追加

 を使います。コマンドモードに戻るには、やはり [Esc] キーを押します。

o-1 キーボードから「o」を入力
Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.
 
Pa's wijze lynx bezag vroom het fikse aquaduct.

                 3,1                  *Insert
 (カーソル行の下に、新しい行が挿入される)

O-1 キーボードから「O」を入力
Sylvia wagt quick den Jux bei Pforzheim.
 
The quick brown fox jumps over the lazy dog.
Pa's wijze lynx bezag vroom het fikse aquaduct.

                 2,1                  *Insert
 (カーソル行の上に、新しい行が挿入される)

文字編集

 文字入力以外の、文字編集コマンドです。

x
(?)
カーソル位置の文字を削除
(=[Del]
X カーソルの左の文字を削除
(=[BS]
r カーソル位置の文字を書き換え
(1文字上書き)
R
 (Replace
文字を上書き(上書きモード)

 それぞれ、例を示します。

x-1 キーボードから「x」を入力
The quick brwn fox jumps over the lazy dog.

                 2,13                 *Command
 (カーソルが乗っていた文字「o」が削除された)

X-1 キーボードから「X」を入力
The quick bown fox jumps over the lazy dog.

                 2,12                 *Command
 (カーソルの左にあった文字「r」が削除された)

r-1 キーボードから「r」を入力
The quick brown fox jumps over the lazy dog.

                 2,13                 *Replace
 (画面右下のモード表示が「Replace」に変わる)

r-2 続けてキーボードから「1」を入力
The quick br1wn fox jumps over the lazy dog.

                 2,13                 *Command
 (1文字入力すると、「Command」モードに戻る)

R-1 キーボードから「R」を入力
The quick brown fox jumps over the lazy dog.

                 2,13                 *Replace
 (画面右下のモード表示が「Replace」に変わる)

R-2 続けてキーボードから「123456」を入力
The quick br123456x jumps over the lazy dog.

                 2,19                 *Replace
 (キーボードから、文字が上書きで入力できる)

R-3 [Esc] でコマンドモードに戻る
The quick br123456x jumps over the lazy dog.

                 2,19                 *Command
 (画面右下のモード表示が「Command」に戻る)

行編集

 続いて、行単位の編集コマンドです。

  dd  
(delete)
カーソル行をバッファにコピーして削除
  yy  
(yank)
カーソル行をバッファにコピー
  p  
(paste)
バッファの内容を、現在カーソルのある行の
後ろに貼り付け
  P  
バッファの内容を、現在カーソルのある行の
前に貼り付け

 バッファとは、Windows でいう、クリップボードみたいなもの(ただし、vi 専用(^^;)です。

dd-1 キーボードから「dd」を入力
Sylvia wagt quick den Jux bei Pforzheim.
Pa's wijze lynx bezag vroom het fikse aquaduct.

                 2,1                  *Command
 メッセージなどは特に表示されませんが、削除された
 「The quick brown fox jumps over the lazy dog.
 は、バッファに保存されています。

yy-1 キーボードから「yy」を入力
Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.
Pa's wijze lynx bezag vroom het fikse aquaduct.

                 2,13                 *Command
 メッセージなどは特に表示されませんが、
 「The quick brown fox jumps over the lazy dog.
 が、バッファに保存されます。


 次に、貼り付けの効果をみるため、「New job: fix Mr. Gluck's hazy TV, PDQ!」と言う行が、バッファに保存されているとします。

p-1 キーボードから「p」を入力
Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.
New job: fix Mr. Gluck's hazy TV, PDQ!
Pa's wijze lynx bezag vroom het fikse aquaduct.

                 3,1                  *Command
 (カーソル行の下に、バッファの内容が挿入される)

P-1 キーボードから「P」を入力
Sylvia wagt quick den Jux bei Pforzheim.
New job: fix Mr. Gluck's hazy TV, PDQ!
The quick brown fox jumps over the lazy dog.
Pa's wijze lynx bezag vroom het fikse aquaduct.

                 2,1                  *Command
 (カーソル行の上に、バッファの内容が挿入される)

 また、上のものと少し系統が違いますが、知らないと迷う(^^;行の連結です。

J
 (Join
カーソルのある行と、次の行をつなげて
1行にする(行の連結)

J-1 キーボードから「J」を入力
Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.  Pa's wijze lynx bezag vroom het fikse aquaduct.

                 2,45                 *Command
 (カーソル行と下の行がつながって1行になった)

アンドゥ、繰り返し

 vi にも、ちゃんと、やり直し繰り返しのコマンドがあります(^^)

u
 (undo
ファイルに対し、最後に行った編集操作を
取り消す(アンドゥ)
U 現在のカーソル行に対する編集操作を
取り消す(行の回復)
.
(?)
直前に行った操作を繰り返す
(繰り返し)

 アンドゥできる回数(編集を過去にさかのぼれる回数)は、vi の実装により異なりますが、行の回復は(別の場所に待避しておいた「もとの行」を書き戻すだけなので)複数の編集操作をいちどにキャンセルすることができます。

 また、繰り返しコマンドは、2回以上キーを押すコマンド(例えば、行削除の「dd」など)を繰り返し実行するときに便利です(^^)

検索

 …個人的に、vi で一番気に入っている機能だったりします。
 こんなに検索がやりやすい(手間がかからない)エディタは、なかなかないですね~(^-^)

 /str[Enter] ファイルの先頭から最後に向かって
strを検索(順方向検索)
 ?str[Enter] ファイルの最後から先頭に向かって
strを検索(逆方向検索)
n
(next)
一番最後に設定された検索文字を
使って、検索を再実行
N 検索を、方向を逆にして再実行

/-1 キーボードから「/qu」を入力
Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.
Pa's wijze lynx bezag vroom het fikse aquaduct.

/qu
 (画面の最下行に「/qu」が表示される)

/-2 [Enter] を押す
Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.
Pa's wijze lynx bezag vroom het fikse aquaduct.

	                 3,40                 *Command
 (検索が実行され、「qu」のある位置に、カーソルが移動する)

/-3 キーボードから「n」を入力
Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.
Pa's wijze lynx bezag vroom het fikse aquaduct.

Search wrapped
 (次の「qu」がある位置に、カーソルが移動する。
 最下行の「Search wrapped」は、ファイルの先頭 ⇔ 最後を
 またいで検索が実行されました、という意味)

/-4 キーボードから「n」を入力
Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.
Pa's wijze lynx bezag vroom het fikse aquaduct.

                 2,5                  *Command
 (次の「qu」がある位置に、カーソルが移動する)

/-5 キーボードから「N」を入力
Sylvia wagt quick den Jux bei Pforzheim.
The quick brown fox jumps over the lazy dog.
Pa's wijze lynx bezag vroom het fikse aquaduct.

                 1,13                 *Command
 (今度は、逆方向に検索が実行される)

この続きは…

 また次回に(^^)/

|

« シングルユーザモードの忘備録 | トップページ | freebsd-update を使ってみる »

コメント

Greetings! I know this is kin oof offf topic but I was wondering which blog platform are you using for thks site? I'm getting fed up of Wordpress because I've had prblems with hackers and I'm looking at options for another platform. I would be great if you could point me in the direction of a good platform.

投稿: swing sets for sale | 2013/09/24 13:31

You completed certain fine points there. I did a search on the matter and found mainly people will agree with your blog.

投稿: supplies | 2013/10/28 15:57

Uueadri viaobaga:- Natural Erectile Dysfunction Treatment auowguey iseawead.

投稿: Natural Erectile Dysfunction Treatment | 2013/11/21 03:00

very good put up, i actually love this website, carry on it

投稿: great deals | 2013/11/21 03:29

advertising

投稿: stainless steel | 2013/12/01 09:39

fantastic points altogether, you just gained a new reader. What would you recommend in regards to your post that you made some days ago? Any positive?

投稿: http://myfakebuddies.com/blog/view/674451/innovative-circular-cooktop-for-the-home-video | 2013/12/15 03:57

Today, I went to the beach with my children. I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She put the shell to her ear and screamed. There was a hermit crab inside and it pinched her ear. She never wants to go back! LoL I know this is entirely off topic but I had to tell someone!

投稿: smartdevicesmarket.com | 2013/12/17 09:42

There is noticeably a bundle to learn about this. I assume you made sure good points in features also.

投稿: helphumanpoverty.com | 2013/12/19 05:08

Thanks for the good writeup. It if truth be told used to be a enjoyment account it. Glance complex to far introduced agreeable from you! By the way, how could we keep up a correspondence?

投稿: http://onlineantalya.net | 2013/12/25 14:09

Hello. fantastic job. I did not imagine this. This is a remarkable story. Thanks!

投稿: Margarita | 2013/12/28 06:16

Hi! I've been following your blog for a long time now and finally got the bravery to go ahead and give you a shout out from Atascocita Tx! Just wanted to mention keep up the excellent work!

投稿: induction cooktop | 2014/01/10 04:01

I appreciate, cause I found exactly what I was looking for. You have ended my 4 day long hunt! God Bless you man. Have a nice day. Bye

投稿: fittings | 2014/01/12 05:04

Hey! This is my first visit to your blog! We are a team of volunteers and starting a new initiative in a community in the same niche. Your blog provided us useful information to work on. You have done a outstanding job!

投稿: Reginald | 2014/01/17 08:38

you are truly a good webmaster. The website loading pace is incredible. It sort of feels that you are doing any unique trick. Also, The contents are masterwork. you've done a magnificent activity in this matter!

投稿: induction cooktop | 2014/01/24 08:49

We are a group of volunteers and opening a new scheme in our community. Your web site offered us with valuable info to work on. You have done a formidable job and our entire community will be grateful to you.

投稿: carpet cleaner reviews | 2014/01/25 04:44

Fantastic goods from you, man. I've consider your stuff previous to and you are just too wonderful. I really like what you have obtained here, certainly like what you are saying and the way in which through which you say it. You are making it enjoyable and you continue to care for to stay it wise. I can't wait to learn much more from you. This is actually a terrific website.

投稿: table saw | 2014/02/02 02:55

Thanks - Enjoyed this blog post, can you make it so I receive an email sent to me whenever you write a fresh article?

投稿: Bettie | 2014/02/15 05:52

We stumbled over here from a different web address and thought I may as well check things out. I like what I see so now i am following you. Look forward to looking into your web page yet again.

投稿: dog treadmill | 2014/02/17 05:05

My intention was to allow anyone to express himself or herself on any topic. Unlike honeybees, bumblebees do not store large amounts of honey. There's yet another fantastic gain for the using pure beeswax, it makes very minor smoke, therefore removing the risk of dark smoke points within the place, and enabling air within continue being refreshing.

投稿: honey bee hive | 2014/03/02 13:11

It is superior not to work with the new corporations. The trick to properly curing concrete is to slow the moisture from leaving the concrete. Having a dedicated firewood storage space with a rigid roof that can keep snow and rain from continuously soaking the wood is critical to protecting your investment and making sure the wood will be ready to burn when it gets chilly outside.

投稿: barn house plans | 2014/03/03 04:02

The eclipse is remarkable in the lands of the midnight sun. Say: The Spirit is by command of my Lord, and of knowledge ye have been vouchsafed but little" (Koran Al Israa 17:85). Men are from Mars, women are from Venus, and we all know this lesson.

投稿: venus factor promo | 2014/03/03 05:34

Jupiter will be accused of occupation of center position. If you have a regular bathroom scale (measures in pounds) in the classroom, the students could be encouraged to check their weight in pounds and then record this into a spreadsheet or a data sheet. Men are from Mars, women are from Venus, and we all know this lesson.

投稿: Where can i buy venus factor | 2014/03/06 12:33

Nobody expects you to do this alone and enlist outside support to help you stay on track and follow through with the goals. Start off designing your sleeping area and work out from there. There are different types of mattresses available; however it is always good to consult the attending physician once before purchasing an adjustable type bed for your beloved senior member of the house.

投稿: woodworking bed plans | 2014/03/06 16:52

' The windbelt works by harnessing the power of a fluttering strip of mylar. After you read the entire guide you can get a six hundred battery for free. But so far, the cost of generating electricity through solar and wind power has been too high for the average consumer.

投稿: wind generator motor | 2014/03/14 10:10

Thanks designed for sharing such a pleasant thinking, post is fastidious, thats why i have read it fully

投稿: where do you get raspberry ketones | 2014/03/15 17:46

Start to stand up, with heels digging into the ground to contract the butt and thigh muscles. As you continue to train the warrior's way, you will begin to find all the muscles and joints in your body working in harmony, giving you a strength and endurance you've probably never felt before. Tigerwood flooring displays a level of shade change with a noticeable darkening of the qualifications under the lines from a mild orangey tan to an in-depth reddish shaded darkish shade, which then in turn makes the striping less distinct and more simple.

投稿: office desk plans | 2014/03/15 20:09

You can buy complete bed frame kits here so it costs more than buying the bed mechanism alone. Someone who is shopping for this type of bookcase has several interesting features to consider. To undertake this project you can build your own units, utilize used book cases, or purchase low-cost bookcases.

投稿: built in bookcase plans | 2014/03/16 13:35

{However, before you start building you should check with the city in which you live to see if a permit is required|Soon it will likely be something everyone is performing, so are you ready for your brand new awesome screen saver|There is a little bit of history that is attached with the phone which says Marc Esslinger was the brain behind the first touch screen phone concept|Regardless of your desires in customized T-shirts, never spend more than you can afford|'

投稿: screen printing machines | 2014/03/16 23:34

There are things you should consider when buying a drill press. They are available as variable speed, one speed and reversible. Attach cable connectors to the power outlet of the fan, preferably connect the cable connector to the wires of the bathroom switch; and then fix in metal brackets to the attic joists for additional support.

投稿: bench drill press reviews | 2014/03/17 16:32

After about a year, your dragon will be almost full grown and you can cut back on the protein and just give it as an occasional treat. Many types of kids' furniture will come in a different shape like a car or plane. Moreover, be strong enough to say no when they want to buy something that is good to look but unsafe to use.

投稿: kids furniture canada | 2014/03/18 07:16

According to labor statistics, 66% of Nuclear Med Techs work in hospitals in charge of operating camera, and in mapping radioactive drugs in patients in order to create images for diagnostic evaluations. We played a game of Petonque (or as we would call it, bocci ball. By 2007, nearly a billion people around the world were thought to participate in various Earth Day activities at colleges, universities, schools, libraries, museums, and parks.

投稿: garden arbor photos | 2014/03/18 11:53

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: vi を使おう(基本編):

« シングルユーザモードの忘備録 | トップページ | freebsd-update を使ってみる »