技術の犬小屋

Webプログラミングを餌に生きる犬のメモ帳

Vimでファイル同士の差分比較やマージを行う方法を勉強したのでメモしておく。どうして専用ソフトではなく,Vimで行うのか,ということについてだが,Vimは環境に依存しないので,この方法さえ覚えてしまえば,どんな環境でも差分比較・マージが可能というメリットがあるためだ。
 

Vimで2つのファイルの差分を比較・表示する

Vimでは,diffsplitコマンドを使うことで,現在Vimで開いているファイルと,指定したファイルとの差分の部分をハイライトして,比較・表示することができる。この状態を「diffモード」と呼ぶ。
コマンドの書式は以下のようになる。
 

:vertical diffsplit 差分を取りたいファイル

 
例として,smokydog.txtというテキストファイルとの差分を取りたい場合は以下のようになる。
 

:vertical diffsplit smokydog.txt

 
コマンドの詳細について解説すると,verticalで画面を2つに分割し,diffsplitで差分の比較・表示を行っている。
 

2つのファイルの差分をマージする

Vimでは,「diffモード」の状態で,2つのファイルの差分のマージを行うこともできる。もう一方のファイルから差分を取り込むには,ハイライトにカーソルを合わせ,ノーマルモードでdoを入力する。逆に,もう一方のファイルに差分を取り込ませるにはdpを入力する。
 
doは「diff obtain」,dpは「diff put」と覚える。
 

ファイル間で違いがある場所へカーソルを移動する

Vimでは,「diffモード」の状態でファイル間で違いがある場所へ,瞬時にカーソルを移動させることができる。差分を下方向に検索してカーソルを移動するには,ノーマルモードで]cを入力する。逆に,差分を上方向に検索してカーソルを移動するには,[cを入力する。
 
 
以上
 
 
参考
2つのテキストファイルの差分をマージする 名無しのvim使い
2つのテキストファイルの差分を取る 名無しのvim使い

Linuxにおけるファイルの種類について arrow-right
Next post

arrow-left ApacheでBasic認証を設定する方法
Previous post

コメントを残す