1. 删除行命令
dd: 删除游标所在的一整行(常用)
ndd: n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行
d1G: 删除光标所在到第一行的所有数据
dG: 删除光标所在到最后一行的所有数据
d$: 删除光标所在处,到该行的最后一个字符
d0: 那个是数字0,删除光标所在到该行的最前面的一个字符
x,X: x向后删除一个字符(相当于[del]按键),X向前删除一个字符(相当于[backspace]即退格键)
2. 插入命令
I 在当前行首插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
3. 移动命令
w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替l命令。
b 向后移动一个单词 2b 向后移动2个单词
到指定行,冒号+行号,回车,比如跳到240行就是 :240回车
Ctrl + e 向下滚动一行
Ctrl + y 向上滚动一行
Ctrl + f 向下滚动一屏
Ctrl + b 向上滚动一屏
4. 拷贝和粘贴
yy 拷贝当前行
nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。
p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。
shift+p 在当前行前粘贴
...
posted @
2019-01-29 13:59 杨爱友 阅读(179) |
评论 (0) |
编辑 收藏
参考文章:
http://wenku.baidu.com/link?url=kq8VcGwEedCn5hHdSDbPsQrJCapBZje0DRRzyvEOkpqVOEP5XV--dtSL3RNC9a5Mf9K3mSJOGVwYt8VHjpUoBVTQ0L5z3WOSV-dTpSgs-My
用一张空的U盘,利用支持软件和ISO镜像文件制作安装盘,然后将USB3.0驱动程序放进U盘
在格式化步骤,格式化完之后要加载USB3的驱动程序,否则安装WIN7后无法使用鼠标和键盘
参考文章:http://bbs.feng.com/read-htm-tid-8203477.html
启动WIN7后,可能出现黑屏“无法验证签名文件”,把windows\system32\drivers 里面那个AppleSSD.sys干掉
参考文章:http://bbs.feng.com/read-htm-tid-9791867.html
最后进入WIN7系统,此时之后一个盘符,需要再进行分盘,按照网上介绍,“压缩卷--新建简单分区“进行,发现竟然把原有MAC系统干掉了,这里千万注意!
然后就是到bootcamp/drivers下面找一些网络、显卡等的驱动进行点击安装。
posted @
2015-09-25 16:48 杨爱友 阅读(279) |
评论 (0) |
编辑 收藏
摘要: 先在客户端注册一个callback, 然后把callback的名字传给服务器。
此时,服务器先生成 json 数据。
然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数 jsonp.
最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。
客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里.(动态执行回调函数)
美丽涵涵童装店
阅读全文
posted @
2014-10-29 14:57 杨爱友 阅读(9362) |
评论 (5) |
编辑 收藏
摘要: Spring源代码解析(一):IOC容器:http://www.javaeye.com/topic/86339
Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.javaeye.com/topic/86594
Spring源代码解析(三):Spring JDBC:http://www.javaeye.com/topic/87034
Spring源代码解析(四):Spring MVC:http://www.javaeye.com/topic/87692
Spring源代码解析(五):Spring AOP获取Proxy:http://www.javaeye.com/topic/88187
美丽涵涵童装店
阅读全文
posted @
2014-10-29 14:54 杨爱友 阅读(2708) |
评论 (0) |
编辑 收藏
摘要:
提高淘宝店铺访问量办法 阅读全文
posted @
2014-10-29 14:34 杨爱友 阅读(4693) |
评论 (0) |
编辑 收藏
摘要:
Spring源码学习-bean加载
一个applicationContext.xml配置文件,这个不可少
一个bean,这里我没用接口,直接用一个普通的类做为Spring的bean
一个Junit测试类
阅读全文
posted @
2014-08-29 10:47 杨爱友 阅读(10849) |
评论 (3) |
编辑 收藏
学习源码是一件非常耗时费力的事情,需要有足够的时间和持久的耐心,下面是我阅读郝佳老师的《Spring源码深度解析》所做的记录,书中以Spring3.2讲解,使用jdk1.7。
准备工作
1. 安装github:现在spring源代码都在github管理,所以首先需要下载githup,下载地址http://windows.github.com;
2. 安装gradle构建工具:下载地址http://www.gradle.org/downloads,下载完后进行解压到任意盘符,然后增加环境变量GRADLE_HOME,并在环境变量bin中增加%GRADLE_HOME%/bin,打开DOS窗口,运行gradle -v,出现版本号等信息,表示安装成功;
3. 下载Spring源码:首先打开git shell,切换到你的工作目录,然后输入以下命令:git clone git://github.com/SpringSource/Spring-framework.git,后面一串是源码下载地址。大概半小时的样子,就可以下载完成,这时候在你的工作目录中就会出现Spring-framework的目录,里面有Spring各组件的源码包;
4. 构建导入:下载下来的代码不能直接导入Eclipse,要先转换成Eclipse能读取的形式。因为所有组件都会依赖spring-core,所有我们首先要转换Spring-core工程,在命令窗口切换到Spring-core工程,运行gradle cleanidea eclipse命令,我们会看到开始下载工程所依赖的jar包,几分钟后执行完毕,再来看Spring-core文件夹,多了.classpath、.project等文件,这是Eclipse工程所必须的,然后可以把他导入到eclipse。因为大部分Spring组件都会用到 spring-beans、spring-context、spring-aop,而他们又依赖spring-expression、spring-instrument,所以我们干脆先把这些工程都进行转换并导入eclipse。
我初次导入过程并不顺利,拿spring-core为例,其中以来的一个jar包是Spring-framework/spring-core/build/libs/spring-asm-repack-4.0.jar,但我工程里面并没有他,只好在网上下载了一个,并加入构建路径,其次我还发现少commons-pool-1.5.3.jar、spring-cglib-repack-3.0.jar,都一一下载,最后还是报错没有java.util.concurrent.ForkJoinPool类,发现这个版本必须使用jdk1.7以上,1.6没有这个包。折腾半天,终于几个工程没变异错误了,向前迈进了一步。
posted @
2014-08-21 16:04 杨爱友 阅读(5933) |
评论 (2) |
编辑 收藏
场景1:aService里面有个savePerson方法,里面将调用bService中的保存方法进行保存;
aService代码:
@Transactional(propagation=Propagation.REQUIRED)
public void savePerson() {
Person p1 = new Person();
p1.setName("yangay");
Person p2 = new Person();
p2.setName("lisan");
messageBean.saveTwo(p1, p2);
messageBean.savePerson(null);
}
bService代码:
@Transactional(propagation=Propagation.REQUIRED)
public void saveOne(Person p){
this.dao.save(p);
}
@Transactional(propagation=Propagation.REQUIRES_NEW)
public void saveTwo(Person p1,Person p2){
this.dao.save(p1);
this.dao.save(p2);
}
因为saveTwo的传播特性设置为requires_new,saveTwo方法单独起一个事务,所以当调用saveOne抛出异常之后,不会影响saveTwo事务提交,事实上,在saveTwo返回之前已经将事务提交,所以p1、p2对象能保存入库;
如果将saveTwo方法的传播特性设置为required,这时候三个方法公用一个事务,当saveOne抛出异常后,整个事务回滚,数据不能入库;
场景2:
aService代码:
@Transactional(propagation=Propagation.REQUIRED)
public void savePerson() {
try{
Person p1 = new Person();
p1.setName("yangay");
Person p2 = new Person();
p2.setName("lisan");
messageBean.saveTwo(p1, null);
}catch(Exception ex){
ex.printStackTrace();
}
}
bService代码:
@Transactional(propagation=Propagation.REQUIRED)
public void saveTwo(Person p1,Person p2){
this.dao.save(p1);
this.dao.save(p2);
}
因为异常被catch了,所以事务不回滚,p1正常入库;
场景3:
aService代码:
@Transactional(propagation=Propagation.REQUIRED)
public void savePerson() {
try{
Person p1 = new Person();
p1.setName("yangay");
Person p2 = new Person();
p2.setName("lisan");
messageBean.saveOne(p1);
messageBean.saveTwo(p2, null);
}catch(Exception ex){
ex.printStackTrace();
}
}
bService代码:
@Transactional(propagation=Propagation.REQUIRED)
public void saveOne(Person p){
this.dao.save(p);
}
@Transactional(propagation=Propagation.REQUIRED)
public void saveTwo(Person p1,Person p2){
this.dao.save(p1);
this.dao.save(p2);
}
开始以为有了try catch,p1能保存进去,但经过测试,发现会报错。因为saveTwo时抛出异常,首先被spring框架个catch住,将事务标记为rollbackonly,然再往出抛异常,最后被savePerson方法catch住,所以事务能够提交,但当提交的时候,
发现标志位已经被设置了,不应该去提交了,然后吭哧吭哧的回滚调,再提示你已经被设置成rollback-only了。
但如果saveTwo的传播特性改为require_new,因为他单起一个事务,不会影响父事务的提交,所以p1能保存,p2失败;
场景4:
事务在多个对象之间才有传播特性
@Override
public void savePerson() {
Person p1 = new Person();
p1.setName("yangay");
Person p2 = new Person();
p2.setName("lisan");
saveTwo(p1,null);
}
@Transactional(propagation=Propagation.REQUIRED)
public void saveTwo(Person p1,Person p2){
messageBean.saveOne(p1);
messageBean.saveOne(p2);
}
两个方法在一个类里面,
saveTwo并没有事务,p1能提交;但如果把saveTwo放到另外一个类,则saveTwo就会有事务,p1不能提交;
如果要同一个类里面的saveTwo执行事务,可在配置文件增加<aop:aspectj-autoproxy expose-proxy="true"/>,然后((Iservice)AopContext.currentProxy()).
saveTwo(),这样执行的就是代理的方法,就会有事务(Iservice必须是你定义的接口)
posted @
2014-08-08 15:43 杨爱友 阅读(2733) |
评论 (0) |
编辑 收藏
当我把jboss/client下的所有jar和ejb工程jar方到web工程下,编写main函数可以调用到EJB的bean,而将web工程发布出去后,就调用不到了,报错“javax.naming.NameNotFoundException: xxx not bound”,
折腾了五六个小时,网上说了各种各样的原因,都没能解决,最后看这位兄弟的文章,问题才得以解决。
http://blog.163.com/zzk331@126/blog/static/142674599200957111441126/
如果你的问题解决了,请回复我!
posted @
2014-05-28 16:56 杨爱友 阅读(6278) |
评论 (0) |
编辑 收藏
摘要: 来到互联网公司,需要开发EJB程序,用两天的时间先学习了EJB的开发流程,我用的开发环境是myeclipse、jboss4.2、ejb3.0、struts1.3.8、jkd6、oracle、JPA,页面展现用到velocity。其实这不是一个春对ejb的学习文章,因为里面涉及了跟ejb无关的struts、velocity,如果单纯学习写ejb的helloword,数据库都不用连接,下面我描述下helloword程序的实现过程。
虽然技术含量不高,但写的很辛苦,需要占用首页一个位置。
阅读全文
posted @
2014-05-28 15:28 杨爱友 阅读(5776) |
评论 (4) |
编辑 收藏
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<style>
</style>
</head>
<body>
<div>
<div id="chartdiv1" style="width: 300px; height: 300px;float:left;border: 1px solid red;"></div>
<div id="chartdiv2" style="width: 300px; height: 300px;float:right;border: 1px solid red;"></div>
<div style="clear:left;"></div>
<div id="chartdiv3" style="width: 300px; height: 300px;float:left;border: 1px solid blue;"></div>
<div id="chartdiv4" style="width: 300px; height: 300px;float:right;border: 1px solid blue;"></div>
</div>
</body>
</html>
posted @
2013-10-09 16:25 杨爱友 阅读(1363) |
评论 (0) |
编辑 收藏
摘要: 地心坐标系(geocentric cs、GEOCCS):以地球中心为原点,直接用X、Y、Z来进行位置的描述,无需模拟地球球面,常用在GPS中。
地理坐标系(geographic cs、GEOGCS):带Datum的椭球面坐标系,单位经度、纬度,高程用作第三维。参数:椭球体、基准面。
投影坐标系(projected cs、PROJCS):平面坐标系,单位米、英尺等,它用X(Easting)、Y(Northing)来描述地球上某个点的位置。它对应于某个地理坐标系,在UML中表示属于1对多的关系,1个地理坐标系经过不同的投影方式可产生多个投影坐标系。参数:地理坐标系、投影方式。
阅读全文
posted @
2013-06-26 16:10 杨爱友 阅读(1361) |
评论 (0) |
编辑 收藏
1. 说出常用的GIS平台,arcgis的产品线?
2. 地理坐标系、投影坐标系和地心坐标系的概念?
3. 描述一下矢量数据和栅格数据,以及各自应用的领域?
posted @
2013-06-26 15:53 杨爱友 阅读(190) |
评论 (0) |
编辑 收藏
【转自:http://www.blogjava.net/Alpha/archive/2009/06/27/284373.html】
Flex中As调用Js的方法是: 1、导入包 (import flash.external.ExternalInterface;) 2、使用ExternalInterface.call("Js函数名称",参数)进行调用,其返回的值就是Js函数所返回的值 Js调用As的方法是: 1、导入包 (import flash.external.ExternalInterface;) 2、在initApp中使用ExternalInterface.addCallback("用于Js调用的函数名",As中的函数名)进行注册下 3、js中 就可以用document.getElementById("Flas在Html中的ID").注册时设置的函数名(参数)进行调用
posted @
2013-06-26 15:44 杨爱友 阅读(206) |
评论 (0) |
编辑 收藏
关于js中target与currentTarget的区别的关键在于他们所处在的事件流的阶段是不一样的,target处于事件流的目标阶段,currentTarget处理事件流的捕获、目标阶段和冒泡阶段。只有当他们同事处于目标阶段的时候他们的指向才是一样的,请看以下代码:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>js性能优化</title>
</head>
<body>
<div id="outer">
outer
<p>
inner
</p>
</div>
</body>
<script type="text/javascript">
(function(){
var a=document.getElementById('outer');
a.addEventListener('click',function(e){
alert(e.target.innerHTML);
alert(e.currentTarget.innerHTML);
alert(e.currentTarget === e.target);
},false);
})();
</script>
</html>
posted @
2013-06-26 15:34 杨爱友 阅读(327) |
评论 (0) |
编辑 收藏
【转载自http://apps.hi.baidu.com/share/detail/33880627】
地质学范畴,是指平均海平面通过大陆延伸勾画出的一个封闭连续的封闭曲面。
大地水准面是由静止海水面并向大陆延伸所形成的不规则的封闭曲面。它是重力等位面,即物体沿该面运动时,重力不做功(如水在这个面上是不会流动的)。大地水准面是描述地球形状的一个重要物理参考面,也是海拔高程系统的起算面。大地水准面的确定是通过确定它与参考椭球面的间距--大地水准面差距(对于似大地水准面而言,则称为高程异常)来实现的。大地水准面和海拔高程等参数和概念在客观世界中无处不在,在国民经济建设中起着重要的作用。
其实,大地水准面也是一个很不规则的曲面,
大地水准面包围的球体称为大地球体。大地球体的长半轴为6378.245公里,短半轴为6356.863公里。从大地水准面起算的陆地高度,称为绝对高度或海拔。
用于尽可能与大地水准面密合的一个椭球曲面,是人为确定的。椭球体与大地基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的Pulkovo 1942、非洲索马里的Afgooye基准面都采用了Krassovsky椭球体,但它们的大地基准面显然是不同的。
理解:椭球面和地球肯定不是完全贴合的,因而,即使用同一个椭球面,不同的地区由于关心的位置不同,需要最大限度的贴合自己的那一部分,因而大地基准面就会不同。
地图坐标系由大地基准面和地图投影确定,大地基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的大地基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测量协会推荐的IAG 75地球椭球体建立了我国新的大地坐标系--西安80坐标系, 目前GPS定位所得出的结果都属于WGS84坐标系统,WGS84基准面采用WGS84椭球体,它是一地心坐标系,即以地心作为椭球体中心的坐标系。因此相对同一地理位置,不同的大地基准面,它们的经纬度坐标是有差异的。
一般我们所说的WGS84就是指那个基准面。
posted @
2011-09-05 14:50 杨爱友 阅读(1442) |
评论 (0) |
编辑 收藏
摘要: 新加行:这个帖子发帖8年来,已经为太多的朋友解决了问题,不用感谢我,请允许我在这里打个广告:
美丽涵涵童装店,说我博客名字,给你们打折。
restlet入门、示例,赋有源码,下载可直接运行
阅读全文
posted @
2011-07-22 16:39 杨爱友 阅读(8667) |
评论 (2) |
编辑 收藏