Vim日常操作[转贴]


motions,scrolling--カーソルの位置付け,スクロール,ページめくり
motions--カーソル位置
カーソル位置(motions)--コマンドの選択
コマンド機能
$
現在の行の末尾
0
現在の行の先頭
gg
ファイルヘッダ
G
ファイルの最後
10gg 10G
10行目にジャンプ
``
これは2つのback quoteで、キーボードの上でESCの下のキーです.カーソルがジャンプする前の位置に戻る
H
画面の最初の行にジャンプ
M
画面の中央行にジャンプ
L
画面の最後の行にジャンプ
gk
画面に表示される前の行
gj
画面に表示される次の行
 
Vimのコマンドモードでは、カーソルを動かすコマンドが多く、便利さをもたらします.最もよく使われるのは0と$で、カーソルを行頭と行末に配置します.
よく使われるのはGがファイルの最後にカーソルを合わせ、ggがファイルヘッダに戻ることです.この2つのコマンドの前に数字を加えると、その行に行けます.例えば、10 ggは10行目に連れて行きます.
``の役割は、カーソルがジャンプする前の位置に戻ることです.たとえば、カーソルが10行目にあると仮定し、Gを押してファイルの最後に行き、``を押すと10行目に戻ることができます.
kとjがうまく使えない場合があることに気づいたら(画面の数行を越えて押す)、gkとgjを使ってみてください.
 
scrolling--画面をスクロールしてページをめくる
スクロールとページめくり--コマンドの選択
コマンド機能
zt zリターン
カーソルのある行を画面の先頭に移動
z.
カーソルの行を画面の中央に移動
zb
カーソルのある行を画面下部に移動
CTRL-E
1行下にスクロール(ドキュメントを下に読む)
CTRL-Y
1行上へスクロール(ドキュメントを上へ読む)
CTRL-F
前へページをめくる
CTRL-B
ページをめくる
カーソル位置コマンドは、ドキュメントの編集に便利ですが、スクロール画面とページめくりコマンドは、ドキュメントを読むときに快適になります.
以下のキーマッピングを強くお勧めします.
:map <Space> <C-F>
:map <S-Space> <C-B>
:map <CR> <C-E>
:map <UP> <C-Y>
:map <DOWN> <C-E>

特に最初のマッピング:mapは、設定するとスペースキーでページをめくることができ、便利です.他のいくつかのマッピングの役割は、Shift-spaceで上へページをめくり、戻るキーを押して下へスクロールし、上下矢印を押して上へスクロールすることです.
 
 
yank,put,delete,registers--コピー、貼り付け、切り取り
コピー、貼り付け、切り取り--コマンドの選択
コマンド機能
dd
現在の行の削除
yy
現在の行のコピー
d$
カーソル位置から行末までの内容を削除
yt<
カーソル位置から次の「<」までの内容をコピーします(また、ct<カーソルから「<」までの内容を変更することは、HTML、XMLファイルを編集する際に便利です)
「xレプリケーション
コピー内容をレジスタxに入れる(xは26文字の英字の1つで、大文字と小文字を区別できる)
"xp
レジスタxの内容を貼り付ける
"+
特殊レジスタ、読み書きシステムクリップボード
:reg
各レジスタの内容を表示
コピー、貼り付け、切り取りは、ドキュメントを編集するときによく使われる技です.Vimでは削除されたすべての内容がVimのレジスタ(registers)に入るので、削除操作を切り取り操作と見なすことができます.
x,dd,yyはよく使われるコマンドですが、ここではあまり言いません.複数行のコンテンツをコピーまたは切り取るには、ddまたはyyの前に数字を付けることができ、例えば5 yyで5行をコピーすることができる.
しかし、ビジュアルモード(Visual mode)を使用してコピーカット操作を行うのが好きです.まずvまたはVを押してビジュアルモードに入り、カーソルを移動してコピーまたはカットする内容を選択し、最後にdを押してカットまたはyを押してコピーします.
コピーする前に、二重引用符の後にアルファベットを付けるレジスタを指定できます.たとえば、「aはレジスタaを指定し、BはレジスタBを指定します.」だから、「ayyは現在の行をレジスタaに入れて、後で」apでレジスタaの内容を貼り付けることができます.レジスタに何が入っているか分からない場合は、:regを使用して表示できます.
Vimには、システムクリップボードの内容である特殊なレジスタ「+」が用意されています.例えば、firefoxでCtrl-Cでコピーした内容が「+」に表示され、Vimで「+pで貼り付けられます.Vimでコピーやカットした内容を「+」に入れ、他のGUIプログラムでCtrl-Vで貼り付けられます.
search,substitute-検索、置換(未完了)
検索、置換(search,substitute)--コマンドの選択
コマンド機能
*
カーソルがある単語を検索します(ここでは空白文字または句読点で区切られた文字列を指します).
:set ignorecase
大文字と小文字を区別しない
:set ignorecase smartcase
大文字と小文字を自動的に区別します.入力はすべて小文字で大文字と小文字を区別せず、入力には大文字があれば大文字と小文字を区別します.
:set hlsearch
ハイライト表示一致文字列を開く:nohlsearchは一時的にハイライトをオフにし、次回の検索時に自動的にハイライトします.
:set nohlsearch
一致文字列のハイライト表示をオフにする
Vimで検索・置換した例を挙げてVimの強さを説明するのが好きで、この機能がどれほど重要かを見ることができます.検索、置換の核心内容は実は正規表現(regular expression)であり、その機能は非常に強いが、把握しにくい.幸いなことに、私たちは正規表現を完全にマスターしなくてもそれを使うことができ、簡単な毛皮を学ぶだけで、無限に使われています.
Vimが持参したヘルプドキュメント(:help 03.9)では、
The Vim editor uses regular expressions to specify what to search for. Regular expressions are an extremely powerful and compact way to specify a search pattern. Unfortunately, this power comes at a price, because regular expressions are a bit tricky to specify.
現在、私はわずかなテクニックしか収集していません.これからVimを使う過程で勉強し続け、増え続けます.
初心者はまず勉強することをお勧めします:help 03.8、:help 03.9、更に勉強します:help usr_27 .
次にいくつかの例を説明します.
/http://f*%&は、通常のウェブサイト(?&などの記号を含まないウェブサイト)と一致するため、http://kikistar.comhttp://kikistar.com .
サイトに含まれている場合?&等記号、例えばhttp://www.newsmth.net/bbscon.php?bid=731&id=16603,正規表現を少し修正すればよい::s%http://(?|&|f)*%&
buffers--マルチファイル操作
「マルチファイルアクション」(buffers)--コマンドの選択
コマンド機能
:buffers :ls
bufferリストの表示
:bn
次のbufferに移動
:bp
前のbufferに移動
:b 3
3番のbufferに移動
:b index.html
indexという名前に移動します.htmlのbuffer
:sav
名前を付けて保存
:set hidden
bufferの切り替え時に現在のbufferを保存するプロンプトは表示されません
CTRL-G
ファイル名、合計行数、変更後に保存されていないなど、現在のbufferステータス情報を表示します.
Vimでは複数のファイルを同時に編集でき、各ファイルに1つのbufferが使用されます.
:buffersと:lsの役割は同じで、次のようなリストが得られます.
:ls
  1      "doc2xhtml.xsl"                line 1
  2 #    "document.css"                 line 1
  3 %a   "vimtips.xml"                  line 32

各buffer間でジャンプするには、b 1から番号が1のbufferを用いるもよいし、b documentを用いるもよい.cssはdocumentという名前に移動します.cssのbuffer.このコマンドを入力するとbuffer名がTABキーで自動的に保全され便利です.他にも2つの私の好きなコマンドがあります.
:bn		     buffer
:bp		     buffer

buffer間でジャンプすると、現在のbufferコンテンツが編集されても保存されていない場合、Vimは先に保存するように要求します.保存しない場合は、コマンドの後に追加する必要があります!強引にジャンプする.
buffer間のジャンプをより便利にするコマンドがあります.
 :set hidden 

このように設定すると、buffer間をジャンプして保存したり、追加したりする必要はありません!しました.しかし、この設定を使って使用:q!時はもっと気をつけなければならない.私の提案は、使いました:set hiddenは使いません:q!、使い慣れた:q!使用しないでください:set hidden、データは永遠に一時的な便利さよりもっと重要です.
 
 
参考資料:
  • http://www.rayninfo.co.uk/vimtips.html
  • http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
  • http://www.newsmth.net/bbscon.php?bid=731&id=16603

  • 補足:http://www.ibm.com/developerworks/cn/aix/library/au-speakingunix_vim/【操作の詳細】
             http://hi.baidu.com/smilewwh/blog/item/2fd27baf445106fffaed5057.html[パラメータの説明]