vim チュートリアル
vimを使い始める
サーチ…
備考
Vim(または「Vi IMproved」)は、コンソールベースのマルチモード( モーダル )テキストエディタです。これは広く使われており、すべてのUnix、Linux、Apple OS Xシステムでデフォルトで利用可能です。 Vimは、活発なコミュニティと幅広いユーザー層を持っています。エディタはすべての一般的なプログラミング言語をサポートしており、多くのプラグインが機能を拡張することができます。
開発者は、速度、多くの設定オプション、および強力なエクスプレッションベースの編集のためのエディタが好きです。 「コマンド」モードでは、エディタはキーボードコマンドによって制御されるので、ユーザはGUIまたはマウスポインタに気を取られません。
Vimは1970年代に作成された初期のUnix "vi"エディタをベースにしており、1991年以来、絶え間なく開発されています。マクロとプラグインを使用すると、エディタは現代のIDEのほとんどの機能を提供します。スクリプト言語(vimscript)と正規表現を使用して大量のテキストを処理することも独自に可能です。
主なトピック:
バージョン
バージョン | 発売日 |
---|---|
8.0 | 2016-09-12 |
7.4 | 2013年8月10日 |
7.3 | 2010-08-15 |
7.2 | 2008年8月9日 |
7.1 | 2007-05-12 |
7.0 | 2006-05-07 |
6.0 | 2001年9月26日 |
5.0 | 1998-02-19 |
4.0 | 1996-05-29 |
3.0 | 1994-08-12 |
2.0 | 1993-12-14 |
1.14 | 1991-11-02 |
インストール
マシン上のVimは、クリップボードのサポート、構文の強調表示、プラグインの使用などの便利な機能がない「小さな」ビルドになる可能性が非常に高いです。
設定ファイルを素早く編集することが必要な場合には問題ありませんが、Vimをメインエディタにしようとするとすぐにいくつかの壁にヒットします。
したがって、一般的に完全なビルドをインストールすることをお勧めします。
Linux / BSDへのインストール
これらのシステムでは、GUIを起動するためのgvim
コマンドとTUIを起動するためのvim
コマンドの両方が付属しているGUIバージョンをインストールするだけです。
アーチとアーチベースのディストリビューション
$ sudo pacman -R vim
$ sudo pacman -S gvim
DebianとDebianベースのディストリビューション
$ sudo apt-get update
$ sudo apt-get install vim-gtk
GentooとGentooベースのディストリビューション
$ sudo emerge --sync
$ sudo emerge app-editors/gvim
RedHatおよびRedHatベースのディストリビューション
$ sudo yum check-update
$ sudo yum install vim-X11
フェドラ
$ sudo dnf check-update
$ sudo dnf install vim-X11
SlackwareとSlackwareベースのディストリビューション
$ sudo slackpkg update
$ sudo slackpkg install-new vim-gvim
OpenBSDおよびOpenBSDベースのディストリビューション
$ sudo pkg_add vim-x11
FreeBSDとFreeBSDベースのディストリビューション
$ sudo pkg install editors/vim
Mac OS Xでのインストール
この戦略はMac OS Xに似ています:GUIバージョンをインストールして、GUIとTUIの両方を取得します。最終的には、次のことができるはずです。
- FinderでMacVimアイコンをダブルクリックし、
- DockのMacVimアイコンをクリックし、
- シェルで
$ mvim
してMacVim GUIを開き、 - シェルで
$ mvim -v
してMacVim TUIを開きます。
通常のインストール
他のMac OS Xアプリケーションと同様に、公式のスナップショットをダウンロードしてインストールしてください。
MacVimにバンドルされているmvim
スクリプトを$PATH
どこかに置きmvim
。
パッケージマネージャー
MacPorts:$ sudo port selfupdate
$ sudo port install macvim
ホームブリュー: $ brew install macvim
MacVimをデフォルトのコンソールVimにするには:
$ brew install macvim --with-override-system-vim
Windowsへのインストール
WindowsシステムにはデフォルトでVimはありません。 VimをTuxprojectサイトからダウンロードしてインストールすると、より最新のビルドや完全なビルドができます。また、公式のVimサイトからVimをダウンロードしてインストールすることもできます。
チョコレート
> choco install vim
ソースからVimを構築する
上記の方法があなたのニーズに合っていない場合は、必要なオプションだけで Vimを自分で構築することは可能です。
このトピックは、それ自身のセクションで議論されます(現在ドラフト中です)。
Vimを終了する
Vimを終了するには、まずEscを押して ノーマルモードになっていることを確認してください。
-
:q
Enter (保存していない変更がある場合は終了しません - quit)
変更を破棄して Vimを終了するには:
-
:q!
exitを強制して変更を破棄する場合は入力してください (:quit!
と混同しないように:!q
)、 -
ZQ
は次のようなショートカットです:q!
、 -
:cq
quitを入力してエラーを返します(コンパイラはこのファイルを再コンパイルしないようにすべての変更を破棄します)
変更を保存して Vimを終了するには:
-
:wq
Enter (:write
と:quit
省略形)、 -
:x
Enter (:wq
と同じですが、ファイルが変更されていない場合は書き込みません)、 -
ZZ
は次のようなショートカットです:x
(ワークスペースを保存してエディタを終了する)、 -
:[range]wq!
Enter ([範囲]に行を書き込む)
(複数のウィンドウやタブでも)複数のバッファを一度に閉じるには、上記のコマンド ( :
始まるコマンド)のいずれかに文字a
を追加します。たとえば、すべてのウィンドウを作成して終了するには、次のようにします。
-
:wqa
Enterまたは -
:xa
Enter - 変更されたすべてのバッファを書き込み、Vimを終了します。読み込み専用であるか、別の理由で書き込めないファイル名のないバッファがある場合、Vimは終了しません -
:xa!
Enter - 変更されたすべてのバッファを読み込み専用バッファに書き出し、Vimを終了します。バッファがファイル名を持たないか、別の理由で書き込めない場合、Vimは終了しません -
:qa
Enter - 終了しようとしますが、未保存のファイルがあれば停止します。 -
:qa!
Enter - 保存せずに終了する (保存されていないファイルの変更を破棄する)
ファイルを指定せずにVimを開いていて、終了する前にそのファイルを保存したい場合は、 E32: No file name
メッセージが表示されます。ファイルを保存して、次の方法で終了できます。
-
:wq filename
またはを入力します。 -
:x filename
入力
説明:
:キーストロークは実際にコマンドモードを開きます。コマンドq
は、 exit
write
とx
のquit
、 w
省略形:quit
、 :write
と:exit
入力することもできます)。始まらないショートカット:
などZZ
とZQ
ノーマルモードキーのマッピングを参照してください。それらをショートカットと考えることができます。
!
キーストロークは、強制的にコマンドの最後で使用されることがあります。この場合、 :q!
の場合に変更を破棄できます:q!
。配置!
コマンドの冒頭には別の意味があります。たとえば、間違って入力することができます:!q
代わりに:q!
vimは127エラーで終了します。
これを覚えやすい簡単な方法は考えることです!
何かを実行することを主張する方法として。ちょうどあなたが書くときのように:「私はやめたい!
対話型のVimチュートリアル(vimtutorなど)
vimtutor
は、テキスト編集の最も基本的な側面を扱うインタラクティブなチュートリアルです。
UNIX系システムでは、次の方法でチュートリアルを開始できます。
$ vimtutor
Windowsでは、 "Vim tutor"は、Windowsメニューの "すべてのプログラム"の "Vim 7.x"ディレクトリにあります。
詳細は:help vimtutor
を参照してください。
その他のインタラクティブなチュートリアルには、次のブラウザベースのチュートリアルがあります
- Vim Adventures - ウェブ上で利用可能なvimtutorの対話型ゲームバージョン。最初の数レベルだけが無料です。
- Open Vim - 基本的なコマンドにフィードバックを与える対話型端末です。
- Vim Genius - マクロとarglistを含む中間レッスンと上級レッスンを含むもう1つの対話型端末。
Vimで編集した読み取り専用ファイルを保存する
場合によっては、 sudo
使わずにVimで書くことが許可されていないファイルを開くことがあります。
このコマンドを使用して、Vimで編集した読み取り専用ファイルを保存します。
:w !sudo tee > /dev/null %
あなたはマップすることができます:w!!
あなたの.vimrc
:
cmap w!! w !sudo tee > /dev/null %
画像のようにプロンプトが表示されます。
O
を押すとファイルが保存されます。 vi / vimでさらに編集や読み込みを行うために開いたままにしておき、通常次のように入力することで終了できます:q!
ファイルは読み取り専用として開いているためです。
コマンドの説明
:w ............................ isn't modifying your file in this case,
............................ but sends the current buffer contents to
............................ a substituted shell command
!sudo ...................... call the shell 'sudo' command
tee .................. the output of the vi/vim write command is redirected
using the 'tee' command
> /dev/null ...... throws away the standard output, since we don't need
to pass it to other commands
% .... expands to the path of the current file
ソース:
vimを一時停止する
コマンドラインからvim
を使用すると、 vim
を停止して、実際にvim
を終了させることなくプロンプトに戻ることができます。したがって、後で同じプロンプトからvim
セッションを取り戻すことができます。
ノーマルモードの場合(存在しない場合はEscキーを押してください)、次のいずれかのコマンドを発行します。
:st
enter
:sus
enter
:stop
enter enter
:suspend
入力
代わりに、一部のシステムでは、 標準モードまたはビジュアルモードのときにCtrl + Z キーを押しても同じ効果が得られます。
注: autowrite
が設定されている場合、変更とファイル名のバッファが書き出されます。 a !
追加!
避けるために入る前に 、例えば。 :st!
入力してください 。
後であなたがあなたのvim
セッションに戻りたいときは、他の仕事を中断していなければ、以下を発行するとvimがフォアグラウンドジョブとして復元されます。
fg
enter
さもなければあなたのvim
セッションのジョブIDを見つけることが必要です。 jobs
入力してから、一致するジョブをfg %[job ID]
入力します。 fg %1
入力してください 。
基本
インタラクティブなvimチュートリアルを必要なだけ何度でも実行して、基本に慣れるようにします。
Vimには、 通常モード 、 挿入モード 、 コマンドラインモードなどのいくつかのモードがあります 。
ノーマルモードは、テキストを編集してナビゲートするモードです。このモードでは、 h
、 j
、 k
、 l
はカーソルキー←
、 ↓
、 ↑
、 →
対応します。ノーマルモードのほとんどのコマンドには、 "count"という接頭辞を付けることができます。例えば、 3j
は3行下に移動します。
挿入モードは、テキストを直接挿入するモードです。このモードでは、vimは他のより単純なテキストエディタに似ています。インサートモードにするには、 i
をノーマルモードで押します。終了するには<ESC>
(エスケープキー)を押します。
コマンドラインモードは、ファイルの保存やvimの終了など、より複雑なコマンドを実行するためのモードです。プレス:
コマンドラインモードを開始します。このモードを終了するには、 <ESC>
押すこともできます。変更をファイルに保存するには、 :w
(または:write
)を使用します。変更を保存せずにvimを終了するには、次のようにします:q!
(または:quit!
)。
これらはvimでより有用なコマンドのいくつかです:
コマンド | 説明 |
---|---|
i | (挿入)は現在のカーソル位置の前に挿入モードに入ります |
I | 現在の行の最初の印字可能文字の前に挿入モードに入ります |
a | (追加)現在のカーソル位置の後に挿入モードに入ります |
A | 現在の行の最後に印字可能な文字の後に挿入モードに入ります |
x | 現在のカーソル位置の文字を削除する |
X | 左の文字を現在のカーソル位置まで削除する |
w | 次の単語に移動する |
b | 前の単語に移動する |
0 | 行頭に移動する |
$ | 行末に移動する |
r | 置換 - 1文字の置換モードに入ります。次の文字を入力すると、カーソルの下の文字が置き換えられます。 |
R | 置換モードを無期限に入力します。入力したすべての文字がカーソルの下の文字を置き換え、カーソルを1つ進めます。 |
s | 置換 - 現在のカーソル位置にある文字を削除し、挿入モードに入ります |
S | 現在カーソルがある現在の行を削除し、挿入モードにする |
<Esc> 、 <Cc> | 挿入モードを終了して通常モードに戻る |
u | 元に戻す |
<Cr> | やり直す |
dd 、 dw 、 dl 、 d$ | 現在の行をカーソルから次の単語に、または文字を現在の行の現在の行の終わりまでそれぞれ切り捨てます。注意: D はd$ |
cc 、 cw 、 cl | 現在の行をカーソルから次の単語または文字にそれぞれ変更する |
yy 、 yw 、 yl 、 y$ | 現在の行をカーソルから次の単語に、または文字を現在の行の終わりまでそれぞれヤンク(コピー)する |
p 、 P | 現在位置の後、または前にそれぞれput( "paste")します。 |
o 、 O | 現在の行の前後に新しい空行を作成し、挿入モードに入る |
:w | 現在のバッファをディスクに書き込む |
:q! 、 ZQ | 書かずに辞める |
:x 、 :wq 、 ZZ | 書いてやめる |
:help | ヘルプファイルでウィンドウを開く |
:help {subject} | 特定の科目のヘルプを表示する |
qz | 録音を終了するにはz 、録音を終了するにはq 、録音を終了するにはq を@z します。 z は任意の文字を使用できますq は便宜のためによく使用されます。続きを読む: マクロ |
クラッシュの場合の対処方法
Vimはすべての保存されていない編集をスワップファイルに保存します。このファイルは、変更が保存されると削除されます。スワップファイルの名前は、通常、編集するファイルの名前の前にaを付けたもの.
.swp
接尾辞を付けてください( :sw
見ることができます)。
そのため、vimプロセスが終了して編集内容を保存する前に、コマンドラインオプション-r
を使用して、スワップファイルに含まれている変更を現在のファイルに適用して作業を復旧することができます。たとえば、 myFile
が編集していたファイルの場合は、次のようにします。
$ vi -r myFile
コミットされていない変更を回復します。
スワップファイルが存在する場合、vimはリカバリオプションを求めるプロンプトを表示するはずです
$ vi myFile
E325: ATTENTION
Found a swap file by the name ".myFile.swp"
...
Swap file ".myFile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
(R)ecoverを選択した場合、 swp
ファイルからの変更が適用されますが、スワップファイルは削除されませんので、リカバリに満足すれば、後でスワップファイルを削除することを忘れないでください。