Vi/vim学习报告

vi/vim 包括命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)三种模式

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。

以下是常用的几个命令:

  1. i 切换到输入模式,以输入字符。
  2. x 删除当前光标所在处的字符。
  3. : 切换到底线命令模式,以在最底一行输入命令。
    若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键(相当于一个文本编辑器):

  1. 字符按键以及Shift组合,输入字符
  2. ENTER,回车键,换行
  3. BACK SPACE,退格键,删除光标前一个字符
  4. DEL,删除键,删除光标后一个字符
  5. 方向键,在文本中移动光标
  6. HOME/END,移动光标到行首/行尾
  7. Page Up/Page Down,上/下翻页
  8. Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  9. ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有:

  1. :q 退出程序
  2. :w 保存文件
  3. :wq保存并退出

按ESC键可随时退出底线命令模式。

vi/vim创建/打开文件
如想要打开文件filename.text,则在终端输入指令:
vi filename.text
当文件filename.text存在于当前目录时,将其打开,如果不存在,则创建文件名为filename.text的文件并打开。

上述内容已经足够用了
查看更多按键指令

Java学习报告(以小程序计算器为例)

导入库:
vi,java,ant 和Junit 学习报告
将已有的库函数导入到程序以便后续的使用,相当于C++/C的include。

类声明:
vi,java,ant 和Junit 学习报告
extends表示继承于JFrame类。
GUI相关内容
1. 构建按钮,文本面板
vi,java,ant 和Junit 学习报告
vi,java,ant 和Junit 学习报告
其中GridLayout是网格型的面板,在这里MAGIC_NUMBER_2值是4,即构建了一个4*4的网格面板,而BorderLayout是边界型面板,指处于中间的控件优先级大于处于其他方位的控件,即当整体窗口拉大时,处于中间的控件会优先放大挤压周围的控件。
2. 构建一个输入框
vi,java,ant 和Junit 学习报告
vi,java,ant 和Junit 学习报告
文本输入框的文本可以通过text.getText()和text.setText(“….”)函数进行获取和修改。
3. 构建按钮
vi,java,ant 和Junit 学习报告
vi,java,ant 和Junit 学习报告
vi,java,ant 和Junit 学习报告
4. 将文本输入框等加入到文本面板
vi,java,ant 和Junit 学习报告
vi,java,ant 和Junit 学习报告
5. 在主面板建立一个边界面板并将文本面板和按钮面板添加进去
vi,java,ant 和Junit 学习报告
vi,java,ant 和Junit 学习报告
6. 对于每个按钮,都需要添加一个动作监听函数,用于处理相应的点击事件
vi,java,ant 和Junit 学习报告
其中String btText = e.getActionCommand();是用于获取被点按钮的文本内容;
handleCalculation(btText);用于处理相应按钮点击的事件,逻辑实现不需要什么Java知识,C/C++知识就够用了。
7. 弹出提示信息
vi,java,ant 和Junit 学习报告
vi,java,ant 和Junit 学习报告
构造函数参数依次是提示组件类型,提示信息,提示标题,提示类型。
其他值得注意的地方
1. 字符串的比较需要调用equals()函数,而不是用 ==;
2. 基本类型相互转换可以通过valueOf(…)函数实现,如浮点数para转字符串String.valueOf(para);同理,字符串para转浮点数Double.valueOf(para);
3. 主函数写法:
vi,java,ant 和Junit 学习报告
主函数声明的写法与C/C++有些不一样。
在主函数中,我用Runnable类建立了一个线程并使用了Java的try{…}catch(Exception e){…}异常处理。

Ant学习报告

Eclipse导出build.xml
vi,java,ant 和Junit 学习报告
对项目点右键并选择Export,查找ant后可以导出Eclipse自动生成的build.xml
build.xml内容分析(使用导出的build.xml为例,自己写的太简单了)
vi,java,ant 和Junit 学习报告
项目声明,name是名称,default是首先运行的target,target相当于函数,basedir是基于的文件位置,.表示当前位置。
vi,java,ant 和Junit 学习报告
项目属性定义,方便后面的使用,相当于宏定义。
vi,java,ant 和Junit 学习报告
定义好生成类的路径
vi,java,ant 和Junit 学习报告
为项目的执行做好先行工作,创建好目标文件夹等
vi,java,ant 和Junit 学习报告
清理原有的目标文件夹
vi,java,ant 和Junit 学习报告
首要执行的target,depends表示该目标的执行建立在depends里面的target执行完后的前提下
vi,java,ant 和Junit 学习报告
进行编译,并将生成文件放在上面定义好的路径,其中${…}指的是用上面的宏值替换
vi,java,ant 和Junit 学习报告
description是target的描述,相当于注释
在云桌面终端进入build.xml存在的目录使用ant指令可以编译出目标文件
没有全部贴出来,因为有些没有用到,有些重复了我说过的功能

Junit学习报告

Eclipse内使用Junit
vi,java,ant 和Junit 学习报告
HelloWorld改写成上图的样子,通过assertEquals(…,…)函数利用了Junit 的测试功能,当然还有其他用于测试的函数,再添加一个runTest类添加主函数测试
vi,java,ant 和Junit 学习报告
执行结果
vi,java,ant 和Junit 学习报告
vi,java,ant 和Junit 学习报告
说明测试通过Message是等于”Hello World!\n”的。

相关文章: