2010年6月16日星期三

MS Visio KEY

HK6PW-MVVF4-DJ78P-T7D2F-WMTDY

2010年2月16日星期二

GVIM多标签浏览小技巧

vim自从7.0开始,就支持tab应用了,有了tab之后,就可以省下开很多编辑视窗的烦恼。但是默认的gvim并不使用tab来打开文件。
当然,你可以用:tabnew filename命令来打开,但是相信大家更喜欢用双击来打开
。这个时候,可以用如下方法设:


在linux下可以这样打开
$gvim --remote-tab-silent filename
而在windows下,DOS下也可以象上面那样打开;而若是"双击"打开方式,则可以修改注册表
HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command将其键值修改为:

"C:\Program Files\Vim\vim72\gvim.exe" -p --remote-tab-silent "%1"

而若是用鼠标右键中的"用vim编辑",先删掉注册表中的
HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\gvim,然后手工添加鼠标右键菜单,

两种方式:

a. 直接进入注册表,在HKEY_CLASSES_ROOT\*\shell下添加项"用 vim 编辑",
再在项"用vim编辑"下添加子项"command",在其右边窗口把其键值设定为
"c:\Program Files\Vim\vim72\gvim.exe" -p --remote-tab-silent "%1"

b. 把下面的内容保存为文件gvim.reg,并将之导入注册表


Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Edit with &Vim]
[HKEY_CLASSES_ROOT\*\shell\Edit with &Vim\command]
@="\"c:\\Program Files\\Vim\\vim72\\gvim.exe\" -p --remote-tab-silent \"%1\""

另外,也可以添加到鼠标右键中的"发送到",方法:
在Wiondows XP中,进入到目录c:\Documents and Settings\用户名\SendTo下,在Windows 7中进入到目录:
C:\Users\用户名\AppData\Roaming\Microsoft\Windows\SendTo,"鼠标右键"-
"新建"-"快捷方式",然后通过对话框的"浏览"找到gvim安装位置,这样就
建立gvim的一个快捷方式,右键单击这个快捷文件-属性-快捷方式,在"目标(T)
"的地址栏写入:
"C:\Program Files\Vim\vim72\gvim.exe" -p --remote-tab-silent "%*"

注意:上面都是默认安装gvim的地址,若不是默认地址,请自行修改。

2010年2月15日星期一

VIM TIPS--VIM中批量删除空行的方法

linux下vi中批量删除空行的方法:
可以直接使用linux的grep命令来删除,如下:
grep -v ^$ oldfilename > newfilename
但是在FreeBSD下面不行,可能是grep版本的问题,用vi的替换命令,vim的命令为:
%s/^\n//g
以上命令实现全局替换所有以回车开头的字符,替换为空。如果有多个连续的空行,想保留一个,vim的命令为:
%s/^\n$//g
还可以使用如下命令:
g/^\s*$/d
将所有不包含字符(空格也不包含)的空行删除。

删除空行,但不一次性删除所有连续空行:
:g/^$/d

--
陈永林 <vnresearch@gmail.com>

Vim Tips-处理行尾的空格以及文件尾部的多余空行

转载:
Vim Tips-处理行尾的空格以及文件尾部的多余空行
打开或者关闭文件时,自动删除行尾的空格。另外提供了一个 CleanupBuffer 函数,这个函数也提供类似的功能,此外还提供了删除文件尾部空格的能力,参数的意思就是在尾部保留几个空行,不过并没有加入自动命令,也就是说不会自动执行,而是绑定了一个热键 F2。


"Automatically remove trailing spaces when saving a file.
autocmd BufRead,BufWrite * if ! &bin | silent! %s/\s\+$//ge | endif

"Remove indenting on empty line
map <F2> :w<CR>:call CleanupBuffer(1)<CR>:noh<CR>
function! CleanupBuffer(keep)
" Skip binary files
if (&bin > 0)
return
endif

" Remove spaces and tabs from end of every line, if possible
silent! %s/\s\+$//ge

" Save current line number
let lnum = line(".")

" number of last line
let lastline = line("$")
let n = lastline

" while loop
while (1)
" content of last line
let line = getline(n)

" remove spaces and tab
if (!empty(line))
break
endif

let n = n - 1
endwhile

" Delete all empty lines at the end of file
let start = n+1+a:keep
if (start < lastline)
execute n+1+a:keep . "," . lastline . "d"
endif

" after clean spaces and tabs, jump back
exec "normal " . lnum . "G"
endfunction

--
陈永林 <vnresearch@gmail.com>

2010年1月24日星期日

解决Wireshark捕获过滤器无法捕获指定端口数据包的问题

今天在学习Wireshark University Network Training Self时,尝试在capture
filter中设定仅抓取HTTP数据包,根据视频教程中的提示,设为"port 80"时打
开网页,一个包也抓不到,如果cature filter留空或者设其它条件,没有问题。
尝试了"tcp port 80"、"port \http"都无效,不但80抓取不到,设为任何端
口都无法抓取数据包,明明有相应的流量,而且又不报错。重装也无效。
出现问题,解决不了,只有问google了,以"wireshark port filter bug"为关
键词,找到以下文章:
http://www.wireshark.org/lists/wireshark-users/200908/msg00215.html
看后才恍然大悟,原来不管是WireShark还是TCPDUMP,在抓取PPPOE的流量时,如
果使用了cature filter,条件应设为"pppoes && port 80"。这样cature filter
才能使用正确的offsets。
"True if the packet is a PPP-over-Ethernet Session packet (Ethernet type
0x8864). Note that the first pppoes keyword encountered in expression changes the
decoding offsets for the remainder of expression on the assumption that
the packet is a PPPoE session packet. "


--
陈永林 <vnresearch@gmail.com>

2009年9月14日星期一

Windows下PostgreSQL启动失败故障排除一例

环境:Windows 7 32位版,PostgreSQL 8.4.1 for Windows最基本的版本
才接触PostgreSQL没几天,今天在没有停止Postgres服务的情况下,尝试编辑了一
下postgresql.conf文件,之后停止再启动,发现怎么也启动不了。打开Windows的
事件管理器,看到一连好几条PostgreSQL的错误,一条一条仔细看,
pg_ctl: PID file "C:/Program Files/PostgreSQL/8.4/data/postmaster.pid" does not exist
这条不明白什么意思,确实也没找到这个文件,原来正常启动的情况下,肯定是有
这个文件的。
继续往下看,时间最早的一条错误:
FATAL: syntax error in file "C:/Program Files/PostgreSQL/8.4/data/postgresql.conf" line 1, near token "-"
明白了,原来是postgresql.conf的第一行出现了问题,并且是靠近"-"字符的地
方。打开postgresql.conf一看,本来应该是
# -----------------------------
现在前面的#字号消失了。怪不得呢。
搞不懂了,我明明没有删除这个啊。加上再启动就好了。
--
陈永林 <vnresearch@gmail.com>

2009年9月7日星期一

从U盘安装Windows

从U盘安装Windows 7
Update: 此方法同样适用于RC和RTM,以及未来的SP1,SP2...

你可能想在上网本上安装Windows 7 Beta,但是上网本一般没有光驱,你很可能也没有为它另购外置光驱;另外你可能关注环保,不希望为下载的Windows 7 Beta ISO刻盘;或者你不喜欢从光驱安装的龟速和折腾。反正,Windows 7支持从USB移动硬盘或闪存盘安装。

所需设备:

U盘(闪存盘或硬盘) 1坨,自备
Windows 7 Beta 1安装DVD ISO文件 1坨,下载
Windows 7 Beta安装序列号 1坨,在下载页面申请
准备U盘(建启动分区):

在一台运行Windows的计算机上插入U盘,打开一个管理员权限的命令行并输入:

C:\>diskpart
DISKPART> list disk
辨别分配给你的U盘编号,这里假设是2
DISKPART> select disk 2 (注意你的编号可能不是2)
DISKPART> clean
DISKPART> create partition primary
DISKPART> select partition 1
DISKPART> active
DISKPART> format fs=fat32
DISKPART> assign
DISKPART> exit
复制Windows 7安装文件到U盘

解开、刻录、或挂载你的Windows 7 DVD ISO到某处,例如 x:\, 假设你的U盘是z:,然后下:

C:\>xcopy x:\*.* /s/e/f z:\
从U盘安装

xcopy完成后,把U盘插到要装机的计算机上并重启。使用BIOS设置或按某个热键选择从U盘启动。然后按屏幕指示进行安装。

--
陈永林 <vnresearch@gmail.com>