カテゴリー別アーカイブ: プログラミング

screenrc

注意

この記事はobsoleteです。あたらしいscreenrcが僕がMacBookで必ず使う43のソフトウェア達にありますのでそちらをご参照ください。

 

最後、短いけど。

.screenrc

 


# kcrt


multiuseron


startup_messageoff


vbelloff


shell

 zsh
backtick

0560

 /bin/sh -c

“test ‘$MAIL‘ &&test -s $MAIL && echo -n ‘ MAIL'”

backtick

1560

 $HOME/etc/script/cpuload.sh

hardstatus

 alwayslastline

“%{wb}%{Wg} [%H] %{-}%0` %-w%{+bs .Wb}¥¥%{+u} %n %t %?(%u)%?%{-}/%{-}%+w %=%{WB} %1` : %m/%d %A %C”


caption

 splitonly
bell

“^G Beep!! in %”


defscrollback3000


altscreenon# 画面復帰を有効に(vim終了時などに画面を戻す)


# キー設定


 

zshrc

注意

この記事はobsoleteです。あたらしいzshrcが僕がMacBookで必ず使う43のソフトウェア達にありますのでそちらをご参照ください。

 

一回じゃ入らんからエントリ分けるよ・・・

 

.zshrc

 


#


# kcrt’s .zshrc file for Fedora/Debian


# Written by kcrt <kcrt__atmark__kcrt.net>


# Nanoseconds Hunter “http://www.kcrt.net


# Id: $Id$


#


# —– とりあえず

stty

stop

 undef

# ^Sとかを無効にする。


# —– 色宣言


typeset

 -A hostcolors

typeset

 -A hostblacks
hostcolors

=(

kuro green fro cyan sphe yellow pele magenda

)

hostblacks

=(

kuro

001100

 fro

001111

 sphe

001111

 pele

110000)

hostcolor

=

blue

if[[$hostcolors[$HOST]=“”]];then

hostcolor

=

blue
hostblack

=“000000”


else

hostcolor

=$hostcolors[$HOST]

hostblack

=$hostblacks[$HOST]


fi


export

 hostcolor

export

 hostblacks

# —– xterm(screen上以外での起動)だと思われる


if[[$TERM==“xterm”]];then


# 色の個別設定 – うまく動かない端末もあります


echo-n“^[]R”# first, reset the palette


echo-n“^[]P0$hostblack# black


echo-n“^[]P1FF0000″# red


echo-n“^[]P200CC00″# green


echo-n“^[]P3CCCC00″# yellow


echo-n“^[]P45555FF”# blue


echo-n“^[]P5FF00FF”# magenta


echo-n“^[]P600FFFF”# cyan


echo-n“^[]P7CCCCCC”# white


echo-n“^[]P8888888″# BLACK


echo-n“^[]P9FFAAAA”# RED


echo-n“^[]PA88FF88″# GREEN


echo-n“^[]PBFFFFAA”# YELLOW


echo-n“^[]PC7777FF”# BLUE


echo-n“^[]PDFFCCFF”# MAGENTA


echo-n“^[]PE88FFFF”# CYAN


echo-n“^[]PFEEEEEE”# WHITE


# タイトルバーの文字列


if[[$SSH_CONNECTION!=“”]];then


# ssh接続

tmpTitle

=`echo -n $SSH_CONNECTION | sed -e ‘s/¥(.*¥) .* ¥(.*¥) .*/¥1 –> ¥2/g’`


echo“^[]2;$HOST($tmpTitle, ssh)¥a


elif[[$REMOTEHOST!=“”]];then


# おそらくtelnet


echo-n“^[]2;$REMOTEHOST –> $HOST¥a;


else


# ローカルと見た


echo-n“^[]2;$HOST(local)¥a


fi


fi


# —– 環境変数


export

 EDITOR

=“vim”# やっぱりvimだねっ


export

 COLOR

=“tty”


# —– 色関係


autoload

 colors

# $color[red]とかが使えるようになる。

colors

eval`dircolors -b`

zstyle

‘:completion:*’

 list-colors

${(s.:.)LS_COLORS}# 補完も色つける


# —– autoloadたち


autoload

 -U compinit
compinit

-u


autoload

 zmv

autoload

 zargs

autoload

 zsh/files

# 設定はNOを頭につけると逆の意味になるよ!


# —– 補完


LISTMAX=200# 表示する最大補完リスト数


setopt

 auto_list

# 曖昧な補完で自動的にリスト表示


setopt

 NO_menu_complete

# 一回目の補完で候補を挿入(cf. auto_menu)


setopt

 auto_menu

# 二回目の補完で候補を挿入


setopt

 magic_equal_subst

# (?) –include=/usr.. などの=補完を有効に


setopt

 NO_complete_in_word

#

TODO

:よくわからない


setopt

 list_packed

# 補完候補をできるだけつめて表示する


setopt

 NO_list_beep

# 補完候補表示時にビープ音を鳴らす


setopt

 list_types

# ファイル名のおしりに識別マークをつける


# —– 履歴


HISTFILE=$HOME/.zhistory”# 履歴保存先


HISTSIZE=1000# 使用する履歴数


SAVEHIST=1000# 保存する履歴数


setopt

 hist_ignore_space

# スペースで始まるコマンドを記録しない


setopt

 hist_ignore_all_dups

# 重複した履歴を記録しない


setopt

 share_history

# ターミナル間の履歴を共有する


setopt

 append_history

# 履歴を追記する


# —– ファイル操作関連


setopt

 auto_cd

# ディレクトリ名でcd


setopt

 auto_remove_slash

# 不要なスラッシュをはずす


setopt

 auto_pushd

# 自動的にpushd


setopt

 pushd_ignore_dups

# 重複したディレクトリスタックを記録しない


setopt

 correct

# コマンドのスペル補正


setopt

 correct_all

# コマンド以外もスペル補正


setopt

 equals

# =zshとかが置換される


setopt

 extended_glob

# 拡張グロブ有効


# —– そのほかの設定


setopt

 print_eight_bit

# 8ビット文字表示


setopt

 prompt_subst

# プロンプトでのコマンド置換などを有効に


setopt

 beep

# エラー時にはBeep音


setopt

 NO_emacs

# viが一番!


setopt

 NO_flow_control

# ^S/^Qを有効に


# —– プロンプト


# PROMPT=’%{^[[%(!.31.32)m%}[%n@%m]%# %{^[[m%}’


PROMPT=‘%{%(!.$fg[red].$fg[$hostcolor])%}[%n@%m]%# %{$reset_color%}’


# 最後に実行したプログラムがエラーだと反転するよ。


RPROMPT=‘ %{%(?.$fg[cyan].$bg[cyan]$fg[black])%} [%~] %{$reset_color%}’


# —– キー


bindkey

 -v

bindkey‘^z’

    push-line

bindkey‘^y’

    run-help

bindkey‘^[[A’

   up-line-or-history

bindkey‘^[[B’

   down-line-or-history

# —– 自分用関数

ShowStatus()

{


# モードの切り替え時に右上にモードを表示


integer

 Cursor_X

integer

 Cursor_Y

integer

 StrLength
StrLength

=

$

(echo-n$1|

 wc -m

)

Cursor_X

=

$

[COLUMNS

-

$StrLength]# 場所はお好みで

Cursor_Y

=1


echo-n“^[[s”# push pos


echo-n“^[[$[$Cursor_Y];$[$Cursor_X]H”# set pos


echo-n“^[[07;37m$1^[[m”# print


echo-n“^[[u”# pop pos


}


# viins <-> vicmd {{{

Vi_ToCmd()

{

ShowStatus

“– NORMAL –“


builtin

 zle .vi-cmd-mode

}

Vi_Insert()

{

ShowStatus

“– INSERT –“


builtin

 zle .vi-insert

}

Vi_InsertFirst()

{

ShowStatus

“– INSERT –“


builtin

 zle .vi-insert-bol

}

Vi_AddNext()

{

ShowStatus

“– INSERT –“


builtin

 zle .vi-add-next

}

Vi_AddEol()

{

ShowStatus

“– INSERT –“


builtin

 zle .vi-add-eol

}

Vi_Change()

{

ShowStatus

“– INSERT –“


builtin

 zle .vi-change

}

zle -N Vi_ToCmd
zle -N Vi_Insert
zle -N Vi_InsertFirst
zle -N Vi_AddNext
zle -N Vi_AddEol
zle -N Vi_Change

bindkey

 -M viins

“^[“

 Vi_ToCmd

bindkey

 -M vicmd

“i”

 Vi_Insert

bindkey

 -M vicmd

“I”

 Vi_InsertFirst

bindkey

 -M vicmd

“a”

 Vi_AddNext

bindkey

 -M vicmd

“A”

 Vi_AddEol

bindkey

 -M vicmd

“c”

 Vi_Change

bindkey

 -M vicmd

“/”

 history-incremental-search-backward

bindkey

 -M vicmd

“^P”

 vi-repeat-search

bindkey

 -M vicmd

“^N”

 vi-rev-repeat-search

# vi-repeat-search


bindkey“^Q”

 self-insert

# }}}


# —– 関数


function

 _w3m()

{

:title w3m

$1


if[[$1==“”]];then

w3m http://www.google.co.jp

else

w3m

$@


fi

:title

$SHELL


}


function

 :whatsnew()

{

vimdiff

$1=(

svn cat --revision HEAD

$1)


}

fucntion :whatchanged()

{

vimdiff

$1=(

svn cat --revision PREV

$1)


}


function

 trash()

{


if[$#=0];then


command

 rm

return1


fi


if[

 !

-d

 ~/.trash

];then


echo“ERROR : ~/.trash not found!”


return1


fi

mv

$@

 ~/.trash

||return


if[$#=1];then


echo‘$1’ was moved into trash!”


else


echo$# files were moved into trash!”


fi


}


# —– エイリアス


# コマンド置き換え


alias

 vi

=‘vim -p’


alias

 rm

=‘trash’


alias

 w3m

=‘_w3m’


# 引数


alias

 ls

=‘ls -F –color=tty’


alias

 du

=‘du –human-readable -s ./*’


alias

 df

=‘df –human-readable’


alias

 grep

=‘grep –color -a’


alias

 less

=‘less –ignore-case –status-column –prompt=”?f%f:(stdin).?m(%i/%m files?x, next %x.). ?c<-
%c-> .?e(END):%lt-%lb./%Llines” –hilite-unread –tabs=4 –window=-5’


alias

 pstree

=‘pstree -p’


alias

 cal

=‘cal -3’


alias

 zmv

=‘noglob zmv -W’


alias

 zcp

=‘noglob zmv -C’


alias

 zln

=‘noglob zmv -L’


# 省略とか


alias

 la

=‘ls -F -a –color=tty’


alias

 ll

=‘ls -F -la –color=tty –sort=time –reverse’


alias

 hist

=‘history’


alias

 :q

=‘exit’


alias

 su

=‘su -s =zsh’


alias

 hexdump

=‘od -Ax -tx1z -v’


alias

 beep

=‘print “¥a”‘


alias

 cls

=‘clear’


alias

 ...

=‘cd ../..’


alias

 ....

=‘cd ../../..’


alias

 .....

=‘cd ../../../..’


alias

 :kuro

=‘ssh kuro’


if[[-x

 /usr/bin/man

]];then

compdef _man w3mman

alias

 man

=‘w3mman’


fi


# —– suffix alias (関連づけ)


alias-s

 txt

=‘cat’


alias-s

 log

=‘tail -f -n20’


alias-s

 html

=‘w3m’


function

 viewxls()

{

w3m -T text/html

=(

xlhtml

$1)


}


alias-s

 xls

=‘viewxls’


# —– root用の設定


if[[$USER!=‘root’]];then


alias

 updatedb

=“sudo updatedb; beep”


alias

 taillog

=‘sudo tail -f -n20 /var/log/syslog’


# Fedoraはデフォルトで設定されてない

zstyle

‘:completion:*:sudo:*’command

-

path

 /usr/sbin /usr/bin /sbin /bin /usr/

local

/sbin

exportPATH=$PATH

:/usr/sbin:/sbin:/usr/

local

/sbin

fi


# —– Abstraction (予定)


alias

 :

suspend=“sudo /usr/sbin/pm-suspend”


alias

 :hibernate

=“sudo /usr/sbin/pm-hibernate”


if[[-x

 /usr/bin/yum

]];then


alias

 :package_update

=“sudo yum update”


alias

 :package_install

=“sudo yum install”


elif[[-x

 /usr/bin/aptitude

]];then


alias

 :package_update

=“sudo aptitude update; sudo aptitude upgrade”


alias

 :package_install

=“sudo aptitude install”


alias

 :package_list

=“”


alias

 :package_search

=“sudo aptitude show”


fi


# —– cygwin 固有設定


if[[$OSTYPE=

 *cygwin*

]];then


alias

 updatedb

=“updatedb –prunepaths=‘/cygdrive’


alias

 open

=‘cmd /c start ‘


alias

 start

=‘explorer . &’


fi


# —– screen 使うことにしたよ


if[[-x

 /usr/bin/screen

]];then


function

 :title()

{


# 1 : 普通の起動


# 2 : screen上 -> TERM = “screen”


# 3 : ssh または screen上でのssh -> SSH_CLIENTが空でない


# 4 : ssh上でのscreen -> SSH_CLIENTが空でない かつ STYが空でない


# rootの場合**を付ける


if[[$USER==“root”]];then


1=“*$1*”


fi


if[[-n$SSH_CLIENT]];then


if[[-n$STY]];then


# 4 : ssh上でのscreen


else


# 3 : ssh または screen上でのssh


# マシン名を付け加える


1=$HOST:$1


fi


elif[[$TERM==“screen”]];then


# 2 : screen上 -> TERM = “screen”


else


# 1 : 普通の起動


fi


echo-n“^[k$1^[¥¥


}


alias

 :split

=‘screen -X split’


alias

 :taillog

=‘screen -t syslog sudo tail -f /var/log/syslog’


alias

 :tailapachelog

=‘screen -t syslog sudo tail -f /var/log/apache2/error.log’


alias

 :top

=‘screen -t top top’


alias

 :displays

=‘screen -X displays’


# よく使いそうなやつ

IsScreen

=`expr $TERM : screen`


if[[$IsScreen!=0]];then


# —– スクリーンだよ!

preexec()

{


# derived from http://nijino.homelinux.net/diary/200206.shtml#200206140


# and modified by kcrt

emulate

-L

 zsh

local-a

 cmd

;

cmd

=(${(z)2})


case$cmd[1]in


fg)


if(($#

cmd

==1));then

cmd

=(`builtin jobs -l %+`)


else

cmd

=(`builtin jobs -l $cmd[2]`)


fi


;;

%*

)

cmd

=(`builtin jobs -l $cmd[1]`)


;;

ls

)


local-a

 wd

;

wd

=(`builtin dirs`);

:title

$wd[0];


;;


cd)

:title

$cmd[2];


;;

sudo

)

:title

“*$cmd[2]*”;


;;

*

)

:title

$cmd[1];


;;


esac


#local -A jt; jt=(${(kv)jobtexts})


#$cmd >>(read num rest


#cmd=(${(z)${(e):-¥$jt$num}})


#echo -n “^[k$cmd[1]:t^[¥¥”) 2>/dev/null


}


else

screen

-r


fi


else


echo[kcrt] : screen not found.”


fi


 

vimrc

注意

この記事はobsoleteです。あたらしいvimrcが僕がMacBookで必ず使う43のソフトウェア達にありますのでそちらをご参照ください。

なんだか最近vimrcとか、環境をさらすのがはやってるらしいね。というわけで公開いたします。検索から来た人の役に少しでも立ってくれれば、と。
かなり特殊なところが多い・・・ですが、とてもおもしろい部分も多いと思うので是非見てやってください。あ、でも変なこともしてるので理解せずそのまま使うのはあんまりおすすめできない・・・かも。
あ、あとDebianでしか試してないんで、Fedoraだとここはこうだよ、的なことがあったら是非教えてください。

vimrc(このエントリ)・zshrcscreenrc

スクリーンショット

vimrc

.vimrc

 


” .vimrc


” kcrt <kcrt kcrt.net>



scriptencoding

 utf

8


setnocompatible” 拡張機能を有効にする


” —– 最初から入ってる奴 ———————–


if

 &t_Co

>2||has(“gui_running”)” カラーディスプレイ


syntaxon


endif


filetypepluginindenton


augroup

 vimrcEx

autocmdFileType

 text

setlocaltextwidth

=78

autocmdBufReadPost

 *

¥if

 line(

“‘¥””

)

>0&&

 line(

“‘¥””

)

<=

 line(

“$”

) |

¥

   exe

“normal g`¥””

 |

¥endif


augroup

 END

" ===== ユーザーインターフェース関係 =============

” —– 設定 ————————————-


setbackspace

=2

” <BS>の動作設定


sethistory

=50

” :コマンドの履歴数


setshowcmd” コマンド表示


setlaststatus

=2

” 最下部情報行の行数


setstatusline

=%h%w%f¥ %m%#RO#%r%#StatusLine#%y%{'['.(&fenc!=''?&fenc

:

&enc).']['.&ff.']'}%=%4v¥ %l/%L¥ (%p%%)

sethlsearch” 検索時ハイライト有効


” —– マウス ———————————–


if

 &term

==“screen”


setmouse

=a

” マウス有効


setttymouse

=xterm2

endif


” —– タブインターフェース(またはバッファ) —–


map

 Q gq

” C-Tabでタブが使えるときはタブを切り替え


” 使えない場合はバッファの切り替えを行う


if(

exists

(“:tab”))


nmap<C-Tab>

       :tabn

<CR>


nmap<C-S-Tab>

     :tabprev

<CR>


else


nmap<C-Tab>

       :bn

<CR>


nmap<C-S-Tab>

     :bp

<CR>


endif


“C-→とC-←をC-Tab, C-S-Tabと同様の操作にする


nmap^[

[C

<C-Tab>


nmap^[

[D

<C-S-Tab>


” タブラインの表記


settabline

=%!MyTabLine()

“後述


” —– コマンド略記——————————


ca

 man

help


” —– 補完 ————————————-


setcomplete

 =.

,

w

,

k

,

b

,

u

,

t

,

i

if(

exists

(‘*pumvisible’)&&

 has

(“gui”))


inoremap<expr><CR>

 pumvisible() ? "

¥<c-y>

" : "

¥<c-g>

u

¥<cr>

"

inoremap<expr><Esc>

 pumvisible() ? "

¥<C-E>

":"

¥<Esc>

"

” inoremap <expr> <c-n> pumvisible() ? “¥<lt>c-n>” : “¥<c-n>¥<c-r>=pumvisible() ? ¥”¥¥<lt>down>¥” : ¥”¥”¥<lt>cr>”


endif


if(

exists

(‘&omnifunc’))


imap<C-Space><C-X><C-O>


else


imap<C-Space><C-N>


endif


” —– その他のキー設定 ————————-


map<F1>

 K

nnoremap<UP>

 gk

nnoremap<DOWN>

 gj

" ===== 編集に関連する設定 =======================

” —– 文字エンコードの設定 ———————


setfileencodings

=utf-8

,

shift_jis

,

euc-jp

setfileencoding

=utf-8

” デフォルトのファイルエンコーディング


setambiwidth

=double

” 幅未定義MBSCの幅


” —– 親切設定 ———————————


setshowmatch” 対応する括弧を強調表示


setdisplay

=lastline

” @@@表示


” —– 検索 ————————————-


setincsearch” インクリメンタルサーチ


setignorecase” 検索時大文字・小文字無効


setsmartcase” 検索時大文字・小文字自動判別


” 見つかったアイテムを自動的に中央に


nmap

 n nzz

nmap

 N Nzz

” —– タブとインデント ————————-


settabstop

=4

” <Tab>に対応する空白数


setshiftwidth

=4

” インデントに使われる空白数


setsofttabstop

=4

” タブとして使われる空白数


setautoindent” 自動インデント


setsmartindent” スマートインデント


" ===== 動作設定 =================================

” —– バックアップ —————————–


setbackup” バックアップ有効


 TODO

:フォルダがあるかどうか調べる


ifhas(“win32”)


setbackupdir

=d

:

/kt/Backup

else


setbackupdir

=~/.backup

endif


” —– クリップボード —————————


nmap<C-R>

*

<C-O>

"*p

nmap

 "*yy   V"*y

ifhas(“win32unix”)” cygwinの事です


nnoremap

 "*p :r!getclip

<CR>


vnoremap

 "*y :!putclip

<CR>

u:echo 'copyed'

<CR>


elseifhas(“unix”)


if$TERM==“screen”


nnoremap

 "*p  i

<C-O>

:!screen -X paste .

<CR>


vnoremap

 "*y  :w! ~/tmp/vim-clipboard

<CR>

:!screen -X readbuf ~/tmp/vim-clipboard

<CR>

:echo 'copyed'

<CR>


else


nnoremap

 "*p  :r ~/tmp/vim-clipboard

<CR>


vnoremap

 "*y  :w! ~/tmp/vim-clipboard

<CR>

:echo copyed'

<CR>


endif


endif


” —– screen関係の設定 ————————-


if

 &term

=~“screen”


augroup

 IsTerminal

autocmdVimLeave

 *

silent

! exe

‘!echo -n “^[k’.

  &

shell.‘^[¥¥”‘


autocmdBufEnter

 *

silent

! exe

‘!echo -n “^[k’.“vim:%”.‘^[¥¥”‘


augroup

 END

endif


" ===== 印刷設定 =================================

” set printfont=”ヒラギノ” -> gvimrc


" ===== ファイル関連設定 =========================

” —– テンプレート —————————–


augroup

 LoadTemplate

autocmdBufNewFile

 *.pl

0

r ~/etc/template/template

.

pl

autocmdBufNewFile

 *.php

0

r ~/etc/template/template

.

php

autocmdBufNewFile

 *.cpp

0

r ~/etc/template/template

.

cpp

autocmdBufNewFile

 *.h

0

r ~/etc/template/template

.h


augroup

 END

” —– ファイル別設定 —————————


augroup

 filetypedetect

autocmdBufNewFile

,

BufRead

 *.txt :

setf

 txt

autocmdBufNewFile

,

BufReadPre

 *.howm :

setfileformats

=dos

,

unix

autocmdBufNewFile

,

BufReadPost

 *.pl :

setfiletype

=perl

autocmdBufNewFile

,

BufReadPost

 *.pm :

setfiletype

=perl

autocmdBufNewFile

,

BufRead

 *.pl :map

<F5>

 :!perl

%:p

<CR>

autocmdBufNewFile

,

BufRead

 *.pm :map

<F5>

 :!perl

%:p

<CR>

autocmdBufNewFile

,

BufRead

 *.php :map

<F5>

 :!php

%:p

<CR>

autocmdBufNewFile

,

BufRead

 *.tex :map

<F5>

 :

call

 PreviewTeX()

<CR>


augroup

 END

let

 php_baselib

=1


let

 php_htmlInString

=1


let

 php_folding

=1


" ===== プラグイン設定 ===========================

” —– howm ————————————-


ifhas(“win32”)


let

 g:howm_dir

=“d:/kt/howm/”


else


let

 g:howm_dir

=“~/howm/”


endif


let

 g:howm_filename

=“%Y-%m.howm”


let

 g:howm_fileencoding

=“utf-8”


let

 g:howm_removeEmpty

=1


let

 g:howm_instantpreview

=1


” —– PHPManual ——————————–


auBufNewFile

,

BufRead

 *.php

map

 K ¥P

” —– その他のプラグイン ———————–


runtime

 ftplugin/man

.vim


let

 keisen_type

=2


" ===== 色設定 ===================================

sett_Co

=16

ifhas(“gui”)

gui

endif


colorscheme

 torte

” —– 色の宣言(上書き) ————————-


hi

 StatusLine

guibg

=

#4242ffguifg

=white

gui

=

bold


hi

 Title

guibg

=lightblue

guifg

=white

ctermbg

=lightblue

ctermfg

=white

gui

=

bold


hi

 Comment

ctermfg

=darkgreen

guifg

=lightgreen

hi

 Statement

guifg

=lightyellow

hi

 Type

ctermfg

=blue

guifg

=lightcyan

hi

 Label

guifg

=

#eeee55guibg

=

#333300ctermbg

=darkyellow

ctermfg

=white

hi

 Pmenu

ctermbg

=darkgray

ctermfg

=white

guibg

=darkgray

guifg

=white

hi

 PmenuSel

ctermbg

=lightblue

ctermfg

=white

guibg

=lightblue

guifg

=white

hi

 PmenuSbar

ctermbg

=darkgray

ctermfg

=lightgray

guibg

=darkgray

guifg

=lightgray

hi

 PmenuThumb

ctermbg

=darkgray

ctermfg

=lightgray

guibg

=darkgray

guifg

=lightgray

hi

 TabLine

ctermbg

=black

ctermfg

=darkgray

gui

=

bold


hi

 TabLineFill

ctermbg

=darkgray

ctermfg

=black

gui

=

underline


hi

 TabLineSel

ctermbg

=blue

ctermfg

=white

” —– 色の宣言(オリジナル) ———————


hi

 Label2

guifg

=

#e0b611ctermfg

=yellow

hi

 Label3

guifg

=

#b08d33ctermfg

=darkyellow

hi

 Bold

gui

=

bold


hi

 Italic

gui

=

italic


hi

 Striken

guifg

=

#ddddddctermfg

=gray

hi

 HR

guifg

=gray

ctermfg

=darkgray

hi

 SuperHR

guifg

=lightgray

guibg

=darkcyan

gui

=

italicctermfg

=lightgray

ctermbg

=blue

hi

 Citation

guibg

=

#222200guifg

=lightyellow

ctermbg

=darkyellow

ctermfg

=black

hi

 TabCloseBox

ctermbg

=darkred

ctermfg

=white

hi

 RO

ctermbg

=red

ctermfg

=white

guifg

=white

guibg

=magenta

” —– 文法定義(見出し) ————————-


auSyntax

 *

syntaxmatch

 Label

display“^¥* .*”


auSyntax

 *

syntaxmatch

 Label2

display“¥t¥* .*”


auSyntax

 *

syntaxmatch

 Label3

display“¥t¥t¥* .*”


auSyntax

 *

syntaxmatch

 Label2

display“^[¥t  ]*[・□■○●][^・].*”


auSyntax

 *

syntaxmatch

 Label

display“^[・□■○●][^・].*”


auSyntax

 *

syntaxmatch

 Label2

display“^[¥t  ]*¥*¥* .*”


auSyntax

 *

syntaxmatch

 Label3

display“^[¥t  ]*¥*¥*¥* .*”


” au Syntax * syntax match HR display “.*—–.*”


auSyntax

 * syntax match SuperHR display ".*=====.*"

” —– 文法定義(ハイライト) ———————


auSyntax

 *

syntaxmatch

 Bold

display“¥*¥*.*¥*¥*”


auSyntax

 *

syntaxmatch

 Bold

display<b>.*<¥/b>”


auSyntax

 *

syntaxmatch

 Italic

display“__.*__”


auSyntax

 *

syntaxmatch

 Italic

display<i>.*<¥/i>”


auSyntax

 *

syntaxmatch

 Striken

display<s>.*<¥/s>”


auSyntax

 * syntax region Citation display start=".*>>>" end="<<<"

" ===== 以下、関数 ===============================

” —– タブライン ——————————-


function

 MyTabLine

()


let

 s

=


let

 tabname

=


for

 i

inrange(

tabpagenr

(‘$’))


let

 tabname

=(

i

+1).‘:’.bufname(

tabpagebuflist

(

i

+1)

[tabpagewinnr

(

i

+1)1

]

)


let

 s

.=‘%’.(

i

+1).‘T’“マウスクリック用


if

 i

+1==tabpagenr()


let

 s

.=‘%#TabLineSel#/ ‘.

 tabname

.‘ %#TabCloseBox#%999X[X]%X%#TabLineSel# ¥’


else


let

 s

.=‘%#TabLine#/ ‘.

 tabname

.‘ %’.(

i

+1).‘X[X]%X ¥’


endif


endfor


let

 s

.=‘%#TabLineFill#%T%=vim 7.0’


return

 s

endfunction


function

 PreviewTeX

()


exec“!platex -kanji=utf8 -output-directory=”.

 &backupdir

.” “.

 expand

(“%:p”)


exec“silent ! start “.

 &backupdir

.“/”.

 expand

(“%:t:r”).“.dvi”


endfunction


					

Subversion利用時に”Can’t recode string”エラーが発生することに対する対処法。

 Windows機にあったレポジトリをDebian機に移行したところ、日本語を含むファイルが通信できなくなりました。
 リポジトリの再配置やチェックアウトを行おうとすると、

svn: Can’t recode string

というエラーが出ます。ただ、Debian側で

# svnlook tree /mnt/repos/書類

とすると、ファイルが表示されてるので、ちゃんとリポジトリには格納されているみたいです。(Debian-surgeのzshは現在Unicodeに対応していないので「書類」の部分は化けますが大丈夫です。無理だったら、"svnlook?"だけ書いたshファイルを作って試してみるといいかも。)

良くインターネット上に書いてある対処法に

# export LANG=ja_JP.eucJP

すれば良い、と書いてありますのでまずはこれを試してみます。

 とりあえず、inetd経由で起動することになっているsvnを止めます。
% sudo vi /etc/inetd.conf

# svn stream tcp nowait svn /usr/sbin/tcpd /usr/bin/svnserve -i -r /mnt/repos
(コメントアウトする)

% sudo killall -HUP inetd
んで、daemonとして起動してみる。
% su
# LANG=ja_JP.UTF-8 /usr/bin/svnserve -d -r /mnt/repos

 これで日本語ファイルも通信できました。LANG=ja_JP.UTF-8にするためにはDebianにUTF-8ロケールを追加しなければいけません。方法はこのページが詳しいです。
 またdaemonとして起動するために、引数は-dと成ってるのに注意してください。

 で、これで日本語ファイルも扱えるようになったんですが、ただでさえメモリの少ない機(というか玄箱)なので、daemonではなくてinetd経由でどうしても起動したいのです。
 が、ここで迷う。svnserveはユーザーsvnとして起動するのですが、どこでLANGを設定すればいいんだろう。ホームディレクトリすらないしなぁ。
/etc/profileはbashだよなぁ。/etc/environmentもja_JP.UTF-8になってる。

 というわけで、いろいろ試してみたけど分かりませんでした。もっと調べても良かったんですけど、etchに成ったときに変わるかもしれないみたいなんで、断念。

とりあえずの対処法を書いておきます。
% su
# vi /system/svnservejp.sh (どこでもいいです)

#!/bin/sh

export LANG=”ja_JP.UTF-8″
/usr/bin/svnserve -i -r /mnt/repos

# chmod u+x /system/svnservejp.sh
# vi /etc/inetd.conf

svn stream tcp nowait svn /usr/sbin/tcpd /system/svnservejp.sh

# killall -HUP inetd

これでよし。接続のたびにシェルが一個無駄だけど、まぁ仕方ないか。この方法はcronやメールスクリプトでも使えるので覚えておいて損はないですよ。

「正規表現」と「ポート一覧」

「正規表現」と「ポート一覧」のCheat sheetを公開しました。

http://www.kcrt.net/projA4

こんな時間に書き込んでるけど、今まで起きてたわけではなく、むしろその逆で(以下略

ktLyrics 超α v.0.01

Download file

というわけで、ktLyricsの超α版です。カスタマイズ機能くらい作りたかったけど、時間がなくて出来なかったよ……。内部的には出来てるんで、あとは設定ファイルの読み込み組むだけなんだけど、前回のエントリから一週間たったので公開。未保証です。

正式な完成はいつになるんだろう…。

The Code Project – API hooking revealed – System

APIフックの方法らしい。英語なんで読むのたるいため未確認。

2004-06-02

■ [prog] プログラマの進化 (The Evolution of a Programmer)
http://apollo.u-gakugei.ac.jp/~sunaoka/misc/evolution/evolution_jp.txt
進化って言うか退化だねぇ。

■ [link] The Condom Dress
http://www.bizarrenews.com/condom/dress.asp
コンドームで出来たドレス。すっげーぬるぬるしてそう…。新婚さんにぜひ。

■ [link] Legal Age of Consent
http://www.ageofconsent.com/ageofconsent.htm
国別性交制限年齢表。
チリでは12才から。

■ [link] こどもの事典 人体解剖図鑑
http://www.yujin-net.com/item/gacha_200405_017.html
これをほしがる子供は病んでいると思う。

■ [link] 3食マクドナルドだけで過ごしたらどうなる?という映画がヒット中
http://www.eiga.com/buzz/040601/06.shtml
どうなるって…割と普通に死にますよ。

■ [link] 日本アニメ『ヒカルの碁』が韓国に
http://japanese.joins.com/html/2004/0528/20040528162309700.html

同アニメは韓国の事情に合わせ、日本色の強いシーンなどが修正される。また主人公も、ヒカルはシン・ジェハに、サイはチャランという名に変えて放映される。

……(‘Д`);

■ [link] 「天才」の真意どこに ウィニー開発者起訴
http://www.asahi.com/kansai/news/OSK200405310029.html

ウィニーの紹介もしてきた上中級者向け雑誌「ネットランナー」発行元のソフトバンクパブリッシング広報は

↑誤植発見

2003-12-23

■ [prog] Mix_LoadMUS(SDL_mixer)
Zinniaさんの所にリンクしたら、紹介返し&お返事( http://risky-safety.org/~zinnia/d/2003/12/#20031222-t1-h2-p1 )頂きました!多謝!
というわけで、Mix_LoadMUSでRWops使えないと使いにくいよ!のこととか書いてみる。

ext = strrchr(file, ‘.’);
if ( ext ) ++ext; /* skip the dot in the extension */

本当にファイル名(というか、拡張子)からファイルの種類を判別しているんや……。正直、もうちょっと工夫して欲しかった。まぁ、次期バージョンでは改訂されるでしょうね。

■ [link] 中国の反日機運は高くない!「煽り」記事を事実から検証する
http://kotonoha.main.jp/2003/12/22yomiuri.html
昨日書こうとして、消えてしまった

北京のコンサート、観衆が日本人バンドに「帰れ」連呼
http://www.yomiuri.co.jp/world/news/20031221i203.htm

を読んでから見てくだされ。

■ [link] あなたの「うつ度」を判定
http://www.jtu-net.or.jp/cgi-bin/selfcheck/e-selfcheck.cgi

あなたの得点は 36 ポイントでした。
レベル3 31縲?5 正常範囲ですが点が高いほど疲れています。 一カ月に一回はこの検査をする事をお勧めします。

■ [link] 438時間連続でリネージュに熱中…ゲーム料金・食費払えず立件
http://japanese.joins.com/html/2003/1219/20031219201424400.html

20日分のゲーム料金と食費の45万2500ウォン(約4万5000円)

マンスリーレオパ○スとかよりいいかも知れないなぁ

■ [hard]? PIN CLOCK
http://www.rakuten.co.jp/n-oasis/453581/514687/
すごい!かっこいい!欲しい!高い!

■ [link] 神崎氏、陸自派遣を容認 「サマワは比較的安全」1月末にも本隊派遣で調整
http://news.kyodo.co.jp/kyodonews/2003/iraq4/news/1221-109.html

■ [link] 綿井健陽さんのイラク取材
http://www1.odn.ne.jp/watai/
比較、検討。

■ [link] 心臓発作の遺伝子が見つかった
http://medwave.nikkeibp.co.jp/show/nh/news/282264

家系にこの遺伝子がない人は、心臓発作で死ぬことはまずない

へぇへぇへぇ。

■ [link] 正しい日本語講座
http://www.yomiuri.co.jp/atmoney/yw/yw03081002.htm
こういうの、大部分は正しいんだけど、個人的には賛成できねぇ、ってのがよくあります。

■ぜんぜん+肯定文
「ぜんぜんOKですよ」のように、「ぜんぜん」の後に肯定文を使うことに違和感を覚える向きは多い。やはり、「ぜんぜん問題ないですよ」と否定文にしたほうがしっくりくる

これは最近辞書にも載ってきましたし、そろそろいいんじゃないかなぁー、とか。

社長様、部長殿
「社長様はいらっしゃいますでしょうか?」などと、社長、課長、部長など、役職名に「様」「殿」を付けるのは間違い。これは手紙でもよくやる間違い。ビジネスマナーの基本だ

えっと……じゃあどういえばいいんでしょう。

2003-12-16

■ [prog] 伺か – SSTPプロトコル
http://sakura.nayu.nu/sstp.html
s07今更かよ!w301落ち着け!e

■ [link] NYにホテルなみのホームレス保護施設、議論広がる
http://japanese.joins.com/html/2003/1215/20031215191837400.html
ダメ人間増やすの!?

■ [link] 派遣中止求め署名提出 北部方面総監部に市民団体
http://www.fukuishimbun.co.jp/nationaltopics.php?genre=national&newsitemid=2003121501000343&pack=CN

総監部総務課の担当者は請願書を受け取ったが、署名については「重い」などの理由でその場では受け取らなかった。その後、受け取ったという。西川事務局長は「派遣中止を求める全国の人々の思いを伝えに来たが、(直接受け取ってもらえず)納得できない。異常なことだ」と不満を述べた。

重いって言ってるのに、そう怒るなよ。

■ [link] ≪元大統領拘束ドキュメント≫「撃つな、私は大統領だ」
http://www.sankei.co.jp/news/031215/1215kok050.htm
某オウム○理教の麻原○晃を思い出しますね。

■ [soft] 仮想ネットワーク構築・通信ソフトウェア「SoftEther」が無償公開
http://internet.watch.impress.co.jp/cda/news/2003/12/15/1493.html
VPNですか。セキュリティさえ確保されればカナリ使えそうですね。

■ [link] ドコモ505iシリーズで初の本格的「着うた」サービス
http://www.zdnet.co.jp/news/0312/15/njbt_03.html
vodafoneだけじゃなくてドコモも始めたのか。

■ [link] Linux magazine the DVD 2004
http://linux.ascii24.com/linux/linuxmag/dvd/index.html
Linux magazine the DVD 2003持ってるからなぁ・・・。今年のだけ安く売ってくれないかなぁw

■ [link] エロビ
http://kodansha.cplaza.ne.jp/sexy/stream/meiga/uchida02.html

人間には「和姦」「強姦」「輪姦」「視姦」「近親相姦」の“五姦”のほかに、もう一つ隠された“姦覚”がある。人呼んで「セックス・センス(第六姦)」

・・・すまん、ウケた。