Thursday, April 17, 2014

Perl batch

Batchファイルを使って一連の処理を実行させたが、Batchはいろいろ不便でPerlスクリプトに切り替える。

1.外部コマンドの実行
$path = 'C:\';
$result = `dir \"$path\"`;
$result = system('dir', "$path");

if($result != 0){
    #ok 
}else{
    #ng
}

2.Yes/No
sub yesno{
  my $comment = shift;
  my $default = shift;
  
  if($default){
    $comment .= " ([y]/n): ";
  }else{
    $comment .= " (y/[n]): ";
    $default = 0;
  }
  my $prv = $|;
  $| = 1;
  print $comment;
  
  $| = $prv;
  my $ans = ;
  chomp($ans);
  $ans = uc($ans);
  
  if($ans eq 'Y'){
    return(1);
  }elsif($ans eq 'N'){
    return(0);
  }
  return($default);
}

Friday, April 04, 2014

My .vmimrc

set autoindent
set nocompatible
set wildmenu wildmode=list:full
set backupdir=$HOME/.vimbak
set shiftwidth=4
set tabstop=4
set smartindent

set whichwrap=b,s,h,l,<,>,[,]

set clipboard=unnamed,autoselect

"---------------------------------------------------
"
set ignorecase
set smartcase

"---------------------------------------------------
set tabstop=4
set noexpandtab
set autoindent
set backspace=indent,eol,start
set wrapscan
set showmatch
set formatoptions+=mM

"---------------------------------------------------
set number
set ruler
" show tab or newline
"set list
"set listchars=tab:>-,extends:<,trail:-,eol:<
"set listchars=eol:<
set nowrap
set laststatus=2
set cmdheight=1
set showcmd
set title
" set colorsheme
colorscheme desert

" hightlight search
set hlsearch

" set syntax
syntax on
"--------------------------------------------------
set nobackup

"--------------------------------------------------
" turn on filetype-plugin
filetype plugin on

Friday, March 28, 2014

VIM memo

■日本語入力(C-^) 折り返しのとき勝手に改行を入れる。これをOFFにしたい場合は

  • set formatoptions=q

■移動系コマンド(ノーマルモード)
gg 一番上の行へ
G 一番下の行へ

CTRL+f 画面移動
CTRL+b 画面戻る

w 単語単位で移動
b 単語単位で戻る

^ 行頭に移動
$ 行末に移動
f+[A-Za-z] jump to character, ";" next jump
% かっこの上で「%」入力→対応するかっこまで移動
■選択系コマンド(ビジュアルモード)
v 文字単位のビジュアルモード・選択
V 行単位のビジュアルモード・選択
CTRL+v 矩形単位のビジュアルモード・選択
Select all: gg V G
■カット(削除)、コピー、貼付け(ノーマルモード)
x 1文字カット(削除)
dd 1行カット(削除)
5dd 5行カット(削除)
p 貼付け
yy コピー
3yy 3行コピー
■検索(ノーマルモード)
/+文字
n 下方向に検索
N 上方向に検索
* 今カーソルがある位置の単語を上検索(完全一致)
# 今カーソルがある位置の単語を下検索(完全一致)

検索ハイライトOFF:
:noh
■置換(ノーマルモード)
:s/置換する文字/置換後の文字/
:s/i/I/g カーソルがある行を一気に置換)
:%s/i/I/g 全てを一気に置換
:%s/i/I/gc 全てを一気に置換(一つずつ確認)
■undo u 元に戻す(何度でも戻れる)
■redo CTRL+r (undoを元に戻す)


■ウィンドウ分割(コマンドモード)
:sp 縦に並べて分割
CTRL+w w ウィンドウ間の移動
:vs 横に並べて分割
:close ウィンドウを閉じる


■タブ(コマンドモード)
:tabnew 新しいタブを作る
:tabe ***.php ファイルを指定して開く

gt タブ間を移動

:tabclose タブを閉じる

vimを起動する時にタブを開く
vim -p ***.php ***.php タブ2つ開く

:tabdo %s/html/HTML/g 全てのタブで置換


■直前の動作を繰り返す
.(ピリオド)

■インデントを揃える
=(イコール)
gg V G =(全選択してイコール)


■補完機能
CTRL+n(長い変数名など、入力途中に「CTRL+n」と入力すると補完)


■矩形選択後に編集
CTRL+v(矩形選択)→ I(挿入モード)→ 文字入力 →ESC(全て編集される)
CTRL+v(矩形選択)→ x (削除)

// テキストオブジェクト(ノーマルモード)
// 文書の構造を見てオブジェクトとして扱う
c/d/y change (delete & insert)
i/a 中身か全体か
t/"/}"] tagなど

■設定(コマンドモード)
:set number (行番号を表示)
:set nonumber (行番号を非表示)
:syntax on (コードを色分け)
:syntax off (色分け終了)
:set tabstop=8 (タブの文字数を規定)
:set ignorecase (検索の時に大文字・小文字の区分けしない)
:set noignorecase (小文字だけに戻す)

Friday, March 14, 2014

SVN メモ

■SVNでチェックアウトするが,ファイルなどをダウンロードせずに,Workspaceだけを作成したい場合は:

$ mkdir local_workspace
$ svn checkout --depth=empty http://somewhere/  local_workspace

■ある階層でDirectoryのリストだけ作成,ファイルをダウンロードしない
$ svn update --set-depth immediates trunk/src/ : create only folder structure like trunk/src/

■特定のDirだけをチェックアウト

$ cd local_workspace
$ svn update --set-depth infinity  ./dir1
$ svn update --set-depth infinity  ./dir2

■リポジトリの移動

Dumpして,新しリポジトリの場所で展開

% svnadmin dump /repos_path > repos_dump.dat

% mkdir /new_repository
% svnadmin create /new_repository

% svnadmin load /new_repository < repos_dump.dat

Finish! : )

Thursday, February 20, 2014

robocopy

Copy from C:\Dir1 to D:\Dir2

robocopy C:\Dir1  D:\Dir2 /mir

よく使うオプション:

/mir : mirror
/Z : copy files in restartable mode
/B : copy in backup mode

/XD file [file] : exclude files. Ex: /XF *.log *.iso
/XF dirs [dirs] :exclude directories. Ex: /XD C:\windows D:\temp

/LOG:file  : output status to LOG file (overwrite existing log)
/LOG+:file : output status to LOG file (append to existing log)

/NP : no progress
/NDL : no directory list  - don't log directory names


/R:n : number of retries on failed copies (default 1 mils)
/W:n wait time between retries  (default 30s)

/TEE: output status to console window as well as the log file