tmuxを使ってみた
使ってみた
MacOSXにインストール
ソースをダウンロード
$ wget 'http://downloads.sourceforge.net/sourceforge/tmux/tmux-0.9.tar.gz?use_mirror=jaist'
ビルドする
$ tar xvfz tmux-0.9.tar.gz $ cd tmux-0.9 $ ./configure $ make $ sudo make install
~/.tmux.conf作成
set-window-option -g utf8 on set-window-option -g mode-keys vi set-window-option -g automatic-rename off
iphone買いました
かわいいよiphone
mysql文字列結合
SELECT CONCAT(column1, column2, '-', column3) FROM table1
PostgreSQLだとこうらしい
SELECT column1 || column2 FROM table1;
SVN管理下の追加ファイルを一撃でsvn addしたい
.bashrc等に以下を追記しておく
alias svnadd="svn st | grep '^\?' | sed -e 's/\?[ ]*/svn add /g' | sh"
「俺の方がスマートだぜ」っていういつものパターンになったので、参考にほかの人のやつ
svn st | grep '^?' | cut -b8- | xargs svn add
svn st | grep ^\? | grep -v .swp | awk '{print $2}' | xargs -r svn add
でsvnaddすればいい
ubuntu homeディレクトリ以下のディレクトリ名を英語表記にする
ディレクトリ名が日本語だとコマンドラインから扱いづらい。
変更することにする。
万が一に備えてファイル内のデータはバックアップしておく。
下記コマンドを実行。
LANG=C xdg-user-dirs-gtk-update
再起動すると設定画面が出てきて再び「日本語に変更するか」と尋ねられるので、
「もうこの設定画面は出てこない」にチェックを入れて「変更しない」を選ぶ。
vimrc
syntax on "------------------------------------------------------------------------------- set nocompatible "------------------------------------------------------------------------------- " ステータスライン set laststatus=2 " 常にステータスラインを表示 "set statusline=%<%F\ %r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%4v(ASCII=%03.3b,HEX=%02.2B)\ %l/%L(%P)%m set statusline=[%n]%F\ \ \ \ \ \|%{(&fenc!=''?&fenc:&enc).'\|'.&ff.'\|'}%m%r%=<%l/%L> " ステータスライン "------------------------------------------------------------------------------- " 文字コード関連 " □とか○の文字があってもカーソル位置がずれないようにする if exists('&ambiwidth') set ambiwidth=double endif "----------------------------------------------------------------------------- " 基本設定 set ambiwidth=double " 文脈依存は全角 set ignorecase " 検索時に大文字小文字を無視 (noignorecase:無視しない) set smartcase " 大文字小文字の両方が含まれている場合は大文字小文字を区別 set backspace=indent,eol,start " バックスペースでなんでも消せるように set autoread " 他で書き換えられたら自動で読み直す set noswapfile " スワップファイル作らない set hidden " 編集中でも他のファイルを開けるようにする set formatoptions=lmoq " テキスト整形オプション,マルチバイト系を追加 "set whichwrap=b,s,h,l,<,>,[,] " カーソルを行頭、行末で止まらないようにする "----------------------------------------------------------------------------- " インデント set ts=4 " タブの画面上での幅 set shiftwidth=4 " シフト移動幅 set expandtab " タブをスペースに展開する "----------------------------------------------------------------------------- " 表示 set guicursor=a:blinkon0 " カーソルの点滅を行わない set ruler " ルーラーを表示 set sm " 括弧入力時に対応する括弧を表示 let loaded_matchparen = 1 "対応括弧を強調しない set list " 不可視文字表示 set listchars=tab:>.,trail:_,extends:>,precedes:<" 不可視文字の表示形式 set display=uhex " 印字不可能文字を16進数で表示 "----------------------------------------------------------------------------- " 色設定 hi NonText ctermfg=darkgray hi Folded ctermfg=blue hi SpecialKey cterm=underline ctermfg=darkgray hi Folded term=standout cterm=bold ctermfg=4 ctermbg=0 hi Pmenu cterm=bold ctermfg=4 ctermbg=7 hi PmenuSel cterm=bold ctermfg=0 ctermbg=6 hi PmenuSbar ctermfg=4 ctermbg=7 hi Search term=NONE cterm=NONE ctermfg=black ctermbg=LightGray hi Search ctermbg = 4 ctermfg = 7 hi TabLineSel term=bold cterm=bold,underline ctermfg=7 ctermbg=0 hi TabLineFill ctermfg=white ctermbg=black hi StatusLine term=NONE cterm=NONE ctermfg=black ctermbg=white hi MatchParen term=standout ctermbg=LightGrey ctermfg=Black guibg=LightGrey guifg=Black "----------------------------------------------------------------------------- "キーマップ noremap j gj noremap k gk vnoremap j gj vnoremap k gk nmap n nzz nmap N Nzz nmap * *zz nmap # #zz nmap g* g*zz nmap g# g#zz " タブを使う nnoremap <C-h> gT nnoremap <C-l> gt nnoremap <Leader>1 1gt nnoremap <Leader>2 2gt nnoremap <Leader>3 3gt nnoremap <Leader>4 4gt nnoremap <Leader>5 5gt nnoremap <Leader>6 6gt nnoremap <Leader>7 7gt nnoremap <Leader>8 8gt nnoremap <Leader>9 9gt "----------------------------------------------------------------------------- " 補完・履歴 set wildmenu " コマンド補完を強化 set wildchar=<tab> " コマンド補完を開始するキー set wildmode=list:full " リスト表示,最長マッチ set history=1000 " コマンド・検索パターンの履歴数 " <TAB>で補完 function! InsertTabWrapper() let col = col('.') - 1 if !col || getline('.')[col - 1] !~ '\k' return "\<TAB>" else return "\<C-N>" endif endfunction inoremap <tab> <c-r>=InsertTabWrapper()<cr> "----------------------------------------------------------------------------- " 検索 set wrapscan " 最後まで検索したら先頭へ戻る set ignorecase " 大文字小文字無視 set smartcase " 大文字ではじめたら大文字小文字無視しない set incsearch " インクリメンタルサーチ set hlsearch " 検索文字をハイライト " 選択した文字列を検索 vnoremap <silent> // y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR> " 選択した文字列を置換 vnoremap /r "xy:%s/<C-R>=escape(@x, '\\/.*$^~[]')<CR>//gc<Left><Left><Left> " Escで検索ハイライトを削除 nnoremap <Esc><Esc> :<C-u>set nohlsearch<Return> nnoremap / :<C-u>set hlsearch<Return>/ nnoremap ? :<C-u>set hlsearch<Return>? nnoremap * :<C-u>set hlsearch<Return>* nnoremap # :<C-u>set hlsearch<Return># "------------------------------------------------------------------------------- " 全角スペース、末尾の半角スペース、タブを色づけする(色は俺好み、でも全角スペースを□にしたい) if has("syntax") syntax on function! ActivateInvisibleIndicator() syntax match InvisibleJISX0208Space " " display containedin=ALL highlight InvisibleJISX0208Space term=underline ctermbg=Blue guifg=#999999 gui=underline syntax match InvisibleTrailedSpace "[ ]\+$" display containedin=ALL highlight InvisibleTrailedSpace term=underline ctermbg=Red guifg=#FF5555 gui=underline syntax match InvisibleTab "\t" display containedin=ALL highlight InvisibleTab term=underline ctermbg=Cyan guibg=#555555 endf augroup invisible autocmd! invisible autocmd BufNew,BufRead * call ActivateInvisibleIndicator() augroup END endif "----------------------------------------------------------------------------- "タブ機能 nmap <Tab> :tabn<CR> nmap <C-t> :tabnew_ set showtabline=2 set tabline=%!MyTabLine() function MyTabLine() let s = '' for i in range(tabpagenr('$')) if i + 1 == tabpagenr() let s .= '%#TabLineSel#' else let s .= '%#TabLine#' endif let s .= '%' . (i+1) . 'T' let s .= ' ' . (i+1) . (1==getwinvar(i+1,'&modified')?'[+]':'') . ' %{MyTabLabel(' . (i+1) . ')} ' endfor let s .= '%#TabLineFill#%T' if tabpagenr('$') > 1 let s .= '%=%#TabLine#%999Xclose' endif return s endfunction function MyTabLabel(n) let buflist = tabpagebuflist(a:n) let winnr = tabpagewinnr(a:n) return bufname(buflist[winnr - 1]) endfunction "----------------------------------------------------------------------------- " QFixHome let howm_dir = '~/.vim/howm/' let howm_filename = '%Y/%m/%Y-%m-%d-%H%M%S.howm' let howm_fileencoding = 'utf-8' let howm_fileformat = 'unix' let mygrepprg = 'grep' let MyGrep_ShellEncoding = 'utf-8' "----------------------------------------------------------------------------- " yankring.vim let g:yankring_history_dir = "~/.vim/tmp/" nmap ,y :YRShow<CR> "----------------------------------------------------------------------------- " backspace問題用 noremap! <7f> <08> "----------------------------------------------------------------------------- " 文字コードの自動認識 if &encoding !=# 'utf-8' set encoding=japan set fileencoding=japan endif if has('iconv') let s:enc_euc = 'euc-jp' let s:enc_jis = 'iso-2022-jp' " iconvがeucJP-msに対応しているかをチェック if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb" let s:enc_euc = 'eucjp-ms' let s:enc_jis = 'iso-2022-jp-3' " iconvがJISX0213に対応しているかをチェック elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb" let s:enc_euc = 'euc-jisx0213' let s:enc_jis = 'iso-2022-jp-3' endif " fileencodingsを構築 if &encoding ==# 'utf-8' let s:fileencodings_default = &fileencodings let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932' let &fileencodings = &fileencodings .','. s:fileencodings_default unlet s:fileencodings_default else let &fileencodings = &fileencodings .','. s:enc_jis set fileencodings+=utf-8,ucs-2le,ucs-2 if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$' set fileencodings+=cp932 set fileencodings-=euc-jp set fileencodings-=euc-jisx0213 set fileencodings-=eucjp-ms let &encoding = s:enc_euc let &fileencoding = s:enc_euc else let &fileencodings = &fileencodings .','. s:enc_euc endif endif " 定数を処分 unlet s:enc_euc unlet s:enc_jis endif " 日本語を含まない場合は fileencoding に encoding を使うようにする if has('autocmd') function! AU_ReCheck_FENC() if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0 let &fileencoding=&encoding endif endif " 定数を処分 unlet s:enc_euc unlet s:enc_jis endif " 日本語を含まない場合は fileencoding に encoding を使うようにする if has('autocmd') function! AU_ReCheck_FENC() if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0 let &fileencoding=&encoding endif endfunction autocmd BufReadPost * call AU_ReCheck_FENC() endif " 改行コードの自動認識 set fileformats=unix,dos,mac " □とか○の文字があってもカーソル位置がずれないようにする if exists('&ambiwidth') set ambiwidth=double endif "-----------------------------------------------------------------------------