2011年4月6日星期三

.vimrc sample

"文件类型识别
filetype plugin indent on
"关闭兼容模式
set nocompatible
"外部修改时自动读取
set autoread
"设置鼠标
set mouse=a
"设置历史
set history=400
"设置mapleader
let mapleader=","
let g:mapleader=","
let g:C_MapLeader=","

"设置Tlist
"let Tlist_Show_One_File=1
"let Tlist_Auto_Open=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_SingleClick=1
let Tlist_Auto_Highlight_Tag=1
let tlist_make_settings='make;m:makros;t:targets'
let tlist_qmake_settings='qmake;t:SystemVariables'

"显示行号
set number
"显示光标位置
set ruler
"增强命令行补全
set wildmenu
"设置命令行高度
set cmdheight=1
"减少刷新和重画
set lz
"设置退格键
set backspace=eol,start,indent
"设置跨行键
set whichwrap+=<,>,h,l
"搜索时忽略大小写
set ignorecase
"搜索时高亮关键字
set hlsearch
"设置magic
set magic
"关闭提示音
set noerrorbells
set novisualbell
set vb t_vb=
"自动匹配括号
set showmatch
set mat=2
"设置Tab键
set expandtab
set smarttab
set tabstop=4
set shiftwidth=4
"自动缩进与智能缩进
set autoindent
set smartindent
"换行不截断单词
set linebreak
"C风格缩进
set cindent
set guifont=terminus\ 10
"自动补全
set completeopt=longest,menu
set laststatus=2
"语法高亮
syntax enable
"设置颜色主题
set t_Co=256
colorscheme darkblue
"高亮当前行
set cursorline
if has("gui_running")
colorscheme slate
hi cursorline guibg=#333333
hi CursorColumn guibg=#333333
endif
"高亮菜单
hi Pmenu guibg=#333333
hi PmenuSel guibg=#555555 guifg=#ffffff
set autochdir
"生成Ctags
"map :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q:TlistUpdate
"map :!ctags -R -f ~/.vim/tags/python.ctags /usr/lib/python3.2/:TlistUpdate
set tags+=/home/feng/.vim/tags/gtk.ctags
set tags+=/home/feng/.vim/tags/python.ctags
if has("autocmd")
filetype plugin indent on
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType ruby set omnifunc=rubycomplete#Complete
autocmd FileType c set omnifunc=ccomplete#Complete
autocmd FileType ada set omnifunc=adacomplete#Complete
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType sql set omnifunc=sqlcomplete#Complete
endif

function! Smart_TabComplete()
let line = getline('.') " curline
let substr = strpart(line, -1, col('.')+1) " from start to cursor
let substr = matchstr(substr, "[^ \t]*$") " word till cursor
if (strlen(substr)==0) " nothing to match on empty string
return "\"
endif
let has_period = match(substr, '\.') != -1 " position of period, if any
let has_slash = match(substr, '\/') != -1 " position of slash, if any
if (!has_period && !has_slash)
return "\\" " existing text matching
elseif ( has_slash )
return "\\" " file matching
else
return "\\" " plugin matching
endif
endfunction

inoremap =Smart_TabComplete()

"Tlist
"noremap :Tlist
"inoremap :Tlist
nnoremap :Tlist
"快速保存
nmap w :w!
"快速重载.vimrc
"map s :source ~/.vimrc
"快速编辑.vimrc
map e :e! ~/.vimrc
"当.vimrc改变时,自动重载
autocmd! bufwritepost vimrc source ~/.vimrc
"Paste toggle - when pasting something in, don't indent.
set pastetoggle=
"去除空行
map :%s/\s*$//g:noh''
"Super paste
inoremap :set pastemui+mv'uV'v=:set nopaste
"切换Tab
map tn :tabnew %
map te :tabedit
map tc :tabclose
map tm :tabmove
"切换buffer
map bn :bnext
map bp :bprevious
if has("autocmd")
filetyp plugin indent on
autocmd FileType python setlocal et | setlocal sta | setlocal sw=4
autocmd FileType python compiler pyunit
autocmd FileType python setlocal makeprg=python\ %
endif
"快速运行
au FileType python map :w!:!python %
au FileType python map :w!:!python -m pdb %
"快速补全
au FileType python inoremap $r return
au FileType python inoremap $s self
au FileType python inoremap $c ####kla
au FileType python inoremap $i import
au FileType python inoremap $p print
au FileType python inoremap $d """"""O
" FencView
let g:fencview_autodetect=0

2011年2月20日星期日

wallproxy配置备注

环境:arch 2.6.37, python 2.7, wallproxy v038

安装参照了 http://code.google.com/p/wallproxy/wiki/wallproxyV038

使用时出现以下问题:

Exception happened during processing of request from ('127.0.0.1', 41862)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/SocketServer.py", line 639, in __init__
self.handle()
File "/usr/lib/python2.7/BaseHTTPServer.py", line 337, in handle
self.handle_one_request()
File "/usr/lib/python2.7/BaseHTTPServer.py", line 325, in handle_one_request
method()
File "proxy.py", line 196, in do_METHOD
retval, data = handler(proxy, self.path, self.command, self.headers, payload)
File "/opt/wallproxy/local/util.py", line 147, in proxyFetch
data = encrypt(params, server['key'],smode)
File "/opt/wallproxy/local/util.py", line 124, in encrypt
CryptoObj=Wcrypto.Wcrypto(smode)
File "/opt/wallproxy/local/Wcrypto.py", line 80, in __init__
self.initstr(smode)
File "/opt/wallproxy/local/Wcrypto.py", line 144, in initstr
if (keysize>0):return self.init(cipher,mode,keysize,True)
File "/opt/wallproxy/local/Wcrypto.py", line 130, in init
else:raise ImportError('Crypto.Cipher.'+cipher+'no found')
ImportError: Crypto.Cipher.AESno found


解决方法:删除wallproxy安装目录local下的Crypto与_OpenSSL目录(上述目录是提供Windows系统使用的)

2010年12月26日星期日

Handle Carriage Return in ADF OutputText


public class MyLinefeedConverter implements javax.faces.convert.Converter
{
public MyLinefeedConverter() {
}

public Object getAsObject(FacesContext context, UIComponent component, String value) {
return value;
}

public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value==null) return "";
if (value instanceof String) return ((String)value).replace("\n", "");
return value.toString();
}
}

2010年12月21日星期二

PAC 文件示例

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!!!注意:
// 1. 编辑脚本的时候一定要小心,一点点错误就会导致浏览器不能正常上网!!!
// 2. 注释符号是: /* 被注释掉的 */ 或两个斜杠//
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


function FindProxyForURL(url, host)
{
url = url.toLowerCase(); //这里把网址转成小写,所以下面填匹配地址时也要用小写。
host = host.toLowerCase(); //这里把网站主机域名转为小写。
proxy-gap="PROXY localhost:8000" //这里是GAPPPROXY的代理地址,还可以定义其它的代理,注意PROXY几个字要大写。

//经过代理的网站
if(shExpMatch(host, "*my.opera.com*")) return proxy-gap; //这里return后面的部分是使用的代理,前面"*my.opera.com*"就是使用代理的网站主机域名(也可以用ip+子网掩码),可以用通配符*。
else if(shExpMatch(host, "*.wikipedia.org*")) return proxy-gap; //另外一个用代理的站点
else if(shExpMatch(url, "*.*blog*.com/*")) return proxy-gap; //也可以匹配具体网页,注意前面要用url而不是host了。
else return "DIRECT"; //其它网站不用代理
}


在opera的菜单中选中 工具 - 首选项 - 网络 - 代理服务器,将pac文件的路径写在最下面的pac地址中,注意写法是 file://xxx 的形式

参考了:danei's blog

2010年6月28日星期一

Linux三两地

今天在ARCH上新装了gnome 2.30,原本是为了试用一下gnome-shell,结果效果不太令人满意,可能是Mutter还不够成熟的原因。
另外又折腾了一下flash的中文问题,将/etc/rc.conf的local设为"zh_CN.UTF-8"时,一切中文显示正常,但是当local="en_US.utf-8"时,flash发生丟字现象,网页等中文正常,用网上流传的"rm /etc/fonts/49-sansserif.conf"不起作用,最后在/etc/profile增加LC_CTYPE="zh_CN.UTF-8"解决问题。

2010年6月25日星期五

Flow ,Discrete & Process manufacturing in ERP

在ERP中,制造行为一般可分为以下几类:

  • 流水线(Flow manufacturing)
  • 离散制造(Discrete manufacturing)
  • 过程制造(Process manufacturing)
to be continued...