発売して結構時間がたってるけど誰も書かないので書いちゃう。
IS01はよくあるAndroid端末と違い、特殊な解像度を持っています。一般のソフトウェアに配慮してか、右側にサイドバーが表示されてその全体を使うことは通常できませんでした。
今回のサンプルではそれを回避する方法を書いています。
package com.example.is01.fullscreen; /* * IS01 FullScreen Window Sample * IS01の邪魔なサイドバーを回避するサンプル * Programmed by kcrt <kcrt _atmark_ kcrt.net> * Nanoseconds Hunter "http://www.kcrt.net/" * $id:$ */ import android.app.Activity; import android.os.Bundle; import android.util.Log; import java.lang.Class; import java.lang.reflect.Method; public class StartupActivity extends Activity { /** Called when the activity is first created. */ Method setFullScreenMode; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try{ Class<?> sgManager = Class.forName("jp.co.sharp.android.softguide.SoftGuideManager"); Class<?> paramstype[] = {boolean.class}; setFullScreenMode = sgManager.getMethod("setFullScreenMode", paramstype); }catch(Exception o){ Log.d("is01fullscreen", "failed" + o.getMessage() + ":" + o.getClass().toString()); } } @Override public void onResume(){ super.onResume(); try{ setFullScreenMode.invoke(null, true); }catch(Exception o){ Log.d("is01fullscreen", "failed"); } } }
結論からいうと、jp.co.sharp.android.softguide.SoftGuideManager::setFullScreenMode(true)をonResumeで呼び出してあげる事になります。これタイマーで呼び出したりできないのかな。また試してみよう。
Javaでプログラムを書くのは初めてなのでおかしかったらごめんなさいな。
あ、あとバージョンアップで潰されたらごめんなさい。
zipで欲しい人: IS01FullScreenSample
(便利で)くだらないUnix技は?のまとめです。
元スレそのままだと、見にくいのと、どういう結果が起こるのか分かりにくいのと、実行すると危ないコマンドがあるのでまとめてみました。全部羅列している訳じゃないので全部読みたい人は元スレをば。
ping hogehoge | sed -e ‘s/bytes from/^Gbytes from/’
Microsoft DreamSparkがいつのまにか日本でも開始してる!
開始の時点では日本ではサービスが開始していなくて、とても歯がゆい思いをしたのですが、ついに始まったんですね。
サービスの対象は
大学生、短大生、大学院生、専門学校 (本科生)、高等専門学校の 4、5 年生が該当
みたいです。
現在は
Microsoft Visuak Studio 2008 Prof.
SQL Server 2005 Dev.
Expression Studio
xna Game Studio (よく知らない)
Windows Server 2003 Std.
Microsoft Visuak Studio 2005 Prof.
が無償で提供されている(CDイメージのダウンロード)みたい!
すごいね、太っ腹だね。
Windows Liveのアカウントはもちろんですが、学生であることの証明のために国際学生証ってのが必要みたい。
国際学生証ってどこに申し込めばいいのかと思ったら、偶然にも僕の大学生協は受け付けていました。自分の大学の生協になくても(もしくは生協のない学校でも)、最寄りの国際学生証発行場所で申し込むか、東京か大阪のセンターに郵送で申し込むことができるみたい。
料金は1,430円で申請書と写真と学生証コピーが必要。
早速明日にでも行ってきます。発行までどれくらいかかるのかなぁ。
最後、短いけど。
# kcrt
multiuser on
startup_message off
vbell off
shell zsh
backtick 0 5 60 /bin/sh -c "test '$MAIL' &&test -s $MAIL && echo -n ' MAIL'"
backtick 1 5 60 $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 %"
defscrollback 3000
altscreen on # 画面復帰を有効に(vim終了時などに画面を戻す)
# キー設定
一回じゃ入らんからエントリ分けるよ・・・
# # 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 return 1 fi if [ ! -d ~/.trash ]; then echo "ERROR : ~/.trash not found!" return 1 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 export PATH=$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とか、環境をさらすのがはやってるらしいね。というわけで公開いたします。検索から来た人の役に少しでも立ってくれれば、と。
かなり特殊なところが多い・・・ですが、とてもおもしろい部分も多いと思うので是非見てやってください。あ、でも変なこともしてるので理解せずそのまま使うのはあんまりおすすめできない・・・かも。
あ、あとDebianでしか試してないんで、Fedoraだとここはこうだよ、的なことがあったら是非教えてください。

" .vimrc
" kcrt <kcrt kcrt.net>
"
scriptencoding utf-8
set nocompatible " 拡張機能を有効にする
" ----- 最初から入ってる奴 -----------------------
if &t_Co > 2 || has("gui_running") " カラーディスプレイ
syntax on
endif
filetype plugin indent on
augroup vimrcEx
autocmd FileType text setlocal textwidth=78
autocmd BufReadPost *
¥ if line("'¥"") > 0 && line("'¥"") <= line("$") |
¥ exe "normal g`¥"" |
¥ endif
augroup END
" ===== ユーザーインターフェース関係 =============
" ----- 設定 -------------------------------------
set backspace=2 " <BS>の動作設定
set history=50 " :コマンドの履歴数
set showcmd " コマンド表示
set laststatus=2 " 最下部情報行の行数
set statusline=%h%w%f¥ %m%#RO#%r%#StatusLine#%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%4v¥ %l/%L¥ (%p%%)
set hlsearch " 検索時ハイライト有効
" ----- マウス -----------------------------------
if &term == "screen"
set mouse=a " マウス有効
set ttymouse=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>
" タブラインの表記
set tabline=%!MyTabLine() "後述
" ----- コマンド略記------------------------------
ca man help
" ----- 補完 -------------------------------------
set complete =.,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
" ===== 編集に関連する設定 =======================
" ----- 文字エンコードの設定 ---------------------
set fileencodings=utf-8,shift_jis,euc-jp
set fileencoding=utf-8 " デフォルトのファイルエンコーディング
set ambiwidth=double " 幅未定義MBSCの幅
" ----- 親切設定 ---------------------------------
set showmatch " 対応する括弧を強調表示
set display=lastline " @@@表示
" ----- 検索 -------------------------------------
set incsearch " インクリメンタルサーチ
set ignorecase " 検索時大文字・小文字無効
set smartcase " 検索時大文字・小文字自動判別
" 見つかったアイテムを自動的に中央に
nmap n nzz
nmap N Nzz
" ----- タブとインデント -------------------------
set tabstop=4 " <Tab>に対応する空白数
set shiftwidth=4 " インデントに使われる空白数
set softtabstop=4 " タブとして使われる空白数
set autoindent " 自動インデント
set smartindent " スマートインデント
" ===== 動作設定 =================================
" ----- バックアップ -----------------------------
set backup " バックアップ有効
" TODO:フォルダがあるかどうか調べる
if has("win32")
set backupdir=d:/kt/Backup
else
set backupdir=~/.backup
endif
" ----- クリップボード ---------------------------
nmap <C-R>* <C-O>"*p
nmap "*yy V"*y
if has("win32unix") " cygwinの事です
nnoremap "*p :r!getclip<CR>
vnoremap "*y :!putclip<CR>u:echo 'copyed'<CR>
elseif has("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
autocmd VimLeave * silent! exe '!echo -n "^[k' . &shell . '^[¥¥"'
autocmd BufEnter * silent! exe '!echo -n "^[k' . "vim:%" . '^[¥¥"'
augroup END
endif
" ===== 印刷設定 =================================
" set printfont="ヒラギノ" -> gvimrc
" ===== ファイル関連設定 =========================
" ----- テンプレート -----------------------------
augroup LoadTemplate
autocmd BufNewFile *.pl 0r ~/etc/template/template.pl
autocmd BufNewFile *.php 0r ~/etc/template/template.php
autocmd BufNewFile *.cpp 0r ~/etc/template/template.cpp
autocmd BufNewFile *.h 0r ~/etc/template/template.h
augroup END
" ----- ファイル別設定 ---------------------------
augroup filetypedetect
autocmd BufNewFile,BufRead *.txt :setf txt
autocmd BufNewFile,BufReadPre *.howm :set fileformats=dos,unix
autocmd BufNewFile,BufReadPost *.pl :set filetype=perl
autocmd BufNewFile,BufReadPost *.pm :set filetype=perl
autocmd BufNewFile,BufRead *.pl :map <F5> :!perl %:p<CR>
autocmd BufNewFile,BufRead *.pm :map <F5> :!perl %:p<CR>
autocmd BufNewFile,BufRead *.php :map <F5> :!php %:p<CR>
autocmd BufNewFile,BufRead *.tex :map <F5> :call PreviewTeX()<CR>
augroup END
let php_baselib = 1
let php_htmlInString = 1
let php_folding = 1
" ===== プラグイン設定 ===========================
" ----- howm -------------------------------------
if has("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 --------------------------------
au BufNewFile,BufRead *.php map K ¥P
" ----- その他のプラグイン -----------------------
runtime ftplugin/man.vim
let keisen_type=2
" ===== 色設定 ===================================
set t_Co=16
if has("gui")
gui
endif
colorscheme torte
" ----- 色の宣言(上書き) -------------------------
hi StatusLine guibg=#4242ff guifg=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=#eeee55 guibg=#333300 ctermbg=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=#e0b611 ctermfg=yellow
hi Label3 guifg=#b08d33 ctermfg=darkyellow
hi Bold gui=bold
hi Italic gui=italic
hi Striken guifg=#dddddd ctermfg=gray
hi HR guifg=gray ctermfg=darkgray
hi SuperHR guifg=lightgray guibg=darkcyan gui=italic ctermfg=lightgray ctermbg=blue
hi Citation guibg=#222200 guifg=lightyellow ctermbg=darkyellow ctermfg=black
hi TabCloseBox ctermbg=darkred ctermfg=white
hi RO ctermbg=red ctermfg=white guifg=white guibg=magenta
" ----- 文法定義(見出し) -------------------------
au Syntax * syntax match Label display "^¥* .*"
au Syntax * syntax match Label2 display "¥t¥* .*"
au Syntax * syntax match Label3 display "¥t¥t¥* .*"
au Syntax * syntax match Label2 display "^[¥t ]*[・□■○●][^・].*"
au Syntax * syntax match Label display "^[・□■○●][^・].*"
au Syntax * syntax match Label2 display "^[¥t ]*¥*¥* .*"
au Syntax * syntax match Label3 display "^[¥t ]*¥*¥*¥* .*"
" au Syntax * syntax match HR display ".*-----.*"
au Syntax * syntax match SuperHR display ".*=====.*"
" ----- 文法定義(ハイライト) ---------------------
au Syntax * syntax match Bold display "¥*¥*.*¥*¥*"
au Syntax * syntax match Bold display "<b>.*<¥/b>"
au Syntax * syntax match Italic display "__.*__"
au Syntax * syntax match Italic display "<i>.*<¥/i>"
au Syntax * syntax match Striken display "<s>.*<¥/s>"
au Syntax * syntax region Citation display start=".*>>>" end="<<<"
" ===== 以下、関数 ===============================
" ----- タブライン -------------------------------
function MyTabLine()
let s = ''
let tabname=''
for i in range(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
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を公開しました。
こんな時間に書き込んでるけど、今まで起きてたわけではなく、むしろその逆で(以下略
というわけで、ktLyricsの超α版です。カスタマイズ機能くらい作りたかったけど、時間がなくて出来なかったよ……。内部的には出来てるんで、あとは設定ファイルの読み込み組むだけなんだけど、前回のエントリから一週間たったので公開。未保証です。
正式な完成はいつになるんだろう…。