1. 刪除行命令
dd: 刪除游標(biāo)所在的一整行(常用)
ndd: n為數(shù)字。刪除光標(biāo)所在的向下n行,例如20dd則是刪除光標(biāo)所在的向下20行
d1G: 刪除光標(biāo)所在到第一行的所有數(shù)據(jù)
dG: 刪除光標(biāo)所在到最后一行的所有數(shù)據(jù)
d$: 刪除光標(biāo)所在處,到該行的最后一個(gè)字符
d0: 那個(gè)是數(shù)字0,刪除光標(biāo)所在到該行的最前面的一個(gè)字符
x,X: x向后刪除一個(gè)字符(相當(dāng)于[del]按鍵),X向前刪除一個(gè)字符(相當(dāng)于[backspace]即退格鍵)
2. 插入命令
I 在當(dāng)前行首插入
A 在當(dāng)前行尾插入
o 在當(dāng)前行之后插入一行
O 在當(dāng)前行之前插入一行
3. 移動(dòng)命令
w 向前移動(dòng)一個(gè)單詞(光標(biāo)停在單詞首部),如果已到行尾,則轉(zhuǎn)至下一行行首。此命令快,可以代替l命令。
b 向后移動(dòng)一個(gè)單詞 2b 向后移動(dòng)2個(gè)單詞
到指定行,冒號(hào)+行號(hào),回車,比如跳到240行就是 :240回車
Ctrl + e 向下滾動(dòng)一行
Ctrl + y 向上滾動(dòng)一行
Ctrl + f 向下滾動(dòng)一屏
Ctrl + b 向上滾動(dòng)一屏
4. 拷貝和粘貼
yy 拷貝當(dāng)前行
nyy 拷貝當(dāng)前后開(kāi)始的n行,比如2yy拷貝當(dāng)前行及其下一行。
p 在當(dāng)前光標(biāo)后粘貼,如果之前使用了yy命令來(lái)復(fù)制一行,那么就在當(dāng)前行的下一行粘貼。
shift+p 在當(dāng)前行前粘貼
...
posted @
2019-01-29 13:59 楊愛(ài)友 閱讀(197) |
評(píng)論 (0) |
編輯 收藏
參考文章:
http://wenku.baidu.com/link?url=kq8VcGwEedCn5hHdSDbPsQrJCapBZje0DRRzyvEOkpqVOEP5XV--dtSL3RNC9a5Mf9K3mSJOGVwYt8VHjpUoBVTQ0L5z3WOSV-dTpSgs-My
用一張空的U盤(pán),利用支持軟件和ISO鏡像文件制作安裝盤(pán),然后將USB3.0驅(qū)動(dòng)程序放進(jìn)U盤(pán)
在格式化步驟,格式化完之后要加載USB3的驅(qū)動(dòng)程序,否則安裝WIN7后無(wú)法使用鼠標(biāo)和鍵盤(pán)
參考文章:http://bbs.feng.com/read-htm-tid-8203477.html
啟動(dòng)WIN7后,可能出現(xiàn)黑屏“無(wú)法驗(yàn)證簽名文件”,把windows\system32\drivers 里面那個(gè)AppleSSD.sys干掉
參考文章:http://bbs.feng.com/read-htm-tid-9791867.html
最后進(jìn)入WIN7系統(tǒng),此時(shí)之后一個(gè)盤(pán)符,需要再進(jìn)行分盤(pán),按照網(wǎng)上介紹,“壓縮卷--新建簡(jiǎn)單分區(qū)“進(jìn)行,發(fā)現(xiàn)竟然把原有MAC系統(tǒng)干掉了,這里千萬(wàn)注意!
然后就是到bootcamp/drivers下面找一些網(wǎng)絡(luò)、顯卡等的驅(qū)動(dòng)進(jìn)行點(diǎn)擊安裝。
posted @
2015-09-25 16:48 楊愛(ài)友 閱讀(291) |
評(píng)論 (0) |
編輯 收藏
摘要: 先在客戶端注冊(cè)一個(gè)callback, 然后把callback的名字傳給服務(wù)器。
此時(shí),服務(wù)器先生成 json 數(shù)據(jù)。
然后以 javascript 語(yǔ)法的方式,生成一個(gè)function , function 名字就是傳遞上來(lái)的參數(shù) jsonp.
最后將 json 數(shù)據(jù)直接以入?yún)⒌姆绞剑胖玫?function 中,這樣就生成了一段 js 語(yǔ)法的文檔,返回給客戶端。
客戶端瀏覽器,解析script標(biāo)簽,并執(zhí)行返回的 javascript 文檔,此時(shí)數(shù)據(jù)作為參數(shù),傳入到了客戶端預(yù)先定義好的 callback 函數(shù)里.(動(dòng)態(tài)執(zhí)行回調(diào)函數(shù))
美麗涵涵童裝店
閱讀全文
posted @
2014-10-29 14:57 楊愛(ài)友 閱讀(9384) |
評(píng)論 (5) |
編輯 收藏
摘要: Spring源代碼解析(一):IOC容器:http://www.javaeye.com/topic/86339
Spring源代碼解析(二):IoC容器在Web容器中的啟動(dòng):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 楊愛(ài)友 閱讀(2720) |
評(píng)論 (0) |
編輯 收藏
摘要:
提高淘寶店鋪訪問(wèn)量辦法 閱讀全文
posted @
2014-10-29 14:34 楊愛(ài)友 閱讀(4710) |
評(píng)論 (0) |
編輯 收藏
摘要:
Spring源碼學(xué)習(xí)-bean加載
一個(gè)applicationContext.xml配置文件,這個(gè)不可少
一個(gè)bean,這里我沒(méi)用接口,直接用一個(gè)普通的類做為Spring的bean
一個(gè)Junit測(cè)試類
閱讀全文
posted @
2014-08-29 10:47 楊愛(ài)友 閱讀(10867) |
評(píng)論 (3) |
編輯 收藏
學(xué)習(xí)源碼是一件非常耗時(shí)費(fèi)力的事情,需要有足夠的時(shí)間和持久的耐心,下面是我閱讀郝佳老師的《Spring源碼深度解析》所做的記錄,書(shū)中以Spring3.2講解,使用jdk1.7。
準(zhǔn)備工作
1. 安裝github:現(xiàn)在spring源代碼都在github管理,所以首先需要下載githup,下載地址http://windows.github.com;
2. 安裝gradle構(gòu)建工具:下載地址http://www.gradle.org/downloads,下載完后進(jìn)行解壓到任意盤(pán)符,然后增加環(huán)境變量GRADLE_HOME,并在環(huán)境變量bin中增加%GRADLE_HOME%/bin,打開(kāi)DOS窗口,運(yùn)行g(shù)radle -v,出現(xiàn)版本號(hào)等信息,表示安裝成功;
3. 下載Spring源碼:首先打開(kāi)git shell,切換到你的工作目錄,然后輸入以下命令:git clone git://github.com/SpringSource/Spring-framework.git,后面一串是源碼下載地址。大概半小時(shí)的樣子,就可以下載完成,這時(shí)候在你的工作目錄中就會(huì)出現(xiàn)Spring-framework的目錄,里面有Spring各組件的源碼包;
4. 構(gòu)建導(dǎo)入:下載下來(lái)的代碼不能直接導(dǎo)入Eclipse,要先轉(zhuǎn)換成Eclipse能讀取的形式。因?yàn)樗薪M件都會(huì)依賴spring-core,所有我們首先要轉(zhuǎn)換Spring-core工程,在命令窗口切換到Spring-core工程,運(yùn)行g(shù)radle cleanidea eclipse命令,我們會(huì)看到開(kāi)始下載工程所依賴的jar包,幾分鐘后執(zhí)行完畢,再來(lái)看Spring-core文件夾,多了.classpath、.project等文件,這是Eclipse工程所必須的,然后可以把他導(dǎo)入到eclipse。因?yàn)榇蟛糠諷pring組件都會(huì)用到 spring-beans、spring-context、spring-aop,而他們又依賴spring-expression、spring-instrument,所以我們干脆先把這些工程都進(jìn)行轉(zhuǎn)換并導(dǎo)入eclipse。
我初次導(dǎo)入過(guò)程并不順利,拿spring-core為例,其中以來(lái)的一個(gè)jar包是Spring-framework/spring-core/build/libs/spring-asm-repack-4.0.jar,但我工程里面并沒(méi)有他,只好在網(wǎng)上下載了一個(gè),并加入構(gòu)建路徑,其次我還發(fā)現(xiàn)少commons-pool-1.5.3.jar、spring-cglib-repack-3.0.jar,都一一下載,最后還是報(bào)錯(cuò)沒(méi)有java.util.concurrent.ForkJoinPool類,發(fā)現(xiàn)這個(gè)版本必須使用jdk1.7以上,1.6沒(méi)有這個(gè)包。折騰半天,終于幾個(gè)工程沒(méi)變異錯(cuò)誤了,向前邁進(jìn)了一步。
posted @
2014-08-21 16:04 楊愛(ài)友 閱讀(5952) |
評(píng)論 (2) |
編輯 收藏
場(chǎng)景1:aService里面有個(gè)savePerson方法,里面將調(diào)用bService中的保存方法進(jìn)行保存;
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);
}
因?yàn)閟aveTwo的傳播特性設(shè)置為requires_new,saveTwo方法單獨(dú)起一個(gè)事務(wù),所以當(dāng)調(diào)用saveOne拋出異常之后,不會(huì)影響saveTwo事務(wù)提交,事實(shí)上,在saveTwo返回之前已經(jīng)將事務(wù)提交,所以p1、p2對(duì)象能保存入庫(kù);
如果將saveTwo方法的傳播特性設(shè)置為required,這時(shí)候三個(gè)方法公用一個(gè)事務(wù),當(dāng)saveOne拋出異常后,整個(gè)事務(wù)回滾,數(shù)據(jù)不能入庫(kù);
場(chǎng)景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);
}
因?yàn)楫惓1籧atch了,所以事務(wù)不回滾,p1正常入庫(kù);
場(chǎng)景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);
}
開(kāi)始以為有了try catch,p1能保存進(jìn)去,但經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)會(huì)報(bào)錯(cuò)。因?yàn)閟aveTwo時(shí)拋出異常,首先被spring框架個(gè)catch住,將事務(wù)標(biāo)記為rollbackonly,然再往出拋異常,最后被savePerson方法catch住,所以事務(wù)能夠提交,但當(dāng)提交的時(shí)候,
發(fā)現(xiàn)標(biāo)志位已經(jīng)被設(shè)置了,不應(yīng)該去提交了,然后吭哧吭哧的回滾調(diào),再提示你已經(jīng)被設(shè)置成rollback-only了。
但如果saveTwo的傳播特性改為require_new,因?yàn)樗麊纹鹨粋€(gè)事務(wù),不會(huì)影響父事務(wù)的提交,所以p1能保存,p2失敗;
場(chǎng)景4:
事務(wù)在多個(gè)對(duì)象之間才有傳播特性
@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);
}
兩個(gè)方法在一個(gè)類里面,
saveTwo并沒(méi)有事務(wù),p1能提交;但如果把saveTwo放到另外一個(gè)類,則saveTwo就會(huì)有事務(wù),p1不能提交;
如果要同一個(gè)類里面的saveTwo執(zhí)行事務(wù),可在配置文件增加<aop:aspectj-autoproxy expose-proxy="true"/>,然后((Iservice)AopContext.currentProxy()).
saveTwo(),這樣執(zhí)行的就是代理的方法,就會(huì)有事務(wù)(Iservice必須是你定義的接口)
posted @
2014-08-08 15:43 楊愛(ài)友 閱讀(2746) |
評(píng)論 (0) |
編輯 收藏