今天写代码特意在vim下写的,逼着自己不动鼠标。不能解决的问题就google一下然后学习 ,再操作下,这次记录最基本的选择、复制和粘帖 基本操作流程: 进入可视模式,按ESC键。然后按v键,进入虚拟模式,相当于模拟鼠标。然后用方向键选定你的内容.(假如,移动光标上下左右,选中第三行和第四行的内容),然后按y键复制选定的内容;再用方向键移动到你要粘贴的地方(假如,移动指针到第十行),最后按p键来粘贴。 贴大牛的笔记: 1. 将光标移动到将要复制的行处,按yy举行复制当前行(按nyy复制n行),再移动到粘贴位置,按p举行粘贴。 2. 将光标移到复制的首位置,按下v,用hjkl移动,按y复制,如果按d就表示剪切,按p粘贴。 3. 光标移到肇始行,输入ma;光标移到结果行,输入mb;光标移到粘贴行,输入mc;然后 :'a,'b co 'c,把 co 改成 m 就成剪切了。 4. 光标移动到要复制的行,输入yny(n表现要复制该行以下n行);光标移动到粘贴行,按p粘贴。 5. 直接输入:n1,n2 co n3。(n1为肇始行,n2为结果行,n3为粘贴行) 6. 差别文件之间的复制:用:sp [filename]打开另一文件,(用^ww在文件之间切换),然后按上述要领复制 相关的下令如下: yy 将当前行复制到缓冲区 yw 将当前单词复制到缓冲区 y1 将光标处的一个字符复制到缓冲区 p 将缓冲区的信息粘贴到光标的背面 :行号1 ,行号2 copy 行号3 将行号1到行号2的内容复制到行号3地址行的背面。 :行号1 ,行号2 move 行号3 将行号1到行号2的文本内容移动到行号3地址行的背面。 7. 寄存器操纵 "?nyy: 将当前行及其下n行的内容存储到寄存器?中,此中?为一个字母,n为一个数字 "?nyw: 将当前行及其下n个字存储到寄存器?中,此中?为一个字母,n为一个数字 "?nyl: 将当前行及其下n个字符存储到寄存器?中,此中?为一个字母,n为一个数字 "?p: 取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母 ,也可以是一个数字 ndd: 将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中 vi 中配置tab为4和自动转换成空格 yw命令可以复制一个单词。yy命令可以复制一行,y$命令可以复制从当前光标到本行结尾的所有字符 ' 跳转前的光标位置 " 最后编辑的光标位置 [ 上一次修改的开始处 ] 上一次修改的结尾处 将光标移到某一行,用命令ma来进行标记。在这里m是标记的命令,a是对这一行所做标记的名称,当然也可以使用26个字母中的任意一个做为标记名称。 剪切与复制相同:

剪切一行:dd
剪切当前行光标所在的位置到行尾:d$
剪切当前行光标所在的位置到行首:d^
前切三行:3dd,即从当前行+下两行被剪切了。

Continue

今天做完百度acm的题,群里几个人在讨论各个学校的acm队伍、学习等。说到一起做USACO Training上的题目。我遍开始做了,以为这个网站是训练,是一个循序渐进的过程。做到Greedy Gift Givers这个题目,学到很多东西,记录一下。 这个题目很简单,不需要神马高深的算法,主要学到许多c语言的用法,先上我自己写的代码。

/*
ID:
LANG:C
TASK:gift1
*/
#include
struct gift
{
char name[15];
int get;
int give;
}g[10];
int main()
{FILE *fin=fopen("gift1.in","r");
FILE *fout=fopen("gift1.out","w");
int i,np;
fscanf(fin,"%d",&np);
for(i=0;i
这里学到的几点:
结构体里的get和give可以只用一个最后结果表示就行。
我自己写的查找字符串的操作遍历了结构图数组所有元素,可以直接break退出循环,看别人写的代码用while很好,记录下。
j=0;
while(strcmp(a[j],b)) j++;

Continue

参考文章:http://www.cnblogs.com/samwei/archive/2011/04/25/2026211.html 写得很详细,参考一下。我只是想实现python的自动缩进,所以就照做了前两条。 安装vim时自带的插件文件,只要修改一下vimrc文件就好。 sudo vi /usr/share/vim/vimrc 添加:

set filetype=python
au BufNewFile,BufRead *.py,*.pyw setf python
set autoindent " same level indent
set smartindent " next level indent
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
哈哈 测试了一下 成功了。虽然不是很懂具体是神马意思,但是可以猜测个差不多。先这样吧,有时间仔细研究一下vim的文档。 显示行号: 在配置文件中加入 set number 命令为‘:set nu’

Continue

几个需要注意的地方,官网说的很清楚: 1、 config.yaml文件修改,

name: py
version: 1

libraries:
- name: django
  version: "1.4"
handlers:
- url: /static
  static_dir: static
2、index.wsgi文件修改,
import os
import django.core.handlers.wsgi

import sae

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

application = sae.create_wsgi_app(django.core.handlers.wsgi.WSGIHandler())
之后就打印了一个hello world! 用到的几个svn命令 svn checkout https://svn.sinaapp.com/newapp #此处需要认证,用户名/密码为您的SAE安全邮箱和安全密码 svn add 1/ svn commit -m"add wordpress"

Continue

官网资料:https://docs.djangoproject.com/en/dev/topics/install/#installing-development-version 1、找到django安装目录,官网提供的方法:python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)" 当然可以在终端 进入python,寻找。 2、直接删除目录下的django文件夹。 3、安装django1.4新版本。按照官网方法就ok。 开始找的site-packages目录,发现是空的,后来才知道,改成dist-packages。从django官网下载文件速度慢死,第一次下载没下载完就结束了,安装没成功。

Continue

今天把操作系统作业做完了,本来以为很简单的一个程序几十行就写完了。没想到写了有二百行,各种添加变量,各种添加if,各种添加for,直接晕菜了。 写得很乱,说不定明天就忘记写得神马意思了。先贴出来,等上机的时候在优化一下。<操作系统课程设计--短作业优先作业调度> code:

#include
#include
#include
#define MAXNUM 5
#define MAXTIME 20
struct sjf 
{
	char name[8];
	int arrivetime;
	int servicetime;
	int runtime;
	int is_over;//是否运行完
	int starttime;
	int finishtime;
	int turnaroundtime;
	float rightturnaroundtime;
}p[MAXNUM];


static int j=0,k=0,l=0;//j当前正在执行的进程	k当前时间已经到达的最大进程 l是否没有进程运行


//读取进程数据
void readProcess()
{
	int i;
	char str[200];
	FILE *fp;
	char *token;
	if ((fp=fopen("Process","rt"))==NULL)
	{
		printf("读取文件失败!\n");
		getchar();
		exit(1);
	}
	printf("|--------------------------------------|\n");
	printf("|--进程名称--|--到达时间--|--服务时间--|\n");
	for (i=0;i

Continue

做了白天一整天,就做出了7个题,下午就做出两个。一起做过几个acm的题目,太难了,半天做不出一个,就没兴趣继续做了。这次百度的题目有几个很简单,就做了几个,其中有群里说的思路,还有从网上找到的算法做的。准备将学到的知识总结一下。 今天上网看了一下,各个题目的最好代码占用的内存和代码长度,都好牛比的说。实在是不知道他们是怎么写出来的。 ABCD题是几个公式就搞定了。 E:C++ 与Java 这个题目也比较简单,就是开始的时候,题目上说“长度不超过100”,然后就定义了一个长度为一百的字符串变量,结果当为C++的时候,添加“_”后就会越界了,直接就“Runtime Error”。 G:聊天就是Repeat 这个题用到了一个scanf的格式化,以前没用过但是却知道,开始不知道行不行,试了下成功了。

scanf("%[^EOF]",s);
J:百度的新大厦 这个题是先看到群里说了以后才坐的,没怎么思考。

Continue

找到几个零碎的学习资料: http://www.cnblogs.com/holbrook/tag/python/ http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944771.html http://www.cnblogs.com/twelfthing/articles/2095502.html Python实现多线程下载学习代码 http://www.oschina.net/code/snippet_70229_2407 官网文档: http://docs.python.org/library/thread.html http://docs.python.org/library/threading.html

Continue

better immersion than to live untouched 感冒 难受 讲题 烦躁 游戏 视频 差 一天过来了 反思 越长大 越二笔 早睡早起 明天做一个幸福的人

Continue

命令行下直接svn,提示未安装 ,并且给出安装方法。sudo apt-get install subversion 执行命令安装完成后,svn help查看帮助。 linux系统的使用还是很简单的,根据提示操作很方便。 以下摘自sae的svn教程: 1. 从SVN仓库中检索出代码到工作拷贝: # svn checkout https://svn.sinaapp.com/appname [workcopy] 其中workcopy是可选的,如果不写workcopy,SVN会默认将appname做为workcopy。 如果只检索某个版本: # svn checkout https://svn.sinaapp.com/appname/appversion [workcopy] 只检索某个版本的某个目录: # svn checkout https://svn.sinaapp.com/appname/appversion/folder [workcopy] 2. 向SVN仓库提交代码: # svn commit -m "here is message" 3. 将本地文件添加到工作拷贝: # svn add something 注:如果something为文件,svn会将这个文件添加到工作拷贝;如果something是目录,svn会将目录及里面的文件全添加到工作拷贝。something也可以是通配符*,这样会忽略已经添加过的文件。 4. 从工作拷贝中删除一个文件: # svn delete something 注:如果something为文件,svn会将这个文件从工作拷贝中删除;如果something是目录,svn会将目录及里面的文件全部从工作拷贝中删除。 5. 直接从SVN仓库中删除文件: # svn delete -m "delete something" https://svn.sinaapp.com/appname/appversion/something 注:可以从SVN仓库中直接删除单个文件或单个目录甚至某个版本。 6. 将一个本地项目导入到SVN仓库: 导入应用的某个版本: # svn import localdir https://svn.sinaapp.com/appname/appversion 注:要确保目前应用的appversion不冲突。 7. 查看工作拷贝中的文件或目录状态: # svn status [something] 8. 更新自己的工作拷贝: # svn update 注:从SVN仓库下载最新版本,此命令会导致本地没有提交的更改丢失,建议使用此命令前先查看一下本地拷贝状态(svn status)。 9. 取消对代码修改 取消对代码的修改分为两种情况。 第一种情况:改动没有被提交(commit)。 这种情况下,使用svn revert就能取消之前的修改。 svn revert用法如下: # svn revert [-R] something 其中something可以是(目录或文件的)相对路径也可以是绝对路径。 当something为单个文件时,直接svn revert something就行了;当something为目录时,需要加上参数-R(Recursive,递归),否则只会将something这个目录的改动。 在这种情况下也可以使用svn update命令来取消对之前的修改,但不建议使用。因为svn update会去连接仓库服务器,耗费时间。 注意:svn revert本身有固有的危险,因为它的目的是放弃未提交的修改。一旦你选择了恢复,Subversion没有方法找回未提交的修改。 第二种情况:改动已经被提交(commit)。这种情况下,用svn merge命令来进行回滚。 回滚的操作过程如下: 1). 保证我们拿到的是最新代码: svn update 假设最新版本号是28。 2). 然后找出要回滚的确切版本号: svn log [something] 假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目 如果想要更详细的了解情况,可以使用svn diff -r 28:25 [something] 3). 回滚到版本号25: svn merge -r 28:25 something 为了保险起见,再次确认回滚的结果: svn diff [something] 发现正确无误,提交。 4). 提交回滚: svn commit -m "Revert revision from r28 to r25,because of ..." 提交后版本变成了29。 将以上操作总结为三条如下: a. svn update,svn log,找到最新版本(latest revision) b. 找到自己想要回滚的版本号(rollbak revision) c. 用svn merge来回滚: svn merge -r : something 10. 查看SVN仓库日志信息: # svn log [workcopy] 查看所有本地的历史日志,如果workcopy为某文件,那么就是查看某个文件的日志信息。 查看SVN仓库所有文件的日志信息: # svn log https://svn.sinaapp.com/appname/ 这个命令会查看所有修改过的日志。 注:SAE提供的SVN服务完全支持标准SVN的所有命令,更详细的使用说明请查阅SVN官方帮助文档。 SVN命令帮助文档:http://www.subversion.org.cn/svnbook/1.4/svn.ref.html 中文完全帮助文档:http://svnbook.red-bean.com/index.zh.html

Continue