`
iamxi
  • 浏览: 191803 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
叫檔、存檔、緊急回復   ㄟ,是不是在灌水呀!怎麼開個檔也成一個單元?那您就錯了,在 vi(m) 裡叫檔的花樣可多了,而且又可以多檔編輯,各編輯中的檔案還可以互通訊息,這裡面學問可大著呢!vim 就更騷包了,也學人家檔案可以加密,雖說是噱頭,但也還滿好用的。     開檔的一些花招 vim + 檔名 這樣開檔後,游標會落在檔案最後一行的行尾,在檔 案屁屁後幹什麼呢?方便您可以繼續編輯嘛!:-) vim +n 檔名 游標會落在第 n 行的行首。 vim +/string 檔名 還記得嗎? / 就是尋找指令,這樣 ...
尋找、替換   搜尋、替換的功能幾乎是每個編輯器必備的功能,那在 vi(m) 中有沒有特殊的地方呢?當然有,您忘了,vi(m) 是個性十足的編輯器。最特殊的地方是和規則表示式(regular expression,簡稱 regexp)結合在一起。簡單的說她是一種 pattern 的表示法,在執行動作,如尋找或替換,就會依據這個 pattern 去找,所有符合 pattern 的地方就會執行您所下的動作。在這個單元裡暫不討論 regexp,會另立一個單元來探討,以免搞得頭昏腦脹。目前就暫不使用 regexp,您要找什麼就直接鍵入什麼就對了。 尋找 / ...
複製(yank)   yank 是什麼意思?有疑問的請查一下字典吧!就好像是中醫治療中的「拔罐」的意思啦(是不是叫「拔罐」?知道的朋友指正一下吧)!反正在 vi(m) 中,她就是複製 copy 的意思。這在 vi(m) 的思考邏輯裡,就是 ...
基本編輯指令   這個單元就開始進入主題了。下編輯指令都是在 commond-mode(c-mode),就是您一進入 vim 時的模式,只能下指令,不能鍵入文字。如果印象模糊,請瞄一下第一個單元的內容。這個單元說的是基本的指令,有些比較特殊的編輯指令,因為太有個性了,所以會獨立成一個單元來說明。     進入i-mode指令 i 在游標所在字元前開始輸入文字(insert)。 a 在游標所在字元後開始輸入文字(append)。 o 在游標所在行下開一新行來輸入文字(open)。 I 在行首開始輸入文字。 此之行首指第一個非空白字元處,要從真 ...
游標的移動 本節所述皆是在 common-mode(c-mode,在 vim 又名 normal-mode)下的移動,原始的 vi 只能在 c-mode 移動游標,在 insert-mode 只做文字的輸入,而不做游標的移動。當然 vim 及 elvis 的方向鍵是不論在那一種 mode 皆可移動自如。     基本的游標移動 h 左,或 Backspace 或方向鍵 j 下,或 Enter 或 +(要 Shift 鍵),或方向鍵 k 上,或 方向鍵或 -(不必 Shift 鍵) l 右,或 Space 或方向鍵 使用 hjkl 鍵的移動是 ...
本文出自:http://www.study-area.org/tips/vim/index.html 因为最近在学vim,所以转过来。里面是繁体,好多都是台湾的计算机术语,看的时候有点怪异,不过还是不影响阅读的。 大家來學VIM(一個歷久彌新的編輯器)[一]   前言 ...
      在好多论坛上很多人都推荐《程序员修炼之道》这本书,自己也是很希望提升自己的能力,所以早早的就像买来看看。之前下了这本书的电子书看了下,感觉很不错,锁前几天就在网上买了本回来。所以这几天都在研读 ...
     前天,偶然发现在远程调用EJB的时候抛出的异常比较怪异。之前知道调用SessionBean时候,如果接口抛出了异常,EJB会对异常有一次封装,都变成了EJBException。所以在捕获的时候都是捕获这个异常。可这次却抛出了一个自己定义的异常,导致了无法捕获。查了下EJB的一些说明,建议是不要在SessionBean抛出继承RuntimeException的异常,因为EJBexception继承RuntimeException的。我这边自定义的异常用于业务流程控制,恰好也继承了RuntimeException(为什么继承这个。。。因为不抛出RuntimeException或其子类,EJ ...
JAVA支持方法的可变参数。类似如下 public void method1(String... arg1);  这样,调用method1时候,参数的数量是可变的,如method1("1","2","3")。注意可变参数只能是最后一个参数。 JAVA内部是把这样的参数看成一个数组来处理。在获取多个参数的时候可以用数组遍历来完成。 for (String temp : arg1) { System.out.println("one of the arguments is " + temp); ...
看了下ArrayList的源码,记录下自己的解读心得与体会。   ArrayList的自动变长机制 都知道ArrayList不像数组那样是定长的,然而ArrayList也使用了数组来保存数据,所以么,自然很关心是怎么实现变长的。   ArrayList通过ensureCapaci ...
为了提高自己的Java开发能力,我也向高手、牛人学习,去解读源码。自己底子差了点,不过看个源码还是没问题的。第一站ArrayList。 源码为Java 1.7的源码 ArrayList是一个实现可变长数组,继承AbstractList类,实现所有的List接口,还实现了RandomAccess、Cloneable、Serializable接口。ArrayList不进行同步,除此之外基本和Vector等同。   1、成员变量   private transient Object[] elementData; elementData用于保存数据的数组。   priv ...
Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别。和C语言一样,当把Java的基本数据类型(如int,char,double等)作为 入口参数传给函数体的时候,传入的参数在函数体内 ...
大型重构的重要性 大型重构没有那些小动作那样立竿见影的效果,不过它可以帮助我们解决那些堆积了很久,影响范围又很大的问题。   Tease Apart Inheritance (梳理并分解继承体系) 用于处理混乱的继承体系——这种继承体系往往以一种令人迷惑的方式组合了数个不同方面的变化( variations )。   某个继承体系( inheritance hierarchy )同时承担两项责任。 建立两个继承体系,并通过委托关系( delegation )让其中一个可以调用 ...
测试……一年前,我开发的时候还是很不在乎测试,不过那个时候也没人告诉我测试的重要性。知道意识到要提高自己,学习中看到了那么多提到测试的,所以慢慢的尝试使用(大部分是单元测试),然后深深的爱上了单元测试(其他测试呢,好吧,编程中的确比较少用到其他测试,我比较懒)。 作者在前面反复提到测试在重构中的重要性,这章就是介绍测试的。   自我测试代码的价值: 编码往往只占了开发中的小部分时间,很多时间不是在沟通、设计,就是在找 BUG 。。。专业点,应该叫调试( debug )。测试的主要作用就是帮助调试,帮助开发中发现潜在的 BUG , ...
代码的坏味道 … 老外没有艺术细胞,作为一名大师级任务,好歹给起个好听点的名称。向金庸老人家学习下,让我们也感染下艺术气息。   我认为吗,坏味道就是对一段问题代码的感觉,从感性慢慢分析到理性。这种感觉需要在实践中培养。观看这里的介绍只能有个大概的理解方向,只有在反复在实际的代码中去体会,才能运用自如。   我也是爱国人士,也很不喜欢英语,不过毕竟都是老外的东西,为了避免一些名词的混淆,我还是用英语加翻译的方式。   一、 重复代码( Duplicated Code ) 很直观的一个问题,就算新手 ...
Global site tag (gtag.js) - Google Analytics