2012年7月30日星期一

ssh连接被远程关闭解决方案

This works for me:
# cd ~/.ssh
# ssh-keygen -t rsa -f id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
xx:xx:xx:08:d1:d1:29:da:29:8b:8f:c3:de:xx:xx:xx user@system
Log in as the intended user on the target machine. Add the public key
(id_rsa.pub) to ~/.ssh/authorized_keys. The file should look something
like this.
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEAtfjDtf/xhw2trKYAJ61MmzADkG+0ma7DrvIqjoRUswfPglRWrbDpD+An
A72dzJB8UcLCMB0jyEhNz3yN/tH8FQ4JAHQDDWyt47wAqf1PZGxxsXxxxxxxxxxxkx1ke4PM17rH5IK7uxJ5AnOU8jCJvXUxbdaYdReWnBSpInJHotE=
root@system
Note that this is all on one line. If you accidentally split it over
multiple lines, you'll get something like this:
# scp file user@system:/tmp
Connection closed by 10.10.16.10
lost connection
On system, you'll see something like the error below in /var/adm/messages
Jul  7 11:48:18 system sshd[26022]: [ID 800047 auth.crit] fatal:
buffer_get: trying to get more bytes 129 than in buffer 34

2012年7月7日星期六

top vi command

http://www.oualline.com/vim/10/top_10.html

比较有用的
split - 分割多窗口

v - 可视化模式

> - 右缩进

ctrl-q - 进入列模式

cindent - 自动用c的缩进

make - 执行make,按:cn跳到下一个错误,:cc查看当前错误

ctags - 生成索引文件(支持多种编程语言), vim -t a_function,直接打开a_function的定义文件,并跳到定义处。ctrl-]可以跳到函数定义,ctrl=T跳回调用处。

ab - 定义缩写宏,vi会自动替换

智能补齐,ctrl+p, ctrl+n

复合搜索,/;/分割,/{file}+1/;/echo/

重放搜索, :%s/^\(Martin\)/Mr \1 Wicks/g

切换大小写, Escape [n] ~

截取特定行另存,:6,9w >> /tmp/newfile

标记行光标移到该行上,键入mx(x 是任何一个小写字母)就可以了。`x可以跳到指定标记处。··跳到上一个标记处。


撤消上一个编辑操作。       U

重复上一个编辑操作。     .


还原被撤消的编辑操作。   Ctrl   +   R

2012年6月20日星期三

vim的空格tab配置

vim中shiftwidth, tabstop, softtabstop和expandtab的意义

from: ludonghai715
1 shiftwidth
这个是用于程序中自动缩进所使用的空白长度指示的。一般来说为了保持程序的美观,和下面的参数最好一致。同时它也是符号移位长度的制定者。
2 tabstop定 义tab所等同的空格长度,一般来说最好设置成8,因为如果是其它值的话,可能引起文件在打印之类的场合中看起来很别扭。除非你设置 了 expandtab模式,也就是把tabs转换成空格,这样的话就不会一起混淆,不过毕竟制表符为8是最常用最普遍的设置,所以一般还是不要改。
3 softtabstop如 果我们希望改变程序中的缩进怎么办?shiftwidth和tabstop不一样的话,你会发现程序比较难看的。这时候,softtabstop就起作用 了。可以从vim的说明中看到,一旦设置了softtabstop的值时,你按下tab键,插入的是空格和tab制表符的混合,具体如何混合取决于你设定 的softtabstop,举个例子,如果设定softtabstop=8, 那么按下tab键,插入的就是正常的一个制表符;如果设定 softtabstop=16,那么插入的就是两个制表符;如果softtabstop=12,那么插入的就是一个制表符加上4个空格;如 果 softtabstop=4呢?那么一开始,插入的就是4个空格,此时一旦你再按下一次tab,这次的四个空格就会和上次的四个空格组合起来变成一个 制表符。换句话说,softtabstop是“逢8空格进1制表符”,前提是你tabstop=8。
4 关于expandtab举个例子,在多人一起开发项目时,为了使代码风格尽量保持一致,一般不允许在代码使用TAB符,而以4个空格代之。我们可以编辑一个文件,包含下面的内容:
set shiftwidth=4
set expandtab
然后把下面的命令加入到.vimrc中:
autocmd FileType c,cpp set shiftwidth=4 | set expandtab
就可以只在编辑c和cpp文件时实行这种设置了


set autoindent ruler 启用自动缩进
filetype plugin indent on 允许载入indent插件
再set 查看下syntax与shiftwidth的值,syntax应为javascript shiftwidth为2, 4, 8等

2012年6月15日星期五

pywin32 xp下安装错误

在 python 中 import win32api 时出现

?
>>> import win32api
Traceback (most recent call last):
  File "", line 1, in
ImportError: DLL load failed: 找不到指定的模块。
>>>
解决方法:
拷贝
C:\Python26\Lib\site-packages\pywin32_system32\*

C:\Windows\System32

2012年6月13日星期三

gdb thread

info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。 thread ID 切换当前调试的线程为指定ID的线程。 break thread_test.c:123 thread all在所有线程中相应的行上设置断点thread apply ID1 ID2 command 让一个或者多个线程执行GDB命令command。 thread apply all command 让所有被调试线程执行GDB命令command。 set scheduler-locking off|on|step 估计是实际使用过多线程调试的人都可以发现,在使用step或者continue命令调试当前被调试线程的时候,其他线程也是同时执行的,怎么只让被调试 程序执行呢?通过这个命令就可以实现这个需求。off 不锁定任何线程,也就是所有线程都执行,这是默认值。 on 只有当前被调试程序会执行。 step 在单步的时候,除了next过一个函数的情况(熟悉情况的人可能知道,这其实是一个设置断点然后continue的行为)以外,只有当前线程会执行。

2012年6月10日星期日

宏编译错误的解决

g++ -I../h -DENABLE_TRACE_LEVEL  -E ../h/CmTraceFromT120.h  > error

然后去error里去看看就知道了

2012年6月8日星期五

python导入出问题解决方案

没别的,路径问题,查看环境变量设置是否正确。

另外,通过这个命令查看路径

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

其实就是sys.exec_prefix

另外,
error: AccessInit: hash collision: 3 for both 1 and 1.
这个问题,也是PYTHONPATH设置的问题,
设置为如下“c:\python26\Lib"就可以。其他OS类似。