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! : )