让ABAP开发者更加轻松的若干快捷键
引言
ABAP是一种和当代编程语言在许多方面有着相当不同的编程语言。ABAP的某些方面可能会让我们奇怪,为什么它会如此复杂?而它的某些方面又是那么杰出,给予了ABAP开发者们比其它任何语言更多的便利。
我发现有两样东西太cool了:
- 朴实的IDE(ABAP Editor)以及
- 酷炫的调试器
尽管SAP的IDE不支持某些更加有名的IDE(比如Eclipse)的一些特点,我依然发现在ABAP Editor中写代码要比其它IDE舒服太多。原因在于以下的快捷键以及它的可定制性。我会列出一些我常用的功能清单,如果没了它们,我可能就没办法写ABAP代码了。
大部分ABAP程序员甚至只有一点ABAP经验的人可能已经了解下面清单的部分内容了。如果你是这样的话,请忽略它们。如果你不是的话,那这部分就是为你准备的。
快捷键
| 快捷键 |
效果 |
|
Ctrl + D |
复制行. 例子 i_vbap TYPE STANDARD TABLE OF vbap + Ctrl-D = i_vbap TYPE STANDARD TABLE OF vbap |
|
Ctrl + / |
跳转到左上角我们输入T-CODE的输入框。这个真的很方便,省去了从键盘切换到鼠标的时间,有的时候你切换键盘和鼠标再回到键盘仅仅是为了点击这个输入框 |
|
Ctrl + J |
将每个单词的首字母转换为大写,写注释的时候十分有用。 例子: * this is a comment which will give absolutely no useful information 将转换为 |
|
Ctrl + I & |
增量搜索。 这是查找(Ctrl + F) 功能的一个小小增强,可以在你键入的同时搜索,对没耐心的人来说很有用 加上Shift反向搜索 |
|
Ctrl + K |
大小写切换. |
|
Alt + 选择 |
在你指向选择表中某些字段的情况下,自动选择是一个很有用的功能。 例子: caufv-aufnr, caufv-werks, caufv-objnr, caufv-plnbez, caufv-gamng, caufv-gasmg, caufv-gmein, caufv-plnnr, caufv-plnal, caufv-dispo, caufv-fevor, caufv-cy_seqnr , caufv-aufpl, caufv-gstrp, caufv-gltrp, caufv-gstrs, caufv-gltrs, caufv-gstri, caufv-gltri, 你可以按住ALT键来把下面的值选中并复制到剪切板中(类似Ctrl+Y) aufnr, werks, objnr, plnbez, gamng, gasmg, gmein, plnnr, plnal, dispo, fevor, cy_seqnr , aufpl, gstrp, gltrp, gstrs, gltrs, gstri, gltri, |
|
Tab & Shift tab |
增加和删除缩进 |
|
Ctrl + O |
前往程序的某一行 |
|
Ctrl + Shift + S |
把当前文件以ABAP格式保存到桌面上,因为学会了这个快捷键,我才了解到.abap格式的存在 |
|
Ctrl + Selection |
当你按住Ctrl选择 **** + -> or <- 的时候,可以选取到符号左侧或者右侧的单词 |
|
Ctrl + . & Ctrl + , |
注释和解除注释 |
|
Ctrl+Alt+T |
交换当前行与上一行的位置。(译者注:个人测试未成功) 例子: INCLUDE ZTEST_ABAP_HTTP_CLIENT_TOP. INCLUDE ZTEST_ABAP_HTTP_CLIENT_C01. 变为 INCLUDE ZTEST_ABAP_HTTP_CLIENT_C01. |
| Ctrl+Shift+L/X | 删除整行 |
| Ctrl + ] & Ctrl + [ | 跳转到上一个段落、下一个段落
段落是用句子间留空行的方式创建的 |
| Ctrl + Shift + Num8 & Ctrl + Shift + Num2 |
在编辑器中以行为单位上下移动,光标位置不随之改变 这个和Page Up & Page Down相似,只是每次移动的是行而不是整页 |
| Ctrl + Spacebar |
显示补全选项列表(译者注:可能和输入法冲突) 例子: 输入CREATE之后,按 Ctrl + Spacebar将会显示一个列表让你选择DATA或者OBJECT |
更多编辑器工具
除了这个,还有一些其它东西可以在编辑器选项中设置。

代码模板

这里我使用了一个文本模板。它可以用在标记修改、或者定义以及实现本地类的情况,等等。
* Begin of Insertion <SID>K12345 <username>
* End of Insertion <SID>K12345 <username>
当我在编辑器输入i*的时候,它可以提示代码的补全...

当我点击tab补全的时候,弹出了TR码对话框

我们给出的TR码将会被添加到注释中。
变量名补全
这是一个小小的设置,但是它会将你从不停地复制粘贴/重复输入各种小单词的繁琐中拯救出来。

当你选中这个选项之后,他会提示你每一个变量名比如...

在长变量名的情况下特别有用。
结论
除了编辑器和调试器功能,导航和使用过的清单(used-list,似乎是指程序中查找功能)也是我们经常使用的功能。由于这些特性,代码维护和支持的工作变得相对而言不那么繁重了。
另一个比较cool的地方是可以使用API来拓展核心编辑器的功能,这使得应用开发者也可以使用代码自定义编辑器特征。因为任何第三方开发者都有可能借此产生有关编辑器拓展的好主意,SAP方面也能由此得到有创意的东西。
就我目前的探索情况,我还没有发现任何BADI或者类可以用于执行编辑器功能,也许我应该多找找或者再等等。
更新:这篇博文得到的反响感动了我,让我去更深入地挖掘这个主题,之后我遇到了这个:
编程快捷键——极客风格
大部分列出的快捷键和没列出的快捷键可以在SAP-GUI编辑器选项中查看。
还是那样,点击编辑器界面右下角的编辑器选项按钮,

然后如图选择键盘选项...

现在,大部分快捷键都在上面的清单中列出来了。
我们可以按自己的意愿重新分配任何快捷键。
也有些没有默认分配快捷键的cool功能,Copy Append就是其中之一,很有用,而且未分配。

现在,根据新设置,按Ctrl+Alt+C,我就可以将内容追加到剪切板了。
例子:

+ Ctrl + Alt + C
+
=

相似地,你可以设置Cut Append,跳转到书签,格式化选择文本等等..
本文链接:http://www.cnblogs.com/hhelibeb/p/5794460.html
英文原文:Shortcuts that can make an ABAP'er life easier
转载请注明
让ABAP开发者更加轻松的若干快捷键的更多相关文章
- 让ABAP开发者愈加轻松的若干快捷键
引言 ABAP是一种和当代编程语言在许多方面有着相当不同的编程语言.ABAP的某些方面可能会让我们奇怪,为什么它会如此复杂?而它的某些方面又是那么杰出,给予了ABAP开发者们比其它任何语言更多的便利. ...
- 为什么ABAP开发者需要使用面向对象技术?
ABAP对面向对象的支持已有十多年的历史,然而在生产实践中,我们对这门技术的应用十分有限. 一方面,面向过程的惯性长期存在着:另一方面,对于大部分二次开发工作而言,似乎并没有足够的理由促使开发者使用面 ...
- 这不是我想要的ABAP开发者
原文在此: These Aren’t the Developers You’re Looking for 在吃饼干的过程中偶然看到这篇文章,立刻被UC化的标题吸引到了. 全文读完,感觉作者还是有点刻薄 ...
- vue3.0和2.0的区别,Vue-cli3.0于 8月11日正式发布,更快、更小、更易维护、更易于原生、让开发者更轻松
vue3.0和2.0的区别Vue-cli3.0于 8月11日正式发布,看了下评论,兼容性不是很好,命令有不少变化,不是特别的乐观vue3.0 的发布与 vue2.0 相比,优势主要体现在:更快.更小. ...
- Netty 系列之 Netty 高性能之道 高性能的三个主题 Netty使得开发者能够轻松地接受大量打开的套接字 Java 序列化
Netty系列之Netty高性能之道 https://www.infoq.cn/article/netty-high-performance 李林锋 2014 年 5 月 29 日 话题:性能调优语言 ...
- ABAP开发者上云的时候到了 - 现在大家可以免费使用SAP云平台ABAP环境的试用版了
之前Jerry已经写了一系列SAP Cloud Platform ABAP编程环境的文章,当时使用的环境,是SAP专门为SAP社区导师们创建的. 当时也有朋友留言,询问大家何时才能使用到免费的SAP云 ...
- ImageKnife组件,让小白也能轻松搞定图片开发
本期我们给大家带来的是开发者周黎生的分享,希望能给你的HarmonyOS开发之旅带来启发~ 图片是UI界面的重要元素之一, 图片加载速度及效果直接影响应用体验.ArkUI开发框架提供了丰富的图像处理能 ...
- 每个Android开发者必须知道的资源集锦
英文原文:Resources every Android developer must know 随着 Android 平台持续惊人的增长,越来越多的开发人员开始工作于 Android 应用程序.而且 ...
- HANA CDS与ABAP CDS
如果你在网络或者SCN上面搜索CDS,即SAP的Core Data Services,你会很容易地找到类似“Core Data Services(CDS)是一个在SAP HANA中用于定义和消费富语义 ...
随机推荐
- MongoDB 内嵌文档
MongoDB是文档型的数据库系统,doc是MongoDB的数据单位,每个doc相当于关系型数据库的数据行(row),doc和row的区别在于field的原子性:row中的column是不和分割的原子 ...
- SVN项目锁定解决方案
扩:以后设置一下客户端过滤,bin,obj,.git,.vs 这些文件夹就不会再提交了 针对个别项目可以这样设置
- jQuery源码分析系列:Callback深入
关于Callbacks http://www.cnblogs.com/aaronjs/p/3342344.html $.Callbacks()的内部提供了jQuery的$.ajax() 和 $.Def ...
- Change Line Type in OpenCascade
Change Line Type in OpenCascade eryar@163.com 关键字KeyWords:OpenCascade,Line Aspect, Line Type 在OpenCa ...
- java发送内嵌图片邮件
前言: 博客系统中需要邮件服务的功能,以前写过类似的功能,不过功能太简单了,仅仅是发送文本内容,现在尝试一下发送内嵌图片邮件! 准备工作: 请参考:http://www.cnblogs.com/huj ...
- Util应用程序框架公共操作类(十):可空值类型扩展
当你使用可空的值类型时,你会发现取值很不方便,比如Guid? obj,你要从obj中获取值,可以使用Value属性obj. Value,但obj可能为null,这时候就会抛出一个异常. 可空值类型提供 ...
- OpenCV2邻域和模板操作
在图像处理中,通过当前位置的邻域像素计算新的像素值是很常见的操作.当邻域包含图像的上几行和下几行时,就需要同时扫描图像的若干行,这就是图像的邻域操作了.至于模板操作是实现空间滤波的基础,通常是使用一个 ...
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)
从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...
- MySQL PXC构建一个新节点只需IST传输的方法
需求场景:原有的pxc环境数据量已经比较大,新买的服务器要加入此集群中,如何让其用IST的方式传输,而不是SST. PXC传输数据有两种方式: IST: Incremental State Trans ...
- SpringMVC 实现POI读取Excle文件中数据导入数据库(上传)、导出数据库中数据到Excle文件中(下载)
读取Excale表返回一个集合: package com.shiliu.game.utils; import java.io.File; import java.io.FileInputStream; ...