J-Linuxer

仕事や趣味で覚えた技術の覚書とエンジニアの心を叫びを不定期で更新します。 (最近・・・物忘れが酷くて・・・)

07« 2017 / 08 »09
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.

スポンサーサイト 

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

category: スポンサー広告

--/--/-- --. --:-- [edit]   TB: -- | CM: --

go page top

vimdiffを利用するためのススメ 

ドモ ヾ('-'*) ド o('▽')o モ (*'-')ノ ドモ
茅原です。お疲れ様です。

さて、本日はvimdiffについて記載します。
私が開発する時はいつもテキストエディタのvimを使います。
eclipse等も使ってみたのですが、手に馴染むまでカスタマイズできなかったので
使うのやめてしまいました。。。
プロの職人たる者ツールにはこだわりたいところです♪ということで私はvimを選択しました。

さて皆さんは開発をするときにマージ作業を経験してことがあるかと思います。

マージとはソースコードに差分を入れ込む作業です。なぜこのような作業が発生するかというと、「お客様別にブランチが分けられている」「お試し機能をリリースして、本線に取り込みたい」、他にぱっとは思いつきませんが開発の状況によってマージが行われます。

WindowsではWinMargeやDF等のソフトがありますよね。あれらのソフトでもぜんぜん良いのですが
テキストの編集自身も自身がカスタマイズしたエディタを利用したいですし、何よりLinuxじゃ使えないので。
いまさらながらvimでのdiffの見方を記載します。

□起動方法
>vimdiff ファイル1 ファイル2 [ ファイル3 [ファイル4] ]

または
>vim -d ファイル1 ファイル2 [ ファイル3 [ファイル4] ]

□操作方法
 ・前の差分へ移動する
   [c
 ・次の差分へ移動する
   ]c
・選択されているバッファに他のバッファの差分を取り込む
   :[range] diffg[et] [bufspec]
   do … diffgと基本同じであるが、オプション指定ができない。

・他のバッファに選択されているバッファの差分を取り込む
   :[range] diffpu[t] [bufspec]
   dp … diffpuと基本同じであるが、オプション指定ができない。


□vim用のプラグイン
開発では構成管理ツール(CVS/Subversion/Git)を利用することが多いかと思います。
なので、構成管理ツールと連携できるvimのプラグインを導入しておくと非常に便利です。

 ●CVS用: cvsdiff.vim ( http://www.vim.org/scripts/script.php?script_id=1214 )

 ●Subversion用:vcscommand (http://www.vim.org/scripts/script.php?script_id=90)
  コマンド - :VCSDiff

 ●Git用:git-vim(https://github.com/motemen/git-vim)
  コマンド - :GitDiff

□プラグインを便利に♪
折角プラグインを導入しても、「コマンド覚えられなくて・・・」ということで結局便利なのに
使用しなくなってしまうこともありますよね。(私はあります)
そんなときは、vimにショートカットを作りましょうw

【編集ファイル】
 $HOME/.vimrc

nmap <F8> :Cvsdiff ←こんな感じです。

ノーマルモードF8を押すと:CvsDiffコマンドを実行します。最後のCRは改行コードでEnterを押したのと同じ効果です。

【追伸】
本来であればマージ作業が起きないような開発・リリース計画だったり構成管理の前提を作ったり、
仮にマージが発生しても「すべて機械マージ」でマージ自身が人の手が入ること自身が行わないほうが
良いですね。


では本日はここまでw
スポンサーサイト

category: vim

2011/08/28 Sun. 00:36 [edit]   TB: 0 | CM: 0

go page top

【小ネタ】 vimで現在開いているファイル名を表示する 

ども♫あまりに放置して申し訳ないのです。

風邪こじらせたらしく、寝こんでおりました。
皆さんも風邪には気をつけましょうね。

ということで、

本日は小ネタを少々。

題してvimのターミナル上にファイル名を出力する!です。m(_ _)m

Windowsでgvimをご利用の方は意識しなくても良いですが、

Linuxの場合、$HOME/.vimrcに書いておくとちょっと便利です。


vim上で行う処理は↓です。

:set title

以上!ねっ、簡単でしょ。


ちょこ、ちょこ小ネタ記載していきたいと思います~


それではw

category: vim

2010/11/26 Fri. 22:47 [edit]   TB: 0 | CM: 0

go page top

vimrcの設定を公開してみます! 

さてっ、ボチボチとBlogを更新します(*- -)(*_ _)ペコリ

「vimの設定をさらしてみる。」ということで
前にお客様のところで流行っていたので、自分もやってみます。

そもそもVIMって何か?
えっと…一言でいうとパソコンで文字を入力するためのソフトです。
エディタなんて言われ方もしますね。vimはviというエディタの拡張したもので、
UNIX OS・Linux OSではお馴染みの子だったりします。

んで、そのVIMの設定とは?
ということで、皆さんは通常、ツールの起動⇒オプションで画面を開き、
チェックボックスやらセレクトボックスやらで設定しますが、

vimはvimrcという設定ファイルを自分で作成して、自分で設定したい項目を書き込んだりします。
んで、それを皆でさらしましょう!というのが流行ったんですよね。


ちなみに、↓がエディタを開いている様子。実際はTera Termを利用して、viから自身が実装した
ソースコードを開いている様子です。(MySQLライブラリが使いづらかったので自身でWrapperClassを作っている様子です。趣味なので、ソースコードは汚いですな。)

img_01_20101030014349.png

んで、私の武器であるエディタさんの設定はこんな感じです~♪
#>vi $HOME/.vimrc

"Vi互換をオフ
set nocompatible

"----------------------------------------------------
" Display
"----------------------------------------------------
set statusline=%<%f\ %m%r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%4v\ %l/%L

"----------------------------------------------------
" Edit
"----------------------------------------------------
"新しい行を作ったときに高度な自動インデントを行う
set autoindent

"バックスペースにてインデントを削除可能にする
set backspace=indent,eol,start

"閉じ括弧が入力されたとき、対応する括弧を表示する
set showmatch

"コマンドライン補完が拡張モードオフ
set nowildmenu

"共通する最長の文字列までが補完
set wildmode=longest

"----------------------------------------------------
" Tab
"----------------------------------------------------
"ファイル内の が対応する空白の数
set tabstop=4

"シフト移動幅
set shiftwidth=4

"タブの代わりに空白文字を挿入する
set expandtab


" ウィンドウ -------------------------------------------------------
set splitbelow
set splitright
set sessionoptions+=resize
set previewheight=5


"クリップボードをWindowsと連携
set clipboard=unnamed

"カーソルを行頭、行末で止まらないようにする
set whichwrap=b,s,h,l,<,>,[,]

"----------------------------------------------------
"Search
"----------------------------------------------------
"インクリメンタルサーチ
set incsearch

"大文字小文字を区別しない。
set ignorecase

"大文字を含む場合は区別する。
set smartcase

" 補完・履歴 -------------------------------------------------------
set wildmenu
set history=50
"
" " ウィンドウ -------------------------------------------------------
set splitbelow
set splitright
set sessionoptions+=resize
set previewheight=5


" 表示 -------------------------------------------------------------
set nowrap
set ruler
set ruf=%45(%12f%=\ %m%{'['.(&fenc!=''?&fenc:&enc).']'}\ %l-%v\ %p%%\ [%02B]%)
set statusline=%f\ %m%=%{(&fenc!=''?&fenc:&enc).':'.&ff}%{(&list?'>':'')}\ %l-%v\ %p%%\ [%02B]
set showcmd
set cmdheight=1
set laststatus=2
set nonumber
set shortmess+=I
set nofoldenable
set vb t_vb=

syntax on

set encoding=utf-8


"Color
colorscheme DimBlue

" Align
let g:Align_xstrlen = 3

"----------------------------------------------------
" Migemo
"----------------------------------------------------
"if has ('migemo')
" set migemo
" set migemodict=/usr/local/share/migemo/utf-8/migemo-dict
"endif

"----------------------------------------------------
" オートコマンド
"----------------------------------------------------
if has("autocmd")
" ファイルタイプ別インデント、プラグインを有効にする
filetype plugin indent on
" カーソル位置を記憶する
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
endif


------------------------------------------------------------------------END

いろいろな方の設定と調べて、自身が一番手になじむように設定したらこうなりました(笑)
今ではWindowsでもvim(gvimというものがあります)を用いており、他のエディタは使えないですね。
(vimのキーバインドは独特なので)

今度vimの記事を書くときは
自身が愛用しているvimのpluginでも紹介します(*- -)(*_ _)

そういえば、最近、twitterとmixiが連携できることを知りました。
一元化するにも非常によいサービスかと思います。

お酒が良い感じで回ってきたので、今日はこのへんで。

category: vim

2010/10/30 Sat. 01:53 [edit]   TB: 0 | CM: 0

go page top

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