好久以前的内容了,发出来留个纪念
vi/vim共有三种模式,分别为命令模式、输入模式以及底线命令模式。
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入输入模式下,或者到底线命令模式。
模式 | 命令 | 作用 |
---|---|---|
命令模式 | i | 切换到输入模式,可以输入字符 |
命令模式 | x | 删除当前光标所在的字符 |
命令模式 | : | 切换到底线命令模式,可以在最底一行输入命令 |
只有在 Insert mode 下,才可以做文字输入,按「ESC」键可回到命令行模式。
模式 | 命令 | 作用 |
---|---|---|
输入模式 | 字符按键 | 输入小写字符 |
输入模式 | Shift/CapsLock+字符按键 | 输入大写字符 |
输入模式 | 回车键(ENTER) | 换行 |
输入模式 | 退格键(BACK SPACE) | 删除光标前一个字符 |
输入模式 | 删除键(DELETE) | 删除光标后一个字符 |
输入模式 | 方向键 | 在文本中移动光标 |
输入模式 | HOME/END | 移动光标到一行文本的行首/行尾 |
输入模式 | Page Up/Down | 上下翻页 |
输入模式 | Insert | 切换光标为输入模式(竖线)或者替换模式(下划线)[编辑器左下角有提示INSERT/REPLACE] |
输入模式 | Esc | 退出输入模式,切换到命令模式 |
输入模式更多常用快捷键
#x:表示删除光标所在位置的“后面”#个字符。
#dd:从光标所在行开始删除#行。
r:替换光标所在处的字符。
R:替换光标所到之处的字符,直到按下「ESC」键为止。
#G:表示移动光标至文章的第 # 行行首。
将文件保存或退出 vi,也可以设置编辑环境,如寻找字符串、列出行号等。
模式 | 命令 | 作用 |
---|---|---|
底线命令模式 | q | 退出程序 |
底线命令模式 | q! | 放弃修改,退出程序 |
底线命令模式 | w filename | 保存文件(文件名:filename) |
底线命令模式 | wq filename | 保存并退出程序(文件名:filename) |
底线命令模式 | Esc | 切换到命令模式 |
这次实训主要是Java的初步入门以及其GUI的使用。Calculator项目我主要是使用了Javax.swing这个GUI库。下面通过部分代码进行讲解:
main函数
//在main函数里调用显示界面的函数
public static void main(String[] args){
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
showUI();
}
});
}
showUI()函数
private static void showUI(){
//新建一个窗口frame,标题为Calculator
JFrame frame = new JFrame("Calculator");
//为窗口frame设置系统默认样式
JFrame.setDefaultLookAndFeelDecorated(true);
//为窗口frame设置系统默认关闭操作
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//为窗口frame设置窗口大小
frame.setSize(403,190);
// 窗口frame添加面板组件
JPanel panel = new JPanel();
frame.add(panel);
// 窗口frame添加其他组件
placeComponents(panel);
//设置窗口可见
frame.setVisible(true);
}
placeComponents()函数(节选)
//文本组件
//新建一个JTextField组件
JTextField addNum1 = new JTextField();
//JTextField组件的(位置x,位置y,长,宽)
addNum1.setBounds(row1,up,size,size);
//JTextField组件内文本居中
addNum1.setHorizontalAlignment(JTextField.CENTER);
//将JTextField组件添加到面板组件
panel.add(addNum1);
//按钮组件
//新建一个JButton组件
JButton plus = new JButton("+");
//JButton组件的(位置x,位置y,长,宽)
plus.setBounds(row1,down,size,size);
//JButton组件被按下时触发的监听事件
plus.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
operate.setText(plus.getText());
}
});
Ant类似于大一上学期的makefile命令,都是实现项目快速编译和部署的工具。个人觉得,相较于makefile,Ant使用的xml格式是的项目编译运行的层次步骤一目了然,对应的编译运行命令更加的简单和容易理解。
< project > 元素:Ant 构件文件的根元素,Ant 构件文件至少应该包含一个 p roject 元素,否则会发生错误。
< target > 元素: Ant 的基本执行单元,它可以包含一个或多个具体的任务。多个 targ et 可以存在相互依赖关系。
< property > 元素:该元素可看作参量或者参数的定义,project 的属性可以通过 property元素来设定,也可在 Ant 之外设定。
delete 任务:对文件或目录进行删除。
mkdir 任务:创建目录
javac 任务:实现编译 Java 程序的功能
java 任务:实现运行 Java 程序的功能
jar 任务:生成 jar 文件
由于云桌面上已经配置好了Ant的运行环境,下面我就展示这次实训的Ant的实践样例。
build.xml
<project name="calculator" default="run" basedir=".">
<property name="src" value="src"/>
<property name="dest" value="class"/>
<property name="dist" value="dist"/>
<property name="calculator_jar" value="calculator.jar"/>
<target name="init">
<mkdir dir="${dest}"/>
<mkdir dir="${dist}"/>
target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}" includeantruntime="on"/>
target>
<target name="build" depends="compile">
<jar jarfile="${dist}/${calculator_jar}" basedir="${dest}"/>
target>
<target name="run" depends="build">
<java classname="Calculator" classpath="${dist}/${calculator_jar}" fork="true"/>
target>
<target name="clean">
<delete dir="${dest}" />
<delete dir="${dist}" />
target>
<target name="rerun" depends="clean,run">
target>
project>
新建两个文件,一个写有基本类HelloWorld.java,另一个是测试类HelloWorldTest.java,把这两个文件放在同一个目录下
基本类HelloWorld.java
import java.util.*;
public class HelloWorld{
public static void main(String[] args){
hello();
}
public static void hello(){
System.out.println("Hello world!");
}
}
测试类HelloWorldTest.java
import static org.junit.Assert.*;
import org.junit.Test;
public class HelloWorldTest {
//新建待测试类的实体
public HelloWorld helloworld = new HelloWorld();
//待测试类的函数hello()的测试
@Test
public void testHello(){
helloworld.hello();
}
}