2017-04

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Vim講座1 印刷用

Vim講座1 - think and error
ここからもってきたものです。オリジナルはそのサイトにあります。
見易さはそのサイトのほうが見やすい

概要

  • モード概念
  • カーソル移動
  • インサートモードへ
  • 保存

////////////基礎終了////////////

  • ビジュアルモードとコピペ
  • ジャンプ
  • 置換
  • Undo,Redo[***IMPORTANT***]
  • 一文字置換

こうやってみると長そうだね.




モード概念

モードは4つ。ノーマルモード、インサートモード、ビジュアルモード、コマンドモード。

ノーマルモード起動したときはこのモード。移動とかコピペとか行う。このモードに戻るには常にESC。
インサートモード挿入モード。このモードでないと文字が打てない。
ビジュアルモードいわゆる選択モード。選択範囲をコピペとかするわけだ。
コマンドモード画面下にある1行に入り込むモード。保存や終了をはじめ、様々なコマンドを打てる。

モードは主にノーマルモードとインサートモードを使う。

モードの切り替え方は以下。他にも切り替え方はあるが、省略した。

f:id:ruicc:20081116194531p:image

見ればすぐわかるがNormalじゃなくてNomalになってる。typoだ。気にすんな。それはともかく、見れば、Normalモードへの切り替えは常にESCである。それゆえ、Vimを使うものはESCキーボードの手元へ持ってこなければならない。無変換あたりに割り当てるといい。

//C-[またはC-cもESC相当として使えるようです。




カーソル移動(Normal mode, Visual mode)

ノーマルモード、ビジュアルモードでの移動は次の通り。

コマンドモード、インサートモードでの移動はカーソルキーのみ。

j
k
h
l

なんでjkl;じゃないかといったら、vimでは上下移動が重要であるからだ。だから一番おしやすいj,kに割り当てている。

f:id:ruicc:20081116201514p:image




インサートモードへ(Normal mode)

インサートモードへの切り替えは、まず4つ覚えるべきだ。i,I,a,Aの4つ。

iinsert modeへ
aカーソルの右からinsert modeへ
I行頭へ移動してinsert modeへ
A行末へ移動してinsert modeへ

なんとインサートモードへの切り替えと移動を兼ねているわけだ。だから左右より上下の移動のほうが重要になる。

絵で表すとこんな感じ。やはり絵的に見ないと覚えにくいからな。

f:id:ruicc:20081116201114p:image

そのうち文頭にI,文末にAが浮かんで見えること請け合いだ。




保存(Normal mode, Command line mode)

保存ができなければ意味がない。

保存、上書き、終了には:(コロン)を押してコマンドモードへ移行してから行う。

だけど、まずはコロンを含めたコマンドだと覚えたほうがいい。


:w上書き保存
:w xxx.txtxxx.txtと名前を付けて保存
:qvim終了
:wq上書き保存して終了
:q!強制終了
:w!強制保存
:wq!強制保存後、終了
ZZ上書き保存して終了(コロンはいらない, :wqと同じ)
ZQ保存せずに終了(コロンいらない, :qと同じ)

! は強制を意味する。rubyのメソッドに使われる ! と同じような意味。

恐らくまつもとゆきひろさんはvim使いなんですよたぶん違うけど。




ビジュアルモードとコピペ(Normal mode, Visual mode)

ここまでで一応エディタとして機能するが、しかしお粗末すぎる。

コピペとか削除とかできないと。そのためにはまずはビジュアルモードを理解せねば。

vビジュアル(選択)モードへ
V行選択モードへ
Ctrl+v矩形選択モードへ

ビジュアルモードに入ったならば、hjkl等で移動。

こんな感じ。

f:id:ruicc:20081118223448j:image

見ればわかるが,矩形選択オススメ.


移動して選択したならば、基本はコピペ。

y選択範囲をコピー。yankの頭文字。
d選択範囲を削除。deleteの頭文字。
pvimのクリップボードの中身をペースト。pasteの頭文字。

vimに削除はない。削除と書いてあるものは、実質Cut(削除してクリップボードに保存)と同じだ。

ビジュアルモードを使わないコピペコマンドは以下。

x一文字削除
dd一行削除
yy一行コピー
Dカーソル以降削除
p行のとき(dd,yyの後のペースト)は現在の行と次の行の間にペースト。範囲のときはカーソルの右側にペーストする。

さらに、これはコピペコマンドに限らないのだが、vimではコマンドの前に数字を打つと、その回数分だけコマンドが繰り返される。

つまり、

3dd

と打つと、そのカーソルのある行から3行が削除され、クリップボードに保存される。便利。


ジャンプ(Normal mode, Visual mode)

移動を一々hjklでやっていたら日が暮れてしまう。では効率のよい移動方法を。

まずは検索によるジャンプ。

/xxxxxxを検索する
*カーソルのある場所の文字列を検索

検索するとマッチした文字列がハイライトされる。そこに飛びたいとき。

n検索にマッチした、次の文字列へ
N検索にマッチした、前の文字列へ

これだけでかなり違う。/の後には正規表現も使える。


他の主につかう移動コマンド。

w次の単語の先頭にジャンプ。wordの頭文字。
b前の単語の先頭にジャンプ。backward wordの頭文字多分。
^文頭にジャンプ
$文末にジャンプ
Ctrl+bPageUp。Backwardの頭文字
Ctrl+fPageDown。Forwardの頭文字
Ctrl+u半ページUp。Upの頭文字
Ctrl+d半ページDown。Downの頭文字
ggでファイルの初めにジャンプ
Gファイルの終わりにジャンプ

場所に関するジャンプまとめ。

f:id:ruicc:20081116213313p:image




置換(Normal mode)

置換くらいできないと。

:s/aaa/bbb/gカーソルのある行のaaaをbbbに置換する。
:%s/aaa/bbb/g文章全体のaaaをbbbに置換する。
(範囲選択後に):s/aaa/bbb/g選択範囲のaaaをbbbに置換する。

基本はこれ。:の後の%は文章全体を意味する。正規表現使用可能。ただ、なぜかvimの正規表現は少しだけ違うので注意しなければならない。理由不明。



Undo, Redo(Normal mode)

Vimは未知のコマンドが沢山あるため、変なところを押してしまったら直せるようにする必要がある。

Vimの習得上、恐らく最も重要なコマンド。

uUndo。保存コマンド数は忘れた。1000位は余裕のはず。
Ctrl+rRedo

何故 u に対し Ctrl+r という非対称な形をとっているのか。それはrに便利なコマンドがあるためだ。




一文字置換(Normal mode)

文字を変更するのにインサートモードに入らなければならないVimにとって,1文字置換は重要.

r一文字置換。rxと押すと、カーソル上の文字をxに置き換える。replaceの頭文字。
R連続の一文字置換。Shift+rを押した後に文字を入力していくと、入力数に応じてその後の文字が置換される




基本の終わり

おそらく慣れるのに1週間くらいかかると思う。

しかし慣れた後は快適だ。

Emacsは機能がたくさんあって便利だけど、テキストエディタとして見たらキーが覚えにくて使いづらい。vimは操作感が好きだね。


ついでにこれおいとく。

vimperatorとはfirefoxアドオン。vimのようにブラウジングができるようになる。

vimに慣れたらどうぞ。


あとfiler(Dyna, Afx, DF等)をvim仕様にするとこれまた便利。



//なんかしらんけど絵が人気らしいんでVisualモードの絵を描いてみました.

//Vim講座2として書いておいたUndo,Redoと1文字置換を加えました.

//あとでVim講座2をまた別に書きます.

//Vim講座1概要を加えました.

//Vim講座3を書きました。

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

http://bittorrentlove.blog58.fc2.com/tb.php/437-e382c86c
この記事にトラックバックする(FC2ブログユーザー)

«前のページ  | HOME |  次のページ»

トラックバックは内容に関連性があればOKです。リンクを張らなくてもかまいません
FC2 Blog Rankingへ投票現在UNIXランキング一位
人気blogランキングへ現在TOP10

プロフィール

fdsafdsa

Author:fdsafdsa


ページランク Valid CSS!
人気ブログランキング - BitTorrent と フリーソフト や OS を広めるブログ

ブログ内検索

カテゴリー

フリーエリア

最近の記事

最近のコメント

リンク

このブログをリンクに追加する

月別アーカイブ

ブロとも申請フォーム

この人とブロともになる

Powered By FC2ブログ

ブログやるならFC2ブログ



アクセスランキング

最近のトラックバック

RSSフィード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。