windowsで開発、linuxで運用、でもクライアントはwindowsというLAMPなシステム開発を行っている方も多くいらっしゃると思っております。
そんな方へ。
自分のPCだけで、開発、デバックが実際の環境と限りなく同じくできるものがあるとすれば、使ってみる価値があるのではないでしょうか?
さて、実際には、
http://scratchpad.fc2web.com/colinux/install-0.7/
を参考にインストールさせてもらっています。ここでは、それをベースに、今からやるには、こうしたら便利というものを記載してみます。
その1
cygwinは、個人的には使わないので、colinuxをインストールするために入れるのは、面倒というか、邪魔かなと思っています。もっともそれ以外で使う目的があれば、別に問題ないかと思います。
高速ダミーファイル作成ツール makedummyも不要です。今は、windowsXPとかを皆さんお使いですので。
ダウンロードするのは、
coLinux-0.7.3.exe
Ubuntu-7.10.ext3.2GB.7z
です。
あとは、7z形式を解凍できる解凍ソフト(フリーであります)
その2
swapファイルは、以下のように作成します。
512Mのswapファイルの場合は
C:\> fsutil file createnew swap.img 536870912
これでOKです。
その3
上で、swapについては展開済みなので、OKです。7z形式を解凍するには、
http://www.7-zip.org/から、ファイルをダウンロードして解凍できます。
cygwinやmakedummy.exeは不要です。
その4
そのままでいけます。
その5
4つのやり方が掲載されていますが、そこに書いてあるとおり、
coLinux(0.7.x)のインストール [TAP-Win32でのNAT接続]
がお薦めです。
安定性と設定のしやすさなど、多少の犠牲はあるけれど、自分でコーディング、テストするには十分です。
ubuntuでは少しファイル名が違う部分があります。
# cd /etc/network
# editor interfaces
となります。
その6
そのままでいけます。
ただ、ubuntuでやる場合は、多少違います。ディストリビューションが違うのでそれは、仕方ありません。
vimも.vimrcの設定次第でかなり使いやすいものとなります。
(windows版の場合は、_vimrcを追加・編集すればOkです)
以下は私がやっている例です。
肝となる部分だけ解説です。
シンタックス表示
行番号表示
タブをソフトタブで、実施する
set tabstop=2 softtabstop=2 shiftwidth=2
記号文字の表示がおかしくならないように
バックアップファイルを作らない
など、
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| " vim:set tabstop=2 enc=utf8 :
syntax enable
set modeline
set number
set tabstop=2 softtabstop=2 shiftwidth=2
set foldmethod=marker
set laststatus=2
" 記号文字の表示がおかしくならないように
set ambiwidth=double
filetype on
filetype indent on
filetype plugin on
colorscheme ron
set nobackup
set enc=utf-8set fileencodings=iso-2022-jp,sjis,euc-jp,utf-8
autocmd FileType php :set omnifunc=phpcomplete#CompletePHP
autocmd FileType html,javascript :set omnifunc=javascriptcomplete#CompleteJSautocmd Filetype *
\ if &omnifunc == "" |
\ setlocal omnifunc=syntaxcomplete#Complete |
\ endif
"-----------------------------------------------------------------------------"
source ~/.vim/vtreeexplorer.vim
let g:treeExplVertical=1
let g:treeExplWinSize=30
"
source ~/.vim/php-doc.vim
inoremap <c-P> <esc>:call PhpDocSingle()<cr>i
nnoremap <c-P> :call PhpDocSingle()<cr>
vnoremap <c-P> :call PhpDocRange()<cr>
source ~/.vim/php-doc.vim
inoremap <c-P> <esc>:call PhpDocSingle()<cr>i
nnoremap <c-P> :call PhpDocSingle()<cr>
vnoremap <c-P> :call PhpDocRange()<cr>
let g:pdv_cfg_Author = "HASHIMOTO <hashimoto at vone dot jp>"
let g:pdv_cfg_Copyright= "xxxxx INC.2008 All rights reservied."
" phpファイルの場合 下矢印で文法チェックをする
autocmd FileType php :map <down> <esc>:!clear<cr>:!php -l %<cr>
autocmd FileType php :map <c-E> <esc>:!php %<cr>
" phpファイルの場合 =functionと打ち込むとちょっと便利にfunctionがかける
autocmd FileType php :map! =function //{{{<cr><left><left><del><del>function {<cr>}<cr>//}}}<up><up><right><right><right><right>
" phpファイルの場合 =varと打ち込むとちょっと便利にvarがかける
autocmd FileType php :map! =var //{{{<cr><left><left><del><del>var <cr>//}}}<up>
"autocmd FileType php :set tabstop=4 softtabstop=4 shiftwidth=4
map <f12> <esc>:!php /home/hashimoto/tools/ftp.php %:p 1<cr>
map! =vimh // vim: set expandtab tabstop=2 softtabstop=2 shiftwidth=2 enc=utf8 :
map <left> <esc>:bp<cr>
map <right> <esc>:bn<cr>
map <up> <esc>:ls<cr>
"
function InsertTabWrapper()
if pumvisible()
return "\<c-n>"
endif
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k\|<\|/'
return "\<tab>"
elseif exists('&omnifunc') && &omnifunc == ''
return "\<c-n>"
else
return "\<c-x>\<c-o>"
endif
endfunction |
入力モード a
入力モード(挿入)i
閲覧モードESCキー
保存:w
コピー y
ペースト p
アンドゥ u
置換 s
:5,20s/abc/def/g //5行目から20行目のahhhhhをuhyaaaaに変換するもの。
:s/abc/def/g //またビジュアルモードで範囲指定をしている場合は、
:%s/abc/def/g //ファイル全体でやるなら
:%s/^M//g (^MはCTRL+V、CTRL+M) //CR+LFの改行コードの一括
※C オプション(confirm確認しながら、置換するかどうかを選択できる)
改行をなくして連結する(各行末に空白あり) shift + j
改行をなくして連結する(各行末に空白なし) g shift + j
コメントアウト(※繰り返すと消えます!ので、注意が必要です)\x
コメントアウト(確実) CTRL+Vで矩形選択後SHIFT+i // + ESC
これで、ちょっとだけ待つと、矩形全体にコメントが入ります。
マクロ(記録開始):qa aは任意のアルファベット
マクロ(記録終了):q
マクロ(実行):@a aは記録したマクロのキー
畳み込み set fdm=marker
開く. 大文字だと中も再起的に. zo, zO
たたむ. 大文字だと外まで再起的に.# zc, zC – close,
foldの作成.zf
全部開く.zR
全体的に1段開く(foldlevel+=1). zr
全体的に1段閉じる(foldlevel-=1).zm
全部閉じる(foldlevel=0). zM
php的な畳み込み let php_folding=1あんまりお薦めではありません
インデント >とか、<
コピペ対策自動インデント =
そもそもインデントが崩れないようにコピペする:a