if ($?prompt) then # setenv MANPATH /usr/share/man:/usr/local/man:${HOME}/local/man setenv PAGER /usr/local/bin/less setenv LANG ja #setenv LANG C ##### stty ##### stty -istrip stty erase ^? ##### set ##### set filec autolist set history = 1000 savehist = 1000 set noclobber set HOST = `uname -n` ##### alias ##### alias ls "ls -AF" alias less '/usr/local/bin/less' alias c clear if ($?tcsh) then set savehist = (1000 merge) set histfile = $HOME/.thistory # ~/bin/tcsh へ OS 標準の tcsh より新しいものを入れた場合に # 以下の方法で新しい tcsh を呼ぶようにしています。 # ログインシェルは screen コマンドを起動するだけなので諦める if ( -x ~/bin/tcsh ) setenv SHELL ~/bin/tcsh endif # # set prompt # screen コマンドの中で起動している/いないに依ってプロンプトの色を変える # # onScreen: screen コマンド上の shell である(1)/ない(0) # 次に起動する shell へ引き継ぐ必要があるため環境変数へ代入 # onScreen が未定義の場合は、screen 上でないとする。 if (! $?onScreen) setenv onScreen 0 # for Solaris if ($onScreen == 0) ps -p `ps -p $$ -o ppid=""` | grep -q screen && setenv onScreen 1 if ($?tcsh) then if ($onScreen == 1) then # alias precmd echo "'^[[37;46;1m tcsh $tcsh shlvl:[$shlvl] ^[[0m'" # set prompt = "%{\e[34;46m%}%n@%m:%~[\!]%#%{\e[0m%} " set prompt = "%{^[[37;46;1m tcsh $tcsh shlvl:[$shlvl] Return=%? \012\e[0;34;46m%}%n@%m:%~[\!]%#%{\e[0m%} " set rprompt = '%{\e[34;46m%} %d, %D %w %Y %P %{\e[0m%} ' else # alias precmd echo "'^[[33;42;1m tcsh $tcsh shlvl:[$shlvl] ^[[0m'" # set prompt = "%{\e[33;42;1m%}%n@%m:%~[\!]%#%{\e[0m%} " set prompt = "%{^[[33;42;1m tcsh $tcsh shlvl:[$shlvl] Return=%? \012\e[0;33;42m%}%n@%m:%~[\!]%#%{\e[0m%} " set rprompt = '%{\e[33;42;1m%} %Y/%W/%D %P %{\e[0m%} ' endif else set mch = `hostname | sed 's/\..*//'` if ($onScreen == 1) then alias prompt 'set prompt = "^[[34;46m`id -u -n`@"$mch:q":$cwd:t[\\!]%^[[0m "' else alias prompt 'set prompt = "^[[33;42;1m`id -u -n`@$mch:q"":$cwd:t[\\!]%^[[0m "' endif alias cd 'cd \!*; prompt' alias chdir 'cd \!*; prompt' alias popd 'popd \!*; prompt' alias pushd 'pushd \!*; prompt' cd . endif endif
tcsh は prompt に設定された文字列の数を覚えていて画面を書き直しますが、プロンプトに改行があっても行頭に戻ったと認識できません。その為、改行より前の部分を %{...%} で囲んでその文字列を数えないことに拠って辻褄を合わせます。
Solaris 8 on tcsh
version tcsh 6.15.00 (Astron) 2007-03-03 (sparc-sun-solaris) options wide,nls,dl,al,kan,rh,color,filec
こんな感じ。
sh にすると日本語の入力が可能。
tcsh だと「日本語」が「\U+237C\U+25DC\U+1C6C」と化ける。なぜ?
set dspmbyte = euc は試してみましたが、同じように化ける。
putty -> Solaris 8 -> tcsh 6.15.00
どうすりゃいいねん。
&color():Invalid color: #123;