slickedit的alias配置
使用slickedit很喜欢它的多语言支持,可以快速查看变量的定义和结构。我一般写verilog较多,使用emcas很方便,但是感觉查看代码结构不太方便(也可能是我不会设置)。所以希望能够在slickedit上实现一些在emacs上很实用的技巧。好在slickedit支持slick-C,可以很方便的支持一些alias操作来帮助写代码。
文件头注释
文件头注释用到很多,我喜欢在里面标注文件名、工程名、简要描述信息以及修改日期。
一个例子如下所示:
//-----------------------------------------------------------------------------
// File : wave.c
// Project : test
// Author : chenbei <chenbei@rigol.com>
// Created : 2015-09-23
// Last modified : 2015-09-23
//-----------------------------------------------------------------------------
// Description :
// 测试
//-----------------------------------------------------------------------------
// Copyright (c) by Rigol This model is the confidential and
// proprietary property of Rigol and the possession or use of this
// file requires a written license from Rigol.
//------------------------------------------------------------------------------
// Modification history :
// 2015-09-23 : created
//-----------------------------------------------------------------------------
要方便的创建这个文件注释,需要编写一些slick-C函数,然后在alias中调用这些函数即可。
- 用到的Slick-C函数
// 获取当前文件名,参数'PD'表示从获取的完整文件名中去掉Path和Directory,保留Extension和Name
_str _get_file_name( ){
_str file_name = _strip_filename( p_buf_name, 'PD' );
return file_name;
} // 获取当前日期,参数'I'表示按照标准 yy-mm-dd 格式
_str _get_date( ){
_str date = _date( 'I' );
return date;
}
- 创建一个global-alias,命名为fileh,代码为
//-----------------------------------------------------------------------------
// File : %\m _get_file_name%
// Project : %(project)
// Author : chenbei <chenbei@rigol.com>
// Created : %\m _get_date%
// Last modified : %\m _get_date%
//-----------------------------------------------------------------------------
// Description :
// %(file_desc)
//-----------------------------------------------------------------------------
// Copyright (c) by Rigol This model is the confidential and
// proprietary property of Rigol and the possession or use of this
// file requires a written license from Rigol.
//------------------------------------------------------------------------------
// Modification history :
// %\m _get_date% : created
//-----------------------------------------------------------------------------
注意调用函数时,使用%\m _func%的格式。
改进
使用时感觉还需要对它再进一步改进,添加一个命令,让代码每次修改后能够更新一个时间tag,并且修改Last modified时间标记。
添加一个文件更新alias,命名为fileup
%\m find_tag1%%\m _get_date%%\s
注意alias中的代码并不是以函数顺序执行,而是直接执行类似于替换的操作,所有这里要放在一行,否则会导致多余的换行。
然后新建一个user_macro.e文件,将用到的slick-C函数代码实现在文件中,如下:
// 获取当前文件名,参数'PD'表示从获取的完整文件名中去掉Path和Directory,保留Extension和Name
_str _get_file_name( ){
_str file_name = _strip_filename( p_buf_name, 'PD' );
return file_name;
} // 获取当前日期,参数'I'表示按照标准 yy-mm-dd 格式
_str _get_date( ){
_str date = _date( 'I' );
return date;
} // 获取Last modified字符串,定位日期位置
void find_tag1 ( ) {
find_tag2 ( ); //先定位
find( 'Last modified : ' );
cut_word(); //删除原来的时间信息(three word)
cut_word();
cut_word();
} // 获取modification history字符串位置
void find_tag2 ( ) {
find( 'Modification history :' );
_str a[ ];
a[] = '//';
a[] = _get_date( );
a[] = ': modified by chenbei';
_str com = join( a, ' ' ); //使用空格字符连接三个字符串,构成一行
insert_line( com );
}
当编辑完代码,需要更新文件头注释的时候,只需要在代码任意新一行输入 "fileup”然后按alias expansion快捷键即可将当前时间更新到文件头注释中去,在Modified history下会多一行,显示最后更改代码的时间。
后续计划继续摸索slickedit中的alias,多编写一些实用的类似template的功能。
slickedit的alias配置的更多相关文章
- git config文件总结及git alias配置
1. 文件位置 mac /etc/.gitconfig 系统级~/.gitconifg 用户级(覆盖系统级) windows C:\Users\$user\.gitconfig 当前项目下 .git/ ...
- webpack中 resolve.alias 配置,@import相关踩坑
1.在使用webpack打包项目时,可以在配置文件中配置resolve.alias来定义一些绝对路径,方便在项目中灵活使用路径,举例如下: resolve: { extensions: [‘.js‘, ...
- IDE vscode识别webpack中alias配置路径
引言网上看到一篇关于 ctrl+鼠标左键无法识别别名路径的问题,最后有人回复的方法只能在ts项目中可以识别 https://segmentfault.com/q/1010000011911879 最后 ...
- nginx location关于root、alias配置的区别
一.首先优先级如下: = 表示精确匹配,优先级最高 ^~ 表示uri以某个常规字符串开头,用于匹配url路径(而且不对url做编码处理,例如请求/static/20%/aa,可以被规则^~ /stat ...
- webpack配置别名alias出现的错误匹配
@(webpack) webpack是一款功能强大的前端构建工具,不仅仅是针对js,它也可通过各种loader来构建相关的less,html,image等各种资源,将webpack配合流程制定工具gu ...
- nginx代理配置 配置中的静态资源配置,root 和 alias的区别。启动注意事项
这篇主要内容是:nginx代理配置 配置中的静态资源配置,root 和 alias的区别.启动注意事项! 为什么会在window上配置了nginx呢?最近我们的项目是静态资源单独放在一个工程里面,后端 ...
- nginx代理配置 配置中的静态资源配置,root 和 alias的区别
这篇主要内容是:nginx代理配置 配置中的静态资源配置,root 和 alias的区别.启动注意事项! 为什么会在window上配置了nginx呢?最近我们的项目是静态资源单独放在一个工程里面,后端 ...
- nginx1.14.0版本location路径,多级文件目录配置,root与alias的配置区别
1.多级目录配置 多级目录是指像/html/mypage 等等配置: server { listen 80; server_name localhost; location = /page1/ { # ...
- 对 Sea.js 进行配置(一) seajs.config
可以对 Sea.js 进行配置,让模块编写.开发调试更方便. seajs.config seajs.config(options) 用来进行配置的方法. seajs.config({ // 别名配置 ...
随机推荐
- Less函数说明
索引 escape(@string); // 通过 URL-encoding 编码字符串 e(@string); // 对字符串转义 %(@string, values...); // 格式化字符串 ...
- Socket实现粗略的Android聊天功能
面试时写过,但是很乱,今天看到代码库里有一个,还是很规范的,贴出来. 主要用到俩类,一个是ServerSocket.class 一个是Socket.class. 记得要加权限: <uses-p ...
- iOS 自定义选项卡-CYLTabBarController
正常的选项卡流程 cocoapods就不说了 创建一个CYLTabBarControllerConfig类 #import <Foundation/Foundation.h> #impor ...
- 【Cocos2d-x 3.x】 调度器Scheduler类源码分析
非个人的全部理解,部分摘自cocos官网教程,感谢cocos官网. 在<CCScheduler.h>头文件中,定义了关于调度器的五个类:Timer,TimerTargetSelector, ...
- thinkphp在模型中自动完成session赋值
相信用过thinkphp的用户都知道thinkphp的模型可以完成很多辅助功能,比 如自动验证.自动完成等,今天在开发中遇到自动完成中需要获取session值 然后自动赋值的功能,具体看代码:clas ...
- Java操作redis简单示例
第一:安装Redis 首先我们要安装Redis,就像我们操作数据库一样,在操作之前肯定要先创建好数据库的环境. Redis的下载可以百度一下,或者打开下面的下载链接: https:/ ...
- wince5代码整理
BAT文件语法: @REM 这是注释标识与REM的区别就是在echo on时REM的注释也会显示出来 @REM 设置变量BSP_SMDK2416为2 set BSP_SMDK2416=2 @REM 设 ...
- eclipse安装ADT后在windows菜单下找不到android SDK and AVD Manager
eclipse安装ADT后在windows菜单下找不到android SDK and AVD Manager选项的解决办法 - zhjr1220的专栏 - 博客频道 - CSDN.NET http: ...
- Lua C++ Binding之Lunar, Luna
服务端引擎的脚本, 我们项目在老端游项目上发展, 采取的是Lua脚本. 当前服务端的发展趋势是瘦引擎, 胖脚本模式, 基本上引擎负责的功能非常少, 主要是网络, 定帧, 定时器, 引擎通过导出相应的接 ...
- 解决Spine骨骼混合动画错乱问题
Spine是一个很好的制作2D骨骼动画的软件,其中提供的混合(mix)动画功能可以很柔和过度两个不同的动画,但在混合时期,稍有不善,非常容易出现各种错乱.在Spine2D骨骼动画群上,有人提出全K帧. ...