科学网

 找回密码
  注册
科学网 标签 编辑器 相关日志

tag 标签: 编辑器

相关日志

[转载]第07讲 ubuntu+vi编辑器
dingpengwang 2012-1-10 14:20
VI编辑器是LINUX平台下一个一款小巧的文本编辑软件,在不得已的情况下,用VI编辑配置文件非常方便.以前一直用REDHAT,下面的VI可以支持 方向箭头,pagedown\up,等其他一些功能键,非常好用.但最近用UBUNTU的时候,发现在UBUNTU下面用VI和REDHAT下大有不同,并且,形式上提供了强大的功能,但是使用的复杂度不是一般. 虽然用了一阵时间了,但是我现在还是不知道在编辑状态下,怎么左移右移字符.因为它的VI命令,左移和右移是字母h,l,呵呵,编辑状态下,就相当于键入h,l字母作为文本内容了,在这种情况下space 和backspace也不能用.不得其法,所以在每次输入错误时,都按ESC退出,然后在用左移右移命令定位,修改之.在这一点上,我很鄙视UBUNTU,将这么好用的VI在它的平台上弄的如此复杂. 下面把VI常用到的命令行贴出来。 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 插入文本类命令 i :在光标前 I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按ESC键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符 S:删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw或ndW:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 /pattern:从光标开始处向文件尾搜索pattern ?pattern:从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令 :s/p1/p2/g:将当前行中所有p1均用p2替代 :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 :g/p1/s//p2/g:将文件中所有p1均用p2替换 选项设置 all:列出所有选项设置情况 term:设置终端类型 ignorance:在搜索中忽略大小写 list:显示制表位(Ctrl+I)和行尾标志($) number:显示行号 report:显示由面向行的命令修改过的数目 terse:显示简短的警告信息 warn:在转到别的文件时若没保存当前文件则显示NO write信息 nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符 nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始 mesg:允许vi显示其他用户用write写到自己终端上的信息 最后行方式命令 :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下 :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下 :n1,n2 d :将n1行到n2行之间的内容删除 :w :保存当前文件 :e filename:打开文件filename进行编辑 :x:保存当前文件并退出 :q:退出vi :q!:不保存文件并退出vi :!command:执行shell命令command :n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 :r!command:将命令command的输出结果放到当前行 寄存器操作 "?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字 "?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字 "?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字 "?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字 ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
7 次阅读|0 个评论
[转载]vi高效率编辑文档
yuanhui80 2012-1-1 23:29
vi 编辑器是所有 Unix 及 Linux 系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对 Unix 及 Linux 系统的任何版本, vi 编辑器是完全相同的,因此您可以在其他任何介绍 vi 的地方进一步了解它。 Vi 也是 Linux 中最基本的文本编辑器,学会它后,您将在 Linux 的世界里畅行无阻。 1 、 vi 的基本概念   基本上 vi 可以分为三种状态,分别是命令模式( command mode )、插入模式( Insert mode )和底行模式( last line mode ),各模式的功能区分如下: 1) 命令行模式 command mode )   控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 下,或者到 last line mode 。 2) 插入模式( Insert mode )   只有在 Insert mode 下,才可以做文字输入,按「 ESC 」键可回到命令行模式。 3) 底行模式( last line mode )   将文件保存或退出 vi ,也可以设置编辑环境,如寻找字符串、列出行号 …… 等。 不过一般我们在使用时把 vi 简化成两个模式,就是将底行模式( last line mode )也算入命令行模式 command mode )。 2 、 vi 的基本操作 a) 进入 vi  在系统提示符号输入 vi 及文件名称后,就进入 vi 全屏幕编辑画面:     $ vi myfile   不过有一点要特别注意,就是您进入 vi 之后,是处于「命令行模式( command mode )」,您要切换到「插入模式( Insert mode )」才能够输入文字。初次使用 vi 的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入 vi 后,先不要乱动,转换到「插入模式( Insert mode )」再说吧! b) 切换至插入模式( Insert mode )编辑文件   在「命令行模式( command mode )」下按一下字母「 i 」就可以进入「插入模式( Insert mode )」,这时候你就可以开始输入文字了。 c) Insert 的切换   您目前处于「插入模式( Insert mode )」,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「 ESC 」键转到「命令行模式( command mode )」再删除文字。 d) 退出 vi 及保存文件   在「命令行模式( command mode )」下,按一下「:」冒号键进入「 Last line mode 」,例如: : w filename (输入 「 w filename 」将文章以指定的文件名 filename 保存) : wq ( 输入「 wq 」,存盘并退出 vi) : q! ( 输入 q! , 不存盘强制退出 vi) 3 、命令行模式( command mode )功能键 1 ) . 插入模式 按「 i 」切换进入插入模式「 insert mode 」,按 "i" 进入插入模式后是从光标当前位置开始输入文件;   按「 a 」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;   按「 o 」进入插入模式后,是插入新的一行,从行首开始输入文字。 2 ) . 从插入模式切换为命令行模式 按「 ESC 」键。 3 ) . 移动光标    vi 可以直接用键盘上的光标来上下左右移动,但正规的 vi 是用小写英文字母「 h 」、「 j 」、「 k 」、「 l 」,分别控制光标左、下、上、右移一格。   按「 ctrl 」 + 「 b 」:屏幕往 " 后 " 移动一页。   按「 ctrl 」 + 「 f 」:屏幕往 " 前 " 移动一页。   按「 ctrl 」 + 「 u 」:屏幕往 " 后 " 移动半页。   按「 ctrl 」 + 「 d 」:屏幕往 " 前 " 移动半页。   按数字「 0 」:移到文章的开头。   按「 G 」:移动到文章的最后。   按「 $ 」:移动到光标所在行的 " 行尾 " 。   按「 ^ 」:移动到光标所在行的 " 行首 "   按「 w 」:光标跳到下个字的开头   按「 e 」:光标跳到下个字的字尾   按「 b 」:光标回到上个字的开头   按「 #l 」:光标移到该行的第 # 个位置,如: 5l ,56l 。 4 ) . 删除文字   「 x 」:每按一次,删除光标所在位置的 " 后面 " 一个字符。   「 #x 」:例如,「 6x 」表示删除光标所在位置的 " 后面 "6 个字符。   「 X 」:大写的 X ,每按一次,删除光标所在位置的 " 前面 " 一个字符。   「 #X 」:例如,「 20X 」表示删除光标所在位置的 " 前面 "20 个字符。   「 dd 」:删除光标所在行。   「 #dd 」:从光标所在行开始删除 # 行 5 ) . 复制   「 yw 」:将光标所在之处到字尾的字符复制到缓冲区中。   「 #yw 」:复制 # 个字到缓冲区   「 yy 」:复制光标所在行到缓冲区。   「 #yy 」:例如,「 6yy 」表示拷贝从光标所在的该行 " 往下数 "6 行文字。   「 p 」:将缓冲区内的字符贴到光标所在位置。注意:所有与 "y" 有关的复制命令都必须与 "p" 配合才能完成复制与粘贴功能。 6 ) . 替换   「 r 」:替换光标所在处的字符。   「 R 」:替换光标所到之处的字符,直到按下「 ESC 」键为止。 7 ) . 回复上一次操作   「 u 」:如果您误执行一个命令,可以马上按下「 u 」,回到上一个操作。按多次 "u" 可以执行多次回复。 8 ) . 更改   「 cw 」:更改光标所在处的字到字尾处   「 c#w 」:例如,「 c3w 」表示更改 3 个字 9 ) . 跳至指定的行   「 ctrl 」 + 「 g 」列出光标所在行的行号。   「 #G 」:例如,「 15G 」,表示移动光标至文章的第 15 行行首。 4 、 Last line mode 下命令简介   在使用「 last line mode 」之前,请记住先按「 ESC 」键确定您已经处于「 command mode 」下后,再按「:」冒号即可进入「 last line mode 」。 A) 列出行号  「 set nu 」:输入「 set nu 」后,会在文件中的每一行前面列出行号。 B) 跳到文件中的某一行  「 # 」:「 # 」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 15 ,再回车,就会跳到文章的第 15 行。 C) 查找字符  「 / 关键字」:先按「 / 」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「 n 」会往后寻找到您要的关键字为止。  「 ? 关键字」:先按「 ? 」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「 n 」会往前寻找到您要的关键字为止。 D) 保存文件  「 w 」:在冒号输入字母「 w 」就可以将文件保存起来。 E) 离开 vi  「 q 」:按「 q 」就是退出,如果无法离开 vi ,可以在「 q 」后跟一个「 ! 」强制离开 vi 。  「 qw 」:一般建议离开时,搭配「 w 」一起使用,这样在退出的时候还可以保存文件。 5 、 vi 命令列表 1 、下表列出命令模式下的一些键的功能: h 左移光标一个字符 l 右移光标一个字符 k 光标上移一行 j 光标下移一行 ^ 光标移动至行首 0 数字 "0" ,光标移至文章的开头 G 光标移至文章的最后 $ 光标移动至行尾 Ctrl+f 向前翻屏 Ctrl+b 向后翻屏 Ctrl+d 向前翻半屏 Ctrl+u 向后翻半屏 i 在光标位置前插入字符 a 在光标所在位置的后一个字符开始增加 o 插入新的一行,从行首开始输入 ESC 从输入状态退至命令状态 x 删除光标后面的字符 #x 删除光标后的#个字符 X ( 大写 X) ,删除光标前面的字符 #X 删除光标前面的 # 个字符 dd 删除光标所在的行 #dd 删除从光标所在行数的 # 行 yw 复制光标所在位置的一个字 #yw 复制光标所在位置的 # 个字 yy 复制光标所在位置的一行 #yy 复制从光标所在行数的 # 行 p 粘贴 u 取消操作 cw 更改光标所在位置的一个字 #cw 更改光标所在位置的 # 个字 2 、下表列出行命令模式下的一些指令 w filename 储存正在编辑的文件为 filename wq filename 储存正在编辑的文件为 filename ,并退出 vi q! 放弃所有修改,退出 vi set nu 显示行号 / 或 ? 查找,在 / 后输入要查找的内容 n 与 / 或 ? 一起使用,如果查找的内容不是想要找的关键字,按 n 或向后(与 / 联用)或向前(与 ? 联用)继续查找,直到找到为止。 对于第一次用 vi ,有几点注意要提醒一下: 1 、用 vi 打开文件后,是处于「命令行模式( command mode )」,您要切换到「插入模式( Insert mode )」才能够输入文字。切换方法:在「命令行模式( command mode )」下按一下字母「 i 」就可以进入「插入模式( Insert mode )」,这时候你就可以开始输入文字了。 2 、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按「 ESC 」键。 3 、保存并退出文件:在命令模式下输入 :wq 即可!(别忘了 wq 前面的 : )  
1731 次阅读|0 个评论
[转载]郁闷的时候看看这头驴
ephedra 2011-12-31 11:28
有一头驴,掉到了一个很深很深的废弃的陷阱里。主人权衡一下,认为救它上来不划算,走了。只留下它孤零零的自己。每天,还有人往陷阱里面倒垃圾,驴很生气:自己真倒霉,掉到了陷阱里,主人不要他了,就连死也不让他死得舒服点,每天还有那么多垃圾扔在他旁边。 可是有一天,它的思维发生了转变,它决定改变它的人生态度(确切点说应该是驴生态度),它每天都把垃圾踩到自己的脚下,而不是被垃圾所淹没,并从垃圾中找些残羹来维持自己的体能。终于有一天,垃圾成为它的垫脚石,使它重新回到了地面上。 不要抱怨你的不如意,不要抱怨你的男人穷,你的女人丑,不要抱怨你没有一个好爸爸,不要抱怨你的工作差,工资少,不要抱怨你空怀一身绝技没人赏识你,现实有太多的不如意,就算生活给你的是垃圾,你同样能把垃圾踩在脚底下,登上世界之巅。这个世界只在乎你是否到达了一定的高度,而不在乎你是踩在巨人的肩膀上上去的,还是踩在垃圾上上去的。而事实上,踩在垃圾上上去的人更值得尊重。 年轻,没有失败!看驴生豪迈,不过从头再来······ 人生不过如此,又有什么值得你去伤悲的事,你就当它是踩在脚下的垃圾好了,让它成为你人生成功的垫脚石。 如果这个故事能够感动你的话,请你转走吧,让你身边郁闷的朋友看看吧! 博主按:从莫哥那看到,觉得有趣,嘿嘿……
1581 次阅读|0 个评论
博文公式编辑器试水
qihongshao 2011-12-8 17:58
\
2 次阅读|0 个评论
用iPad写博客
lujiangxiao 2011-11-21 14:46
用iPad 几个月,一直不能在网上发表博客, 今天终于学会了. 周末带着这个问题去问苹果店的精英,那人十分傲慢地说是网站问题.说你这境外网站都是"阿拉伯"文,一定有问题. 我根本不愿意辩解这网站是中文,以免带来更大反感. 可是在与他半讨论,半争论的时候听出一点线索.可能问题是在写日记的编辑器支持苹果的死敌flash. 于是iPad就坚决不让进, 就像老中老婆为了防止小三, 干脆连七十岁的老婆婆也不让接触. 知道了这个问题,现在可以绕过了.只要把网页编辑器设置成纯文本就行了.虽然损失一些功能,至少能有基本功能.我写博客都是抽零星时间写,能用iPad就能有很多时间了. 上照片还没学会. 也许完全不行,最后要靠越狱.提到越狱,把那精英气得直冒烟,我也算出了口鸟气.
5457 次阅读|0 个评论
在Word2007中添加公式编辑器图标
gulie 2011-11-9 15:09
今天师妹问我怎么在Word07中添加MathType的图标,说是在网上找到的方法不实用。其实之前我也碰到过这个问题,不过不是很关心,也就没怎么弄。今天师妹都问到头上了,当师兄的不作出表率怎么行?呵呵~ 我采用的方法是利用“宏”的功能完成的,具体的步骤如下: 1、打开Word2007,单击左上角的“Microsoft Office 按钮”图标,然后单击弹出框右下角的“ Word 选项 ” 2、单击“ 常用 ”,在“使用 Word 时采用的首选项”之下 选中 “在功能区显示‘ 开发工具 ’选项卡”复选框。 3、在“开发工具”选项卡上的“代码”组中,单击“ 录制宏 ”。 4、在“ 宏名 ”框中,键入宏名称,例如可以输入“公式”,单击“确定”。 5、在“ 插入 ”选项卡上的“ 文本 ”组中,单击“ 对象 ”。 6、在弹出的“对象”对话框中,选择“对象类型”:“MathType 6.0 Equation”,单击“确定”。 7、此时即进入公式编辑器输入界面,不作任何输入,直接关闭公式编辑器。 8、单击“开发工具”选项卡上的“停止录制”。 9、在选项卡上单击鼠标右键,单击“自定义快速访问工具栏”。 10、在“Word选项”对话框中,单击“自定义”,将“从下列位置选择命令”下面的列表框选为“宏”,选中刚录制的宏“Normal.NewMacros.公式”,单击“ 添加 ”按钮将其添加到右侧。 11、单击“ 修改 ”按钮,将“显示名称”改为“ 公式 ”,并在上方 选择一个易于识别的图标 。 12、单击“确定”。OK~
8995 次阅读|0 个评论
原来已经有六年没拿过刻刀了,看看我的新作品
热度 23 runrun 2011-10-30 18:41
原来已经有六年没拿过刻刀了,看看我的新作品
呵呵,今天用以前买的石刻了个印章权当练习吧,有很多瑕疵,只能要求自己不断去改进,希望买到石后能刻一个好点的,呵呵! 记得以前刻过一个章,刻得是自己的名字,两只大拇指都被刀刮上了,流了不少血,这次刻章时好多了,没有光荣负伤,值得表扬! 刻得不好,忘见谅! 宿舍光线不好,加之手机像素不咋的,太朦胧了,看来大家是无法点评的了,抱歉啊,等成品出来后再传新的,望见谅! 看得可能很难受,对不起,润润错了!
1096 次阅读|31 个评论
[转载][转]南人北游(1) 卧铺 (学生写的,感觉很好,转来)
frank021 2011-10-12 14:21
南人北游(1) 卧铺 生平第一次坐卧铺,很是稀奇,虽孤独上路,心情倒也舒愉。 同厢六人:吵闹的小孩、闷睡的小伙、聊天的中妇、看小孩的老妇、吃粽子的老夫妇,而第七个人则坐在窗前看观光。 窗外风景游走,高楼逐渐由密集变得稀疏,树木却慢慢丰茂起来,田野也越来越黄,时而闪过几片荷塘……直至房屋在视野完全消失,我的好奇心也只得无奈屈服于那一望无际的旷野。 小孩是镇江人,上大班,与奶奶去北京游玩,由于吃了我很多零食,他缠着问我要电话,我提笔写下“110”三个大字,“你是警察啊?!”,“嘘,不要说出来”。不得已让他知道了我的真实身份,终于安稳了。 爬上床,与往常一样,辗转反侧,难以入眠。拿出川爷资助的《读者》,似看非看地扫着。9:00突然熄灯 ,我意识到,这个漫长的夜开始了,而且比往常足足多出两个小时。大家都睡了,我仍在梦的入口徘徊——这种场景似乎总是那么熟悉。 天亮得很早,我算是全程观赏了黑夜到黎明的过渡——就如水墨在宣纸上自然渗开,没有束缚地铺展变淡,最后突然一下变白,太阳也就出来了。车厢中陆续开始有人走动,车速渐减,窗外开始出现青青杨柳,并且越来越清晰,直至火车完全停止,一个诗意江南般的地名出现了——杨柳青。 停后不久,火车继续前进,稍作漱洗之后便又上床,想象着迷路北京的悲凉场景。不知过了多久,广播中传出邓丽君的《月亮代表我的心》,借着这首朦胧的背景,列车员告诉大家终点站快到了。高楼渐密,火车开始减速,取下早已收拾好的行李,跟大家简要道别,直至火车停稳,下火车,穿梭于缓慢的人流中,恨不得立马出站。 激动与恐惧交织:北京,我来了!
个人分类: 生活点滴|2117 次阅读|0 个评论
[转载]MATLAB的MEX文件编写和调试
shixuanlv305 2011-10-12 10:04
转自: http://hi.baidu.com/kaien_space/blog/item/fe9d60ec225db72c62d09ffa.html MATLAB的MEX文件编写和调试 1. MEX的编写格式 写MEX程序其实就是写一个DLL程序,所以你可以使用C,C++,Fortran等多种编程语言来写。 编写MEX程序的编辑器可以使用MATLAB的代码编辑器,也可使用自己的C++编辑器,如VS2008等。 用MATLAB的编辑器的好处是,MEX函数会加粗高亮显示,这给程序编写带来便利,可惜无法动态调试。如用VC即可编译也可调试,比较方便。mex的编译结果实际上就是一个带输出函数mexFunction 的dll文件,所以会用VC编写和调试dll,就会用VC编写和调试MEX程序。 a. MEX文件格式 #include "mex.h" void mexFunction( int nlhs, mxArray *plhs ) { } 四个参数分别用来输出和输入数据: nlhs 输出参数个数,plhs 输出参数指针 (nrhs和prhs是输入参数相关的)。 注意: 我们对 输出和输入参数的操作都是通过指针的方式进行的 。(这点很容易理解,因为我们的计算结果是需要传递给MATLAB的,实际上我们传递的不是数据,而是指针。MATLAB可以通过这些指针,访问内存中的数据。) b. 操作输入数据 对输入数据进行操作,需要通过MEX函数mxGetPr 得到数据的指针地址。 mxGetM 和 mxGetN 得到矩阵数据的行和列 (返回整数)。对于实矩阵,我们可以定义 double *M; 来对实矩阵数据操作。如: double *M; int m,n; // 指针指向第一个参数的数据地址 M = mxGetPr(prhs ); m = mxGetM(prhs ); n = mxGetN(prhs ); 需要注意的是, MATLAB矩阵数据的存储顺序是"从上到下,从左到右" 的,这点和Fortran是一样的。也就是说对于MATLAB的m x n的矩阵A。 A(1,1) 就是 *M,A(2,1) 就是 *(M+1) ,以此类推,A(i,j) 就是 *(M + m*(j-1) + (i-1)). 注意: MATLAB的指标从1开始,C的指标从0开始。 c. 操作输出数据 对于输出数据,我们需要首先分配内存空间,有专门的mex函数可以使用,如: plhs = mxCreateDoubleMatrix(m,n, mxREAL); //生成m x n 的实矩阵。 同输入数据一样,要对输出数据操作,我们也需要一个 指向数据的指针变量 ,如 double *A; A = mxGetPr(plhs ); 下面介绍一下如何使用VS2008编写MEX并编译调试。 2. VC中编写MEX 打开VS2008, 新建项目, 选择MFC DLL. a. 配置项目属性 打开项目属性配置页,C++ - 附加包含目录 加入MATLAB安装目录下的 \extern\include 路径。 连接器 - 附加库目录 加入MATLAB的 \extern\lib\win32\microsoft 路径。 连接器 - 输入 - 附加依赖项 输入libmx.lib libeng.lib libmat.lib libmex.lib 这四个lib文件。 b. 编辑输出函数 在项目源文件的. def 中EXPORTS段加入 mexFunction, 如: EXPORTS ; 此处可以是显式导出 mexFunction c. 编写MEX文件 项目文件中新建一个C++文件 如 mexproc.cpp,里面按前面介绍的格式编写代码即可。 d. VC编译MEX 像编译其他程序那样直接编译即可,成功会生成dll文件。如果编译链接时出错,根据错误提示,检查一下lib和h的路径是否正确,有无缺少lib文件,代码是否有语法错误等。 3. VC中调试MEX 要调试MEX程序就要先编译,再调用她。所以我们需要在MATLAB中调用这个函数,并在VC的MEX程序相应位置处下断点即可。调用的函数名就是dll的主文件名,你可以根据自己的需要改名。我们用mymexfun.dll为例,先在VC的 mexFunction 函数代码段开始处F9下断。然后Ctrl+Alt+P附加MATLAB.exe进程。这样就可以运行命令调试程序了。我们可以在MATLAB的命令行里输入命令: = mymexfun(输入变量) (如果命令找不到,检查一下matlab当前路径,和path路径。) 程序一旦被调用,就会被断在我们的断点处。接着你就可以像调试C++程序那样调试MEX程序了。 在MATLAB中编译MEX可以输入: mex 文件名.cpp MATLAB上编译MEX时,你可以选择不同的编译器如lc, gcc等。也可以在编译时附加lib和h文件。关于mex的命令详解请参考MATLAB帮助文档。 kaien
个人分类: 编程|2341 次阅读|0 个评论
在线latex编辑器
热度 1 onewaystreet 2011-10-11 10:33
在线latex编辑器地址: http://www.codecogs.com/latex/eqneditor.php
个人分类: latex|4152 次阅读|2 个评论
科研在线已支持移动终端,智能手机可自由访问云端内容与服务
zzyyhh 2011-9-25 02:41
2011年09月22~23日,面向科研团队知识协作与管理的 科研在线 ( http://www.escience.cn/ )培训结束了,这次培训的主题是:云服务与科研在线,本次培训的PPT可以在官方会议网站上去下载:http://duckling2011.escience.cn/dct/page/65580。 科研在线测试版的功能主要包括了以下几个方面: 以云服务的方式为广大科研人员提供团队知识协作与分享的平台环境; 移动终端支持,智能手机用户可以去 网站 ( http://www.escience.cn /)下载手机客户端,随时随地的管理在云端的团队知识,并进行团队内的沟通与协作; 快速分享,用户只需简单填写邮件地址及分享的文件,一键搞定文件共享,并可以方便的二次分享; 面向内容的编辑器
3078 次阅读|0 个评论
[转载]WinEdt 编辑器和 PDF 文件的 Acrobat 程序关联
liuyongkui 2011-7-24 10:35
http://blog.lehu.shu.edu.cn/shuishousong/A210059.html CTeX 套装 2.8 版本以后,也就是09年9月以后的版本加入了SumatraPDF程序,将PDF文件与Acrobat程序取消了关联,改用了SumatraPDF程序显示,也就是在WinEdt编辑器的面板上,点击“Acrobat Reader”按钮后用SumatraPDF程序打开关联的PDF文档,这可能涉及到版权啥的原因,在此就不多说了。 我们可能还是习惯使用Acrobat程序查看和标记PDF文档,因此介绍一下如何在WinEdt编辑器中重设程序关联。 比如说Acrobat程序安装在"C:\Program Files\Adobe\Acrobat 7.0" 打开WinEdt编辑器——》 左击菜单栏的“Options”——》 左击下拉菜单中的“Execution Modes”选项——》 在出现的跳出窗口中左击“Acrobat”子面板——》 左击“PDF Viewer Executable”选项的右侧文件夹图标,在弹出窗口中找到你的Acrobat程序,点击“打开”即可。完成后的显示路径就为"C:\Program Files\Adobe\Acrobat 7.0\Acrobat\Acrobat.exe"。 左击“PDF Bin Folder”选项的右侧文件夹图标,在弹出窗口中找到你的Acrobat程序安装的文件夹,点击“打开”即可。完成后的显示路径就为 C:\Program Files\Adobe\Acrobat 7.0\Acrobat 。 “Auto-detect”前面的方框你可以选择是否打钩,如果打钩的话,选择好Acrobat程序安装的文件夹就可以自行检测PDF文件的查阅程序了。 最后左击“OK”即可。 上面例示的程序路径个人可能不一样,程序也不一定相同,有的是专业版/标准版/Reader版等等,仅是示例作用! 这样以后你点击WinEdt编辑器的面板上的“Acrobat Reader”按钮后就用Acrobat程序打开关联的PDF文档了。 ps,另外介绍一份关于WinEdt编辑器的使用技巧,是华东师大的汤银才老师写的。 文件名称: WinEdt5.4 使用技巧,汤银才 下载地址: Uploads/UserDirs/2/586/234299/WinEdt5_4 使用技巧,汤银才.pdf
个人分类: 科研工具|3369 次阅读|0 个评论
[转载]LaTex简介
liuyongkui 2011-7-23 22:03
http://zhanghong7329.blog.163.com/blog/static/49858557200907103442841/ 如果你经常编排带数学公式的文章, 那么你对WORD估计不陌生, 而且对它的公式编辑器也用得不少, 那你可能会发现, WORD编排出来的段落不是那么令人满意, 如果左对齐, 那么每行的右边参差不齐, 很不美观; 而如果选用两边对齐, 那么WORD为了达到这点要求, 可能就加大了某些词与词之间的间距, 那样也达不到我们满意的文章格式. 能不能在行末自动地把一个单词在音节处拆开, 并加上连字符呢? TeX可以. 公式编辑器用多了, 你可能就发现, 如果你要修改文章字体的大小, 这时需要一个一个地调整公式的大小, 简直是无法承受的工作量; 而且, 你经常会发现, WORD的公式大小并不是和正文那么适配, 许多时候看起来要么大了, 要么小了, 尤其是碰到大行的公式, 页面编排都可能因此受到影响了. 而TeX美观的公式混排, 统一的公式正文大小, 会令你感觉你编排的文章和正式出版的数学书籍一样漂亮. WORD编一篇大的文章, 你就会发现你可能不得不将它按章节存储成各个小文件, 因为公式多的文章的WORD文档大得不是一张软盘能解决的了. 而我们使用的TeX格式的文档, 一个50页包含很多公式的文章可能只有不到100K大小. 微软的东西就是版本多, 你一定为WORD6.0, WORD95, WORD97,还有英文WORD, 中文WORD的诸多版本的不兼容性大感头疼, 有时不是头疼就能解决的, 公式编辑器的不兼容, 使低版本的WORD公式根本无法在高版本中使用. 而虽然TeX也有非常多的版本, 但是TeX的基本格式以及公式等编排格式都有统一的标准, 而那些灵活多样的格式, 往往只是一两个文本文件就可以解决的, 甚至我可能一点不直到别人所用的格式, 但从文档中我猜出大致意思了, 那我也可以自己写出那样特殊的格式, 因为TeX是纯文本格式, 你可以轻松地读懂每一句话. 而WORD文档格式的不公开, 我想不会有几个人能从一个WORD文档看出编排后的样式. TeX的纯文本文件, 使得各个操作系统下的TeX环境都能轻松地编辑修改浏览打印你的文章, DOS, WINDOWS, 甚至UNIX. 最为关键的是, 现在很多国内外杂志, 要求寄去的文章按TeX格式排版(可能有些杂志可以接收WORD文档, 那你可能又要在茫茫软件海洋中寻找英文WORD, 因为国外根本就没有中文WORD, 而你的中文WORD文档在英文WORD中什么都看不出来). 那么会用TeX就更是你迫在眉睫的需要. TeX就和vi一样, 在你对他一点不懂的时候, 你总觉得他很难相处, 但是在你了解他之后, 你会越来越发现他的好. TeX 2 +----------------------------------------------------+ | 本节内容: 一个最最最最简单的TeX文档, 并在CCT环境 | | 下编译浏览打印该文件, 编译出现错误后的继续, 以及 | | DOS下的CCT EMTEX的下载及安装. | | (附CCT EMTEX的 readme.cct 文件) | +----------------------------------------------------+ 我们已经讲过, TeX源文件是文本文件, 就象一个C语言的源文件一样, 那么我们也象编译C语言程序得到可执行程序一样, 我们编译TeX源文件, 得到能在计算机上浏览或打印的格式文件,那就是后缀为.DVI的文件(我们就称它为DVI文件). TeX源文件我们通常把其后缀取为.TEX. 当然, 如果你在中文TeX的环境中编排你的中文文章, 那么你的源文件后缀可能就是那个中文TeX给你约定的了, 我们现在常用的CCT EMTEX, 所用的后缀是.CTX, 系统的操作是将.CTX源文件中的中文经过预处理, 产生标准的TeX文件, 然后再照平常的TeX文档一样操作, 得到DVI文件. 今后, 我们均以DOS下的CCT EMTEX环境为例, 来讲述TeX文章的编排. 因为TeX的标准, 所以在不同的TeX环境, 其实文章编排的内容格式是一样的, 只是可能它得到DVI的途径不同而已. 而我们就以现在比较流行的LaTeX为准来讲述TeX的使用, 其它如amstex, amslatex等, 仅是文档的最外层框架以及少数扩展的命令不大一样之外, 其它命令都是相同的. 一个最最简单的TeX文档可能是: (比如我们用EDIT, 当然也可以用写字板或UltraEdit等甚至是UNIX下的vi编辑器等编辑一个文本文件如下四行, 取名为'1.tex') \documentstyle{article} \begin{document} my example content \end{document} 现在流行的TeX格式似乎已经不是documentstyle而是documentclass了, 但是它们除了一开始的写法不大一样之外, 正文的命令排版等等都没有任何区别. 以CCT EMTEX环境为例, 我们用'latex 1.tex' 来编译TeX文件来得到DVI文件, 然后用'view 1.dvi'来浏览, 用'dvi24p 1.dvi'(24针打)或'dviljp 1.dvi'(激打)来打印文章.(以上三条命令的后缀均可以省去, 仅用'latex 1','view 1'和'dviljp 1'等.) 如果你的TeX文件不符合TeX语法, 那编译将可能出错, 这时可以让系统忽略错误产生DVI文件(这时可能就不能达到你所期望的排版效果了), 或者你应该修改源文件中的错误, 重新编译, 直到全部通过. 在LaTeX编译出错时, 会在屏幕上显示出错信息, 并显示"?"以接受用户进一步的指示. 在"?"后, 输入: 1. 回车: LaTeX尽量忽略此错误, 继续运行; 2. s: LaTeX继续运行, 并之后还有错误, 也不停止运行; 3. r: 类似s, 比上者更强硬, 甚至连打不开文件这样的严重错误也不停止; 4. q: 同r, 但错误及提示均不在屏幕显示, 直接写入.LOG文件; 5. I: 之后跟一个字符串, 用来插入替代出错的字符串. 比如在正文需要纵向空出1cm空白, 用"\vskip 1cm", 但是输入错误成为"\vship 1cm", 则编译出错: ! Undefined control sequence. l.102 \vship 1cm ? 表示在第102行, \vship是未定义的命令, 这时在?后输入"I\vskip", 则用\vskip替代出错的\vship, 继续执行. 这里需要注意的是, 这条指令只是编译中临时修改错误, 并没有真正地修改源文件; 6. 小于10的数: 表示删出从当前位置开始的那么多个字符; 7. ?: 显示提示 8. h: 显示帮助, 对当前错误提出进一步动作的建议; 9. x: 中断编译, 将已编译的结果写入.DVI中, 出错及提示写入 .LOG中. 下载CCT EMTEX, 科大内可去 ftp://202.38.68.76/chencs/cct-new/ 该软件源站点是 ftp.cc.ac.cn:/pub/cct 安装请阅读hdinst.doc. 装之后,关于CCT(TeX的中文接口)部分的说明请看cctman.zip解开后的man.dvi. 文后附CCT中readme.cct 的内容. TeX 3 +----------------------------------------------------+ | 本节内容: TeX 中的十个保留字符; TeX 中关于空格, | | 段落, 断行, 分页的约定; 几种TeX中的短横线以及单 | | 双引号的使用; 字体, 字号, 分组; 特殊字符, 重音 | +----------------------------------------------------+ TeX中, 你很常见到的是"\"符号, 那是TeX排版命令的标志,比如说\Omega就是能输出键盘无法直接输入的特殊字符Ω, 而\begin{tabular}{ll}将说明一个制表环境的开始. 和"\"字符一起, $ % # _ ^ { } ~ 是TeX的保留字符, 如果要在文章中输出以上字符, 分别应该用\backslash, \$, \,\%, \#, \_, \^{}, \{, \}, \~{}来表出. $ 是数学环境的分界符 在制表中和数学环境中, 用来对齐各列的 % 表示之后的为注释, TeX忽略该行此符号之后的内容 # TeX定义命令时, #1--#9表示第几个参数 _ 数学公式中的下标 ^ 数学公式中的上标 { } 分组的开始和结束 ~ 用在英文排版中, 表示不可断行的空格 TeX中有几个约定: 1.空格和符以及回车符, 都被TeX当做一个空格(即使你连续输入很多空格), 也因此, 不能将一个完整的英文单词用回车切开; 2.段落: 在TeX源文件中, 一个空行就表示一个新段落的开始, 也可以用"\par"产生新段落; 3.TeX将一段的正文按定义的宽度及页高自动进行断行分页,因此如果需要强制断行用"\\"或"\newline"来表示; 换页用"\newpage"或"\clearpage"; 4.短横线的长度: 连字符, 用"-", 如"X-ray"; 表示数字的范围, 用"--", 如"1--2"; 破折号, 用"---"; 在数学环境中, "-"总是当作减号; 5.单引号和双引号 单引号, 分别用"`"和"'"来表示; 双引号, 则用"``"和"''"(两个同方向单引号连用). LaTeX中有256种字体甚至更多, 而常用的是5--6种而已, 比如英文正文常用罗马体("\rm"), 公式中常用意大利体("\it"), 其它字体有黑体("\bf"), 斜体("\sl"), 等线体("\sf"), 打字机 体("\tt"). 在不使用字体控制时, 缺省是罗马体, LaTeX一直使用当前字体, 直到出现改变字体的命令为止. 而CCT中增加了改变中文字体的命令: "\songti"(宋体), "\heiti"(黑体), "\fangsong"(仿宋), "\kaishu"(楷书), 中文字体缺省是宋体. LaTeX英文字号使用point(点制). 1 inch=72.26 pt. LaTeX 从小到大,依次用"\tiny", "\scriptsize", "\footnotesize", "\small", "\normalsize", "\large", "\Large", "\LARGE", "\huge", "\Huge"来定义和改变字号. 在定义了10pt, 11pt或12pt的基准字号后, LaTeX也相应地调整以上各字号的大小. 这里还要注意的是, 在同时使用英文字体和字号控制中, 应先改变字号再改变字体, 否则可能得不到希望的结果. CCT中, 对中文还有专门的命令"\zihao{n}", 这里n是中文字号的号数, 为0到7, 以及-4(小四)和-5(小五). 在上面, 我们已经知道了{和}定义了分组(group), 所有在分组字符之间出现的命令的作用范围都只是在这组相应的大括号中. 看看例子"normal {\bf this is bf} normal again"就知道了. 在编排科技文献中, 经常会遇到一些键盘无法直接输入的字符, 比如节号, 版权号, 剑号以及在字母上加一些重音符号等等.你来试试看: \S \P \copyright \dag \ddag \^a 以a为例, 下面看看各个重音符号的作用: \^{a}, \v{a},\~{a}, \'{a}, \`{a}, \.{a}, \"{a}, \u{a}, \={a}; 而在以后要讲的数学环境中, 以上几个重音应该分别表示为$\hat{a}$,$\check{a}$, $\tilde{a}$, $\acute{a}$, $\grave{a}$, $\dot{a}$, $\ddot{a}$, $\breve{a}$, $\bar{a}$, 最后, 在数学环境中, 还有$\vec{a}$是在a上面加一小箭头. 其中, 数学环境中, 还有\widhat和\widtilde, 可以自动地调整^或~的长度, 以适应其后{}中的多个字符. TeX 4 +----------------------------------------------------+ | 本节内容: TeX的文件版式\documentstyle, 页面格式 | | \pagestyle, 版面的尺寸参数 | +----------------------------------------------------+ TeX的版式首先是文件版式, 也就是我们接触的第一个最最最简单的TeX文档中的第一句: \documentstyle {格式} 其中的 } % \date{Mar. 1, 1999} %日期, 如果没有此项, %则以当前日期代替, 若 %不要日期, 则用空{} % \begin{document} %document开始. %以上定义标题各项内容, \maketitle %此句产生标题, 不可缺少, %一般都是正文第一句 \begin{abstract} %套用abstract格式 This is mini-page defined for abstract, %自动形成小页 you only write your abstract in it. If % you want to shows keywords, maybe you % should use: % {\bf Keywords: }\LaTeX, example %LaTeX没有keywords环境 \end{abstract} %自己手工来做吧 % \section{The very beginning} %一个节, 节的使用后详 This is the first section of your % article. You may find every first %一节的第一段缺省情况 paragraph of your section, subsection, %为段首不自动缩进 chapter or ... always has no % ``parindent'' at the beginning. % This is the second paragrph, you can %但是以后的段段首 find this has parindent at the % 自动缩进 beginning. If you want to show % parindent at first paragraph too, % do as the first paragraph I showed % in the next section. % % \section{The 2nd step} %第二节,使用自动标号 \hskip \parindent %横向空出\parindent This is the second section. In this %从这里大家看到 first paragraph, I use `hskip' to %\parindent其实是 get the first parindent. Maybe you %一个长度单位, 长 can get this effect by another way. %度单位后详 % \subsection{Sub-sect of 2} %小节 this % % \subsection*{\S 2.2 Another sub of 2} %节,小节可以不使用 this %自动标号, 这时有关 %的计数器不增加 \section{Conclusion} % I think you have know \TeX well now. %又是一节 I want to show you how to use % bibliography. In the article, you %参考文献的 can use as ``see \cite{texbook}''. %引用方法\cite{标识} % \begin{thebibliography}{0} %参考文献列在这里 %{0}表示最长文献序号 % 为一位数 %\bibitem{标识} %参考文献使用后详 \bibitem{texbook} Donald~E.~Knouth, ``The \TeX book'', Addison-Wesley, 1984 \bibitem{lamport} L.\ Lamport, ``\LaTeX: A Document Preparation System'', Addison-Wesley, 1994 \bibitem{companion} M.~Goossens, F.~Millelbach, and A.~Samarin, ``The \LaTeX\ Companion'', Addison--Wesley, 1994 \end{thebibliography} \end{document} %document结束 TeX 6 +----------------------------------------------------+ | 本节内容: 章节划分, 正文空白, TeX的长度, 脚注 | +----------------------------------------------------+ 上一节我们"亲密接触"了一个LaTeX文章, 下面, 我们就其中一些地方做补充说明. LaTeX的章节划分很方便, 只要使用章节命令, TeX就能自动地改变其字体, 字号, 行距和排版方式. 章节划分的一般格式为 \sect-command{sect-name} 或 \sect-command*{sect-name}这两种格式的区别是, 前者自动给章节加序号, 而后者不加序号,也不加相应计数器. 这里的\sect-command可以是(从大到小)\part, \chapter, \section, \subsection, \subsubsection, \paragraph, \subparagraph. 其中在article环境中没有\chapter. 大家可以参看上节的例子. 在TeX中, 大家已经知道, 不管你用了多少个连在一起的空格, 都代表一个, 不管你用几个空行, 都只表示新起一段. 那么, 怎么在正文中留空格呢?(关于数学环境, 以后再讲) 在TeX中, 横向用"\ "或"\enskip"表示空格, 可以用"\quad"表示大空格, "\qquad" 更大一些, 而"\hskip 长度"或"\hspace{长度}"可以任意控制空白的大小; 纵向, 从小到大可以使用"\smallskip", "\medskip","\bigskip", 而"\vskip 长度"和"\vspace{长度}"可以控制纵向空白的大小. 这里还要多说一句的是: 命令"\hspace*{长度}"和"\vspace*{长度}", 这二者的空白只在当前行当前页有效, 不会在行尾或页末造成影响. 上面大家看到"长度"这个概念了, 在TeX中, 有绝对长度和相对长度之分, 前者为数字加上绝对长度单位, 如mm(毫米), cm(厘米), in(英寸), pt(点), 例: 1.5mm, +2.8cm, -1.2in, 72.27pt.这里还要注意的是即时是零长度, 也要加上单位: 0cm等. 而相对长度单位有: em(当前字号M字母的宽), ex(当前字号x字母的高), CCT中还定义了"\ccwd"(当前字号汉字宽), "\ccht"(当前字号汉字高), "\ccdp"(当前字号汉字的深度). 从上节的例子大家可以看到, "\parindent", "\baselineskip", "\parskip"等距离参数, 也可以作为长度单位, 因此, "0.5 \textwidth"也是合法的长度,它等于当前页面正文宽度的一半. 最后, 我们看看TeX怎么在文中加脚注的. 一般格式是: \footnote {内容} 其中 是可选项, 如果省略, 则自动给该页脚注排序, 从1开始标号. footnote只能用于普通正文模式中, 比如盒子或数学环境中都无法使用, 因此系统提供了另外两条命令: \footnotemark 用来在文中插入脚注符号, 但不产生脚注内容; 而 \footnotetext {内容} 则用来真正产生脚注内容. 注意在以后要讲的minipage中, 系统可能会将脚注放错位置. TeX 7 +----------------------------------------------------+ | 本节内容: 三种数学环境, 数学环境中字体和字号, 数 | | 学公式中的空格, 上下标, 分式, \displaystyle, 大 | | 大小小的括号, 根式, 导数. | +----------------------------------------------------+ 到这里, 大家就已经能输入一篇完整的一般文章了, 但是科技文章总少不了数学公式, 而且大家选择TeX作为排版工具, 其中一个原因也是看中了它美观的公式编排, 现在我们就来看看和一般正文不一样的公式. TeX提供三种有关数学公式的环境, 一种是"文中公式", 通过$或\(进入"数学环境", 通过$或\)来结束数学环境的; 第二种是"独立公式", 用$$或\ 退出, 在正文, 它是独占一行的, 它排出的字体要稍微比文中公式要大些; 第三种是带公式标号的数学公式: "方程",这个以后我们详细再讲. 数学环境是自动根据当前字号来调整公式中字的大小的. 数学环境中, 缺省字体是数学斜体(显示出来和意大利体一样), 因此如果要用到正文, 需要改变字体或使用盒子, 如我们要输出"y=x, if x0,"这一句, 其中的"y=0"和"x0"应该是数学公式(虽然不进入数学环境也能输), 而"if"却属于正文内容, 因此不应该用数学斜体显示, 而应该用"$y=x, {\rm if} x0$"或用盒子: "$y=x, \mbox{if } x0$", 但这里还要注意的是, 数学环境中忽 略一切空格(当然分隔命令的空格除外), 因此第一种输入可以发现, if和x0之间没有我们想要的空格, 而第二种输入方式由于在\mbox{} 中if后加了一个空格, 所以if和x0有一个空格, 这正是我们想要的. 因此标准的输入方法一般用后者. 而且, 前者的方法对汉字就不适用, 因为汉字不能出现在数学环境中, 而用盒子框起来就没问题了. 这里再多说一句的是, 数学环境中不能使用字号命令, 如果需要改变字号, 应该在数学环境之外改变, 而数学环境自动根据当前字号调整字的大小. 上面已经提到数学环境中忽略任何空白字符, 那么, 怎么在公式中输出空格呢? 当然我们可以用以前讲过的\quad或hskip来空出横向空格等, 但是如果我们要输出诸如"fdx"(这里dx是微分),这样在f和dx中要有一个小空格, 用\quad显然太大了, hskip根本不知道该空出多大距离. 在公式中, 常用的几个调整距离的命令是"\,"(小距离), "\:"(中距离), "\;"(大距离), "\!"(负距离),象刚才说的例子, 我们一般就用$f\,dx$即可. 当然, 一般情况我们很少改变数学公式中的距离. 下面我们看看如何在数学公式中输入上下标, 在讲TeX保留字时大家就有印象了, 上下标分别用"^"和"_"来表示, 如$x_0^2$, TeX中, 先输上标后输下标和先写下标再写上标是没有区别的, 它都会一样地自动调整字符大小和位置. 如果上下标的字符不止一个, 那就用"{}"括起来, 如$x^{1+y^{i+1}}$. 如果有人突然想在字符的左边输上下标呢? 简单的方法是在前面加一个空的{}, 如${}_{17}^{35}Cl$, 哦, 可能不是用的数学斜体, 那只好再用盒子了: ${}_{17}^{35}\mbox{Cl}$. 有时我们可能直接用1/2来表示分数就可以了, 但是如果分子分母我们想要排在分数线的上下, 那就要用"\frac{分子}{分母}"来表示了, 如$$\frac{1}{x+1}$$. 但是大家如果再把这个例子用单$括起做文中公式, 或者$$y=\frac{y-\frac{1}{x+1}}{y+1}$$,就会发现, 这个分式显示出来觉得比正常字号小, 要解决这个问题就要用\displaystyle的命令了. 可以试试 $$y=\frac{y-\displaystyle\frac{1}{x+1}}{y+1}$$, 可以了吧. 当然, 如果你在\documentstyle中使用了vatola选项(需要TeX系统在指定目录有vatola.sty文件), 那么, 你可以直接用\dfrac来代替\frac来达到同样的效果, 而避免使用冗长的\displaystyle 的输入.(格式如\documentstyle {article}; 而如果用\documentclass{article}, 则用\usepackage{vatola}); 或二者均可以在第一句后面加上\input vatola.sty来包含这个包) 有人可能又要问了, 如果我输出的分数, 分子还是有分子分母的分数, 分母也是一个不简单的分数, 那层层迭迭的分数线, 不够美观, 我还是喜欢"分子/分母"的格式, 那怎么把这条斜分数线画得长一些呢? 这里就要用到所谓的"定界符", 也就是成对出现的类似于括号的符号了, 如(), {表达式}", 其中 可选参数, 如果没有则是开平方, 如 $$\sqrt {x+y}+\sqrt{2}$$. 而导数, 也就是在字母右上方加一撇或两撇的输出, 我们常用$$f^{\prime}$$和$$f^{\prime\prime}$$来表示, 或更简单地, 用$$f'$$和$$f''$$来表示. TeX 8 +----------------------------------------------------+ | 本节内容: 数学符号: 希腊字母, 二元运算符, 关系运 | | 算符, 箭头, 其它符号, 可用于一般环境的符号, 花体 | | 符号及函数名, 可变大小的符号, \limits和\nolimits, | | 省略号, 符号的上下堆积, 上下标的分行 | +----------------------------------------------------+ TeX提供了许多"控制符号"来得到诸如希腊字母, 关系运算符,箭头等无法用ASCII键盘直接输入的符号. 小写希腊字母, 如\alpha,\beta, \gamma, \pi; 大写希腊字母, 如\Gamma, \Pi, \Omega; 二元运算符, 如\times(乘号), \div(除号), \pm(加减号), \circ(小圆圈), \cdot(点)等; 关系运算符, 如\leq(小于等于), \geq(大于等于), \subset(包含于), \supset(包含), \in(属于); 否定关系运算符, 如\not=(不等于), \not(不小于), \not\supset (不包含); 箭头, \leftarrow, \rightarrow, \longrightarrow, \uparrow, \mapto等; 其它符号, \nabla(Nabla算子), \angle(角), \infty(无穷), \forall(任意), \exists(存在), \prime(导数的撇). 这些符号比较多, 这里就不细细一一列出, 大家去找一本TeX书, 复印那两三页下来就可以了. 本节讲的绝大多数符号都只能在数学环境中使用, 有几个符号也可以使用在一般环境中, 那是\S(节号), \P(段落号), \dag(剑号), \ddag(双剑号). 有时数学公式中的函数名, 算子等要用特别的花体来排版, TeX提供了\cal字体, 如"function $\cal F$". 而对于专有名词,如一些函数名, 如sin x中的sin, 就要用罗马体, 而不是一般的数学斜体排印, 我们可以用$${\rm sin}x$$, 也可以用TeX提供的直接在函数名前加"\"的方法: $$\sin x$$, 一般的函数均有定义, 如\sin, \cos, \lim, \log等. 数学环境中, 还有一类特殊的符号, 那就是可变大小符号, 如求和号, 积分号, 它们会因为符号后面的内容的大小自动调整自己的大小: \sum, \prod, \coprod, \int, \oint, \bigcap, \bigcup, \bigsqcup, \bigvee, \bigwedge, \bigodot, \bigotimes, \bigoplus, \biguplus. 需要注意的是, 有些可变符号的上下标位置在文中公式和独立公式中是不一样的, 大家看个例子: $\sum_{i=1}^n x_i=\int_0^\infty f(x)dx$ 和$$\sum_{i=1}^n x_i=\int_0^\infty f(x)dx$$, 这里大家看到, \sum在文中公式中, 上下标是写在右上角和右下角的, 在独立公式中, 是写在上面和下面的; 而\int在二者中都写在右上角和右下角的. 我们可以强制用\limits和\nolimits来控制上下标的出现位置: 使用方法如$\sum\limits_{i=1}^b x_i$就强制将上下标写在上边和下边, 而\nolimits使其出现在右边角上. 这里多说一句, 如果你想把一般的操作符也想用\limits或\nolimits用, 只须把你的操 作符用\mathop{}括起来即可. 大家如果编排矩阵或行列式, 就会遇到特别的省略号, 大家试试\cdots, \vdots, \ddots就是三个方向的省略号. 而\ldots是比 \cdots低一点的省略号, 它和其它三个不同的是也可以用在正文环境中. \ldots一般用于$x_1, x_2, \ldots, x_n$这样的时候. 排版数学公式可能还会遇到需要把两个符号上下组合在一起,最常见的就是上划线和下划线, 大家试试$$\overline{a+b+c+d}$$ 和$$\underline{a+b+c+d}$$, 这里需要说明的是, \overline只能用于数学环境, 而\underline也可以用在正文中. 类似地还有用花 括号括在式子上下的: $$\overbrace{a+\underbrace{b+c}+d}$$, 而如果上下括号上面或下面还有符号, 可以用上下标来表示, 如: $$\overbrace{a+\underbrace{b+c}_{1.0}+d}^{2.0}$$. LaTeX还可以将任意两个符号重叠在一起: \stackrel{上层符号}{下层符号}, 如$$\vec{x} \stackrel{\rm def}{=}(x_1, x_2, \ldots, x_n)$$, 这里需要说明的是\stackrel中第一个参数的符号以较小字号输出的. 而$${上面 \atop 下面}$$可以把两行内容按相同字号排出, 类似 地就出现了$${n \choose m}$$则是带括号的n个取m个的写法. 符号可以上下堆积, 可是我们如果要在\sum的下面写诸如i9和j9这两行下标, 用$$\sum_{i9 \\ j9} i/j$$是不行的. 我们怎么实现这样的分行呢? 我们可以用\atop来堆积, 如 $$\sum_{\scriptstyle i3 \atop \scriptstyle j3} i/j$$ 这里之所以加了\scriptstyle是因为仅用\atop命令会把上下的字体再缩小一号. 另外, 我们也可以用另外的方法: 前面我们在讲\frac时提到\dfrac这个符号需要使用包vatola.sty, 这里, 如果使用了vatola.sty这个包, 我们可以在下标中用{\Sb 第一行 \\第二行 \endSb}, 在上标中用{\Sp 第一行 \\ 第二行 \endSp}来表示多行下标或上标. TeX 9 +----------------------------------------------------+ | 本节内容: 数组array, 方程(标号)equation, 多行方程 | | eqnarray, \aligned(vatola.sty), 标号的交叉引用 | | 参考文献的使用(more) | +----------------------------------------------------+ 数组环境通常用来编排矩阵, 行列式等对齐的数学公式的.它的格式是: \begin{array}{列对齐} 第一行 \\ 第二行 \\ ... 最后一行 \end{array} 这里, 列对齐的格式是{c1c2c3...cn}, 每个ci为一个字母, 说明第i列的对齐方式, 可以是c(居中), l(左对齐), r(右对齐). 而每一行的各列用符号隔开, 行末是\\. 因此n列的数组, {列对齐}应该有n项, 每行应该有n-1个, 一个\\(最后行通常不用\\). 数组中某一列可以不存在, 但是号不能少. 数组外常常使用可变大小的定界符\left和\right, 大家看个例子: $$\left( \begin{array}{clr} a+b+c a+b+c a+b+c \\ a+b a+b a+b \\ a a a \end{array} \right) $$ 这里要作些说明,数组中某两行的距离可以用"\\ "来改变, 也可以用"\renewcommand\arraystretch{实数}"来整体修改数组的垂直距离(缺省为1.0), 而参数\arraycolsep=...是修改其列间距. 使用数组时, 经常容易出错的是: array必须出现在数 学环境中, 的个数和\\的个数一定要正确, 如果使用可变大小的 括号, 一定要注意\left和\right必须成对出现, 即使只排印半对括号. 一般的$和$$环境, 不能给公式或方程编号, 因此, 就用到了方程环境. 格式是: \begin{equation} 方程 \end{equation} 这其中的方程, 和$$情况没有两样, 只是在公式右边自动加上了程编号(如果\documentstyle用了\leqno选项, 则公式标号在左边). 多行的方程可以把array使用在equation中来实现, 但是标号只出现一个, 出现在多行的中间. 如果多行要分别标号, 或者不想用麻烦的$$嵌套array, 那就要用到多行方程环境: \begin{eqnarray} ...... \end{eqnarray} 和 \begin{eqnarray*} ... \end{eqnarray*} 二者的区别是, 带*号的不将公式标号排出来, 而不带*的自动给每行式子编排标号. 在\begin{eqnarray}和\end{eqnarray}中的部分是一个三列的array环境, 因此有两个和一个\\, 如: \begin{eqnarray} y=1+2+3+4+5+6+7+8+9+10 \\ =55 \end{eqnarray} 而如果把方程某行的\\前加上"\nonumber", 则TeX不给该行方程编排标号, 如"y=1+2+3+4+5+6+7+8+9+10 \nonumber \\", 则该行不出现标号. 这里还要注意的是equation和eqnarray都是直接进入$$的显示数学环境, 此不能在前面和后面加上$或$$了. 大家可能会注意到, 不论是array还是eqnarray, 每个符号都会在公式中产生列的小空隙, 同样也在vatola宏库中, 定义了一个aligned对齐环境, 它使得编排多行公式在对齐的同时不会出现$符号位置的列空隙. 它可以出现在$$环境中, 那公式不标号; 或出现在equation中, 它对一个多行公式只标一个标号, 类似于array. 它相当于一个两列的array, 因此每行仅有一个. \begin{equation} \aligned y=1+2+3+4+5+6+7+8+9+10 \\ =55 \endaligned \end{equation} 这里需要注意的是, \begin{array} \end{array}和\begin{tabular}(制表)\end{tabular}不能出现在\aligned与\endaligned中, 如须 使用, 要用\vbox{}或\hbox{}等把array或tabular环境括起来. 在讲第一个完整的TeX文档例子时, 大家一定注意到参考文献标号的交叉引用, 而方程也有标号, 也可以交叉引用. 为什么我们选择交叉引用而不是直接在文中写"公式(1)中..."的原因很简单, 交叉引用可以实时地调整标号, 插入或删去一个公式带来整体标号的改变, 无需改变引用标号的地方; 而且, 可以在不修改正文的情况下灵活地调整标号的风格. TeX使用\lable{标号}来定义标号, 这里的标号可以是字母,数字, 标点等组成的字符串. 需要引用, 则使用\ref{标号}, 这里的"标号"应该是有\lable定义过的, 定义和引用的先后无关. 例如, 我们有 \subsection{Early Results} \label{sec-early} %这里定义子节标号 Euler's equation \begin{equation} e^{i\pi}+1=0 \label{eq:euler} %这里定义方程标号 \end{equation} \combines the five most important numbers in mathematics in a single euqtion. 然后我们就可以如下地引用 Equation~\ref{eq:euler} in Section~\ref{sec-early} ... 不管这里方程或子节的标号是多少, 引用时都能准确地指出. 这就是我们要使用自动交叉引用的原因. 这里, \label会自动根据自己的位置, 得出标号, 如出现在equation, eqnarray, enumerate (项目), figure(图), table(表)环境中, 被引用的是公式号, 项目编号或图表号; 而出现在其它位置则是章节号. 引用时除了\ref外还有一个\pageref{标号}, 它显示的是\label{标号}出现的页面位置. \cite和\bibitem我们在一开始的例子中就看到了, 我们这里更详细地说说这两条命令的完整格式: \cite {标号1, 标号2, ..., 标号n} \bibitem {标号} 先看一个\cite加附加信息的例子(这个例子是在第5节例子的参考 文献的基础上的): See \cite{texbook, companion} or \cite {lamport} .. 再看\bibitem的名称可选项: See \cite{kn:texbook} for more details. ... \begin{thebibliography} % {kn:texbook} D. E. Knuth. {\sl The \TeX{}book}. Addison-Wesley, Reading. \end{thebibliography} 这里再多说一句的是: 所有涉及交叉引用的文件, 在修改过与交叉引用有关的内容之后, 都需要对源文件进行两次编译才能得到正确的结果. TeX 10 +----------------------------------------------------+ | 本节内容: 居中, 左对齐, 右对齐环境; 小页环境; 抄 | | 录环境; 列表环境; 制表环境. | +----------------------------------------------------+ 这里要介绍的是几个TeX中常用的环境, 它的一般格式是: \begin{环境名} ... \end{环境名} 首先是居中, 左对齐, 右对齐环境, 这三者的环境名分别是center, flushleft和flushright, 在环境中的正文以\\断行. 这三个环境比较简单, 就不举例子了. 需要注意的是, 紧接这环境后的正文和环境如果没有空行隔开, 那么系统认为是一个段落,就是说环境后的正文行首没有\parindent的缩进. 小页环境大家在第一个完整的TeX例子中已经看到了, abstract就是小页. 小页环境的格式是: \begin{minipage} {宽度} ... \end{minipage} {宽度}可以用TeX的任何合法距离; 是可选项, 可以选择t 或b来表示小页是和正文是"顶部对齐"还是"底部对齐", 请看例子: NORMAL TEXT \begin{minipage}{1 in} This is a minipage aligned on its bottom line. \end{minipage} AND \begin{minipage} {1 in} This is a minipage aligned on its top line. \end{minipage} END 注意的是, 小页的footnote(脚注)是紧跟在小页后面, 而不是在整个页面的下面, 所以在minipage嵌套时, 可能系统会放错脚注的位置. 抄录环境(verbatim)在\begin{verbatim}和\end{verbatim} 的任何字符都将原样输出, 包括\等TeX保留字. 而"verbatim*"与verbatim的区别是, 它将把空格用|_|表示出来. verbatim有一个简写形式, "\verb标识符 字符串 标识符", 其中标识符可以是空格以外任何字符, 它与\verb之间没有空格. 如: \verb+ This is \!@#$%%^**({ All you want to type. + 当然, 字符串里就不能出现你作为标识符的符号了. 列表环境itemize, enumerate, description. \begin{itemize} \item 列表项1 \item 列表项2 ... \item 列表项n \end{itemize} 自动编号; 如果超过一行, 自动缩进以突出编号. 而enumerate与itemize的区别是, 它不出现数字编号, 而是以小黑圆点来标识. description一般用于类似于名词解释的情形: \begin{description} \item 解释 \item 解释 ... \end{description} 一般, 还在 中加上\bf或\heiti以突出名词.列表环境还可以嵌套使用, 具体就不细述了. TeX专门提供了一个制表环境, 用来排印有线或无线的表格. \begin{tabular} {列定义} ... \end{tabular} 这里 和minipage一样, 可选t或b, 但我们通常用的表格都是独立表格, 所以通常不定义位置, 而直接独立一段. {列定义}类似于array的列对齐, 可以用c,l和r来表示对齐方式, 这里的列定义还可以在列对齐字母间用"|"以画出表格中列的竖线. 表格内容如array一样, 用隔开, \\换行, 同样要注意的个数. 表格的横线可以用\hline来表示, 如: \begin{tabular}{|c|c|c} \hline 1 2 3 \\ \hline 4 6 \\ %这里要注意, 若最后行要画横线, 则此处要有\\ \hline \end{tabular} 而"\cline{列号1-列号2}"则是表示从列号1到列号2的一条横线. 而如果要在表格元素中画竖线, 则可以用"\vline". 有时我们还会遇到需要把某行表格的几列合并起来, 这就要使用 \multicolumn{栏数}{栏定义}{内容} {栏数}是要合并的栏的数目, {栏定义}类似于表格的{列定义}, 如: \begin{tabular}{|c|c|c|} \hline \multicolumn{2}{|c|}{1} 2 \\ \hline 3 4 5 \\ \hline \end{tabular} 而 \begin{tabular*}{宽度} {列定义} ... \end{tabular*}可以自己定义表格的总宽度, 如\textwidth等TeX 的合法距离. 最后, 我们讲讲制表环境的四个参数, 这四个参数都是局部 参数, 也就是说只要用分组限定命令的作用范围, 就可以调整某个表格的参数而不影响其它表格. \tabcolsep是两列间水平距离的一半, 缺省为6pt; \arrayrulewidth为定义\hline, \vline,\cline及列定义的分隔线|的线宽, 缺省为0.4pt; \doublerulesep为连续两个\hline或列定义中连续两个|所画的线段之间的间隔,缺省为2pt, 如果设为0pt, 则可以用连续的\hline或|来加粗表格的某些线框; \arraystretch是一个实数, 缺省为1.0, 定义行距的一个因子, 用\renewcommand来改变.
个人分类: 科研工具|6946 次阅读|0 个评论
完全在Linux系统下做科研工作
热度 4 blownsand 2011-7-17 12:59
我工作用的计算机上只安装了Linux操作系统,自带的开源软件完全能够满足科研需要,现把常用的罗列如下: 1)数值计算:实验数据的处理和理论模型的验证都离不开数值计算。熟练掌握 Fortran 就足够了,但编程过程略显复杂。偶尔也用一下 Octave 。至于编辑器嘛,有经典的Vi和Emacs,小巧灵活的Gedit, Kate和KWrite, 甚至Notepad也挺好的。 2)图像处理:画数据图和示意图当然用 Metapost 啦!稍微复杂一点儿的可以用 Xfig ,输出成metapost文件再做精确修改。一般的图像处理有 GIMP 呢! 3)文字处理:写科技论文的首选工具是 LaTeX ,谁不想让自己的研究结果以漂亮的方式展现在同行面前呢! Kile 是LaTeX专用编辑器之一。很多一流期刊都提供 LaTeX格式文件,作者只需拿过来直接填内容而不必在写论文时分心考虑如何排版。Open Office可以写doc文件。不过,只接受doc文件的刊物一般是不必考虑投稿的,呵呵!
12460 次阅读|9 个评论
[转载]mcc、mbuild和mex命令详解
songhaiyu 2011-7-16 22:15
http://www.matlabsky.com/thread-544-1-1.html 好多学习Matlab扩展编程的人经常把这几个命令给搞混淆的,下面我就给大家仔细讲讲,希望呢给大家讲明白! 先简单的说说mcc、mbuild和mex到底怎么回事: mcc将M文件转换成C/C++文件和相应的MEX包裹文件(需要Matlab编辑器),但在特定条件下可以自动调用mbuild或者mex mex将C/C++文件(入口函数为mexfunction())编译成MEX(DLL)文件(需要C/C++编辑器) mbuild将C/C++文件(入口函数为main())生成可独立运行的C应用程序(需要C/C++编辑器) 复制代码 一 mcc命令 Matlab编译器使用 mcc命令能将一个M文件翻译成C文件,同时生成一个相应的包裹文件 ,这个包裹文件包含了编译器产生的代码和它支持的可执行文件类型之间所需的接口。利用改包裹文件提供的接口,生成的C文件能用在任何编译器所支持的可执行文件类型(如MEX文件、EXE文件、DLL文件)中,这些C文件与最终生成的可执行文件是相互独立的。 Matlab编译器(Lcc)在 特定的条件下能自动调用mex和mbuild函数 ,尤其是mcc –x/-m/-p时。 (1)创建MEX文件 mcc –x filename (注意这个命令在2008a中已经去掉了) 将M文件filename.m翻译成C代码,并生成一个可被Matlab直接调用的C的MEX。 (2)创建simulink S函数 mcc –s filename 将M文件filename.m翻译成C代码,并生成一个相应的simulink S函数,该函数的输入输出变量的大小可动态改变。 (3)创建可独立执行的C程序 mcc –m filename 将M文件filename.m翻译成C代码,生成的可执行文件能独立于Matlab运行环境。 (4)创建可独立运行的C++程序 mcc –p filename 将M文件filename.m翻译成C++代码,生成的可执行文件能独立于Matlab运行环境。 (5)创建可独立运行的C图形库函数 mcc –B sgl filename 如果filename.m中包含了对Matlab图形处理函数的调用,上述命令,将filename转换成为C语言,并生成一个能独立于Matlab运行环境的可执行程序。 (6) 创建可独立运行的C++图形库函数 mcc –B sgl cpp filename 如果filename.m中包含了对Matlab图形处理函数的调用,上述命令,将filename转换成为C++语言,并生成一个能独立于Matlab运行环境的可执行程序。 (7)创建C函数库 mcc –m –W lib:libfoo –T link:libfoo.m 创建一个C函数库 二 mex命令 用户可以在Matlab中按简单的M文件语法规则设计出来完成特定计算的算法。然后用 Matlab编译器调用mex命令创建C共享库函数(DLL)或C++静态函数库 ,最后将它们整合到C/C++应用程序中,编译完这些C/C++应用程序,就可以用这些算法来实现特定的计算功能。当然这过程中也隐藏了算法和加快了代码的执行效率。 由于MEX文件执行效率高,故如果有文件重名的话,Matlab将优先调用MEX文件 ,下面以一个例子说明: function theimage=gasket(numpoits) theimage=zeros(1000); corners= ; startpoit= ; therand=ceil(rand(numpoits,1)*3); for ii=1:numpoits startpoit=floor((corners(therand(ii),:)+startpoit)/2); theimage(startpoit(1),startpoit(2))=1; end imagesc(theimage) colormap( ); axis equal tight 复制代码 现在直接调用 tic ,gasket(5000000);toc Elapsed time is 7.240129 seconds. 复制代码 接着把它编译成mex文件在调用试试 mcc -p tic gasket;tic ,gasket(5000000);toc Elapsed time is 1.23861 seconds. 复制代码 三 mbuild命令 要建立独立运行的C应用程序,系统中需要 安装Matlab、Matlab编译器、C/C++编译器以及Matlab C/C++数学库函数和图形库函数 。 Matlab编译器使用 mbuild命令可以直接将C/C++源代码编译为独立运行程序 ,在这些源代码中可以使用Matlab提供的接口来调用Matlab数学库函数。 虽然生成的 可执行程序可以脱离Matlab环境运行,但是它需要Matlab C/C++数学库文件或者图形库文件的支持才能运行 。但如果C/C++源代码完全是按传统C/C++源代码语法规则编写,没有包含Matlab数学库和图形库的调用,则不仅可以独立与Matlab环境,也不需要那两个库函数的支持。 对于如何在其他环境中运行那个生成的exe文件,大家看看这个帖子: http://www.matlabsky.com/thread-543-1-1.html 下面说说一些比较和区别: 1. MEX文件和EXE文件的差别 Mex文件与Matlab解释器在同一个过程空间运行,当用户调用一个MEX文件时Matlab解释器就会动态的连接到MEX文件。 可独立运行的C/C++应用程序(exe)可以独立于Matlab环境而运行, 而MEX文件则不行,它需要Matlab的支持 。还有EXE中可以调用MEX文件。 2.mex和mbuild编译的C/C++文件的差别 使用mbuild命令编译的C/C++源文件中, 必须包含main()函数 ,它能独立于Matlab运行。而mex命令编译的C/C++源文件中不含main()函数, 它是以mexfunction()函数作为入口的 ,编译后生成的是mex文件,被Matlab调用。 下面是我的一些使用心得 由于真正掌握C/C++接口编程比较麻烦, 故对初学者较少直接使用mex命令 (花费那么大的精力去学习那些接**术,接着利用接**术编写C/C++文件,再使用mex命令来编译它),一般大家都是先写好M文件再使用mcc –x命令让它生成MEX (DLL)文件。 但对纯正的C/C++大家却都比较熟悉,故mbuild命令还是有些市场的
个人分类: 程序设计|4843 次阅读|0 个评论
[转载]vi命令的使用小结
robin7777 2011-6-7 14:44
功能最强大的编辑器——vi vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、游刃有余,因为其他几种文本处理器并非UNIX标准配备。说不定别人的Linux机器没安装joe或pico,如果您不会vi,那您可能就没辄了。 vi的基本概念 基本上vi可分为三种操作状态,分别是命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode),各模式的功能区分如下: 1. Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insert mode下,或者到Last line mode。 2. Insert mode:唯有在Insert mode下,才可做文字数据输入,按Esc等可回到Comand mode。 3. Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。 不过可以把vi简化成两个模式,即是将Last line mode也算入Command mode,把vi分成Command 和Insert mode。 vi的基本操作 ?进入vi 在系统提示符号输入vi及文件名称后,即可进入vi全屏幕编辑画面: $ vi testfile 有一点要特别注意,就是您进入vi之后是处于“Command mode”下,您要切换到Insert mode才能输入文字。初次用vi的用户都会想先用上下左右键移动光标,结果电脑一直叫,把自己气个半死,所以进入vi后,先不要乱动,转换入Insert后再说。 ?切换至Insert mode编辑文件 在Command mode下按‘i’、‘a’或‘o’三键就可进入Insert mode。这时候您就可以开始输入文字了。 i: 插入,从目前光标所在之处插入所输入的文字。 a: 增加,目前光标所在的下一个字开始输入文字。 o: 插入新的一行,从行首开始输入文字。 ?Insert的切换→Command mode,按Esc键 您目前处于Insert mode,您就只能一直打字。假如您发现打错字了,想用光标键往回移动,将该字删除,就要按ESC键转换回Command mode,再删除文字。 ?离开vi及存文件 在Command mode下,可按冒号“:”键入入Last line mode,例如: :w filename (输入“w filename”,将文章存入指定的文件名filename) :wq (输入“wq”,因为进入之时已经指定文件名testfile,所以会写入testfile并离开vi) :q! (输入“q!”,强制离开并放弃编辑的文件) Command mode功能键列表 在介绍command mode指令的时后,指令后面加上“常用”字眼的功能键,表示比较常用的vi指令,请读者您一定要学会、记住。 (1)I、a、o切换进入Insert mode。 (2)移动光标 vi可以直接用键盘上的光标键来上下左右移动,但正规的vi是用小写英文字母 h、j、k、l,分别控制光标左、下、上、右移一格。 按Ctrl+B:屏幕往后移动一页。 按Ctrl+F:屏幕往前移动一页。 按Ctrl+U:屏幕往后移动半页。 按Ctrl+D:屏幕往前移动半页。 按 0 (数字零):移动文章的开头。 按 G:移动到文章的最后。 按 w:光标跳到下个word的开头。 按 e:光标跳到下个word的字尾。 按 b:光标回到上个word的开头。 按 $:移到光标所在行的行尾。 按 ^:移到该行第一个非空白的字符。 按 0:移到该行的开头位置。 按 #:移到该行的第#个位置,例:51、121。 (3)删除文字 x:每按一次删除光标所在位置的后面一个字符。 #x:例如,6x 表删除光标所在位置的后面6个字符。 X:大字的X,每按一次删除光标所在位置的前面一个字符。 #X:例如,20X 表删除光标所在位置的前面20个字符。 dd:删除光标所在行。 #dd:例如,6dd表删除从光标所在的该行往下数6行之文字。 (4)复制 yw:将光标所在处到字尾的字符复制到缓冲区中。 (想在和#x、#X的功能相反) p:将缓冲区内的字符粘贴到光标所在位置(指令‘yw’与‘p必须搭配使用)。 yy:复制光标所在行。 p:复制单行到您想粘贴之处。(指令‘yy’与‘p’必须搭配使用) #yy:如:6yy表示拷贝从光标所在的该行往下数6行之文字。 p:复制多行到您想粘贴之处。(指令‘#yy’与‘p’必须搭配使用) “ayy:将复制行放入buffer a, vi提供buffer功能,可将常用的数据存在buffer “ap:将放在buffer a的数据粘贴。 “b3yy:将三行数据存入buffer b。 “b3p:将存在buffer b的资料粘贴 (5)取代 r: 取代光标所在处的字符: R:取代字符直到按Esc为止。 (6)复原(undo)上一个指令 u:假如您误操作一个指令,可以马上按u,回复到上一个操作。 .: .可以重复执行上一次的指令。 (7)更改 cw:更改光标所在处的字到字尾$处。 c#w:例如,c3w代表更改3个字。 (8)跳至指定行 Ctrl+G:列出光标所在行的行号。 #G:例如,15G,表示移动光标至文章的第15行行首。 Last line mode下指令简介 读者您要使用Last line mode之前,请记得先按Esc键确定您已经处于Command mode下后,再按冒号“:”或“/”或“?”三键的其中一键进入Last line mode。 1.列出行号 set nu: 输入“set nu”后,会在文章的每一行前面列出行号。 2.跳到文章的某一行 #:井号代表一个数字,在Last line mode提示符号“:”前输入数字,再按Enter就会跳到该行了,如:15 就会跳到文章的第15行。 3.寻找字符串 /关键字:先按/,再输入您想寻找的字,如果第一次找的关键字不是您相尽可能的,可以一直按n会往下寻找到您要的关键字为止。 ?关键字:先按?,再输入您想寻找的字,如果第一次找的关键字不是您想要的,可以按n会往前寻找到您要的关键字为止。 4.取代字符串 1,$s/string/replae/g:在last line mode输入“1,$s/string/replace/g”会将全文的string字符串取代为replace字符串,其中1,$s就是指搜寻区间为文章从头至尾的意思,g则是表示全部取代不必确认。 %s/string/replace/c:同样会将全文的string字符串取代为replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,c则是表示要替代之前必须再次确认是否取代。 1,20s/string/replace/g:将1至20行间的string替代为relpace字符串。 5.存文件 w:在last line mode提示符号“:”前按w即可将文件存起来。 #,# w filename:如果您想摘取文章的某一段,存成另一个文件,可用这个指令#代表行号,例如30,50 w nice,将您正在编辑文章的第30~50行存成nice这个文件。 6.离开 q:按q就离开,有时如果无法离开vi,可搭配“!:强置离开vi,如“q!” qw:一般建议离开时,搭配w一起使用,如此离开时还可存文件。 VI命令集锦: 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字j至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 插入文本类命令 i :在光标前 I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按ESC键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符 S:删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw或ndW:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 : /pattern:从光标开始处向文件尾搜索pattern ?pattern:从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令 :s/p1/p2/g:将当前行中所有p1均用p2替代 :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 :g/p1/s//p2/g:将文件中所有p1均用p2替换 选项设置 all:列出所有选项设置情况 term:设置终端类型 ignorance:在搜索中忽略大小写 list:显示制表位(Ctrl+I)和行尾标志($) number:显示行号 report:显示由面向行的命令修改过的数目 terse:显示简短的警告信息 warn:在转到别的文件时若没保存当前文件则显示NO write信息 nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符 nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始 mesg:允许vi显示其他用户用write写到自己终端上的信息 最后行方式命令 :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下 :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下 :n1,n2 d :将n1行到n2行之间的内容删除 :w :保存当前文件 :e filename:打开文件filename进行编辑 :x:保存当前文件并退出 :q:退出vi :q!:不保存文件并退出vi :!command:执行shell命令command :n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指 定n1,n2,则表示将整个文件内容作为command的输入 :r!command:将命令command的输出结果放到当前行 。
个人分类: 操作及编程|6 次阅读|0 个评论
[转载]shell入门基础必备
chnfirst 2011-6-2 08:47
http://www.21ds.net/article/31/508 shell入门基础必备 日期:2005-05-17 来源: Linux先生 作者: KornLee 1.建立和运行shell程序 什么是shell程序呢? 简单的说shell程序就是一个包含若干行shell或者linux命令的文件.象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如VI等.在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整的程序文件. 执行shell程序文件有三种方法 (1)#chmod +x file(在/etc/profile中,加入export PATH=${PATH}:~/yourpath,就可以在命令行下直接运行,像执行普通命令一样) (2)#sh file (3)# . file (4)#source file 在编写shell时,第一行一定要指明系统需要那种shell解释你的shell程序,如:#! /bin/bash, #! /bin/csh,/bin/tcsh,还是#! /bin/pdksh . 2.shell中的变量 (1)常用系统变量 $ # :保存程序命令行参数的数目 $ ? :保存前一个命令的返回码 $ 0 :保存程序名 $ * :以("$1 $2...")的形式保存所有输入的命令行参数 $ @ :以("$1""$2"...)的形式保存所有输入的命令行参数 (2)定义变量 shell语言是非类型的解释型语言,不象用C++/JAVA语言编程时需要事先声明变量.给一个变量赋值,实际上就是定义了变量. 在linux支持的所有shell中,都可以用赋值符号(=)为变量赋值. 如: abc=9 (bash/pdksh不能在等号两侧留下空格 ) set abc = 9 (tcsh/csh) 由于shell程序的变量是无类型的,所以用户可以使用同一个变量时而存放字符时而存放整数. 如: name=abc (bash/pdksh) set name = abc (tcsh) 在变量赋值之后,只需在变量前面加一个$去引用. 如: echo $abc (3)位置变量 当运行一个支持多个命令行参数的shell程序时,这些变量的值将分别存放在位置变量里.其中第一个参数存放在位置变量1,第二个参数存放在位置变量2,依次类推...,shell保留这些变量,不允许用户以令外的方式定义他们.同别的变量,用$符号引用他们. 3.shell中引号的使用方法 shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符.反引号(")对shell则有特殊意义. 如: abc="how are you" (bash/pdksh) set abc = "how are you" (tcsh) 这个命令行把三个单词组成的字符串how are you作为一个整体赋值给变量abc. abc1='@LOGNAME,how are you!' (bash/pdksh) set abc1='$LOGNAME,how are you!' (tcsh) abc2="$LOGNAME,how are you!" (bash/pdksh) set abc2="$LOGNAME,how are you!" (tcsh) LOGNAME变量是保存当前用户名的shell变量,假设他的当前值是:wang.执行完两条命令后,abc1的内容是:$LOGNAME, how are you!.而abc2的内容是;wang, how are you!.象单引号一样,反斜线也能屏蔽所有特殊字符.但是他一次只能屏蔽一个字符.而不能屏蔽一组字符.反引号的功能不同于以上的三种符号.他不具有屏蔽特殊字符的功能.但是可以通过他将一个命令的运行结果传递给另外一个命令. 如: contents=`ls` (bash/pdksh) set contents = `ls` (tcsh) 4.shell程序中的test命令 在bash/pdksh中,命令test用于计算一个条件表达式的值.他们经常在条件语句和循环语句中被用来判断某些条件是否满足. test命令的语法格式: test expression 或者 在test命令中,可以使用很多shell的内部操作符.这些操作符介绍如下: (1)字符串操作符 用于计算字符串表达式 test命令 | 含义 ----------------------------------------- Str1 = str2 | 当str1与str2相同时,返回True Str1! = str2| 当str1与str2不同时,返回True Str | 当str不是空字符时,返回True -n str | 当str的长度大于0时,返回True -z str | 当str的长度是0时,返回True ----------------------------------------- (2)整数操作符具有和字符操作符类似的功能.只是他们的操作是针对整数 test表达式 | 含义 --------------------------------------------- Int1 -eq int2|当int1等于int2时,返回True Int1 -ge int2|当int1大于/等于int2时,返回True Int1 -le int2|当int1小于/等于int2时,返回True Int1 -gt int2|当int1大于int2时,返回True Int1 -ne int2|当int1不等于int2时,返回True ----------------------------------------- (3)用于文件操作的操作符,他们能检查:文件是否存在,文件类型等 test表达式 | 含义 ------------------------------------------------ -d file |当file是一个目录时,返回 True -f file |当file是一个普通文件时,返回 True -r file |当file是一个刻读文件时,返回 True -s file |当file文件长度大于0时,返回 True -w file |当file是一个可写文件时,返回 True -x file |当file是一个可执行文件时,返回 True ------------------------------------------------ (4)shell的逻辑操作符用于修饰/连接包含整数,字符串,文件操作符的表达式 test表达式 | 含义 ---------------------------------------------------------- ! expr |当expr的值是False时,返回True Expr1 -a expr2|当expr1,expr2值同为True时,返回True Expr1 -o expr2|当expr1,expr2的值至少有一个为True时,返回True ----------------------------------------------------------- 注意: tcsh shell 不使用test命令,但是tcsh中的表达式同样能承担相同的功能.tcsh 支持的表达式于C中的表达式相同.通常使用在if和while命令中. tcsh表达式 | 含义 ------------------------------------------------------- Int1 = int2 |当int1小于/等于int2时,返回True Int1 = int2 |当int1大于/等于int2时,返回True Int1 int2 |当int1小于int2时,返回True Int1 int2 |当int1大于int2时,返回True Str1 == str2 |当str1与str2相同时,返回True Str1 != str2 |当str1与str2不同时,返回True -r file |当file是一个可读文件时,返回True -w file |当file是一个可写文件时,返回True -x file |当file是一个可执行文件时,返回True -e file |当file存在时,返回True -o file |当file文件的所有者是当前用户时,返回True -z file |当file长度为0时,返回True -f file |当file是一个普通文件时,返回True -d file |当file是一个目录时,返回True Exp1 || exp2 |当exp1和exp2的值至少一个为True时,返回True Exp1 exp2 |当exp1和exp2的值同为True时,返回True ! exp |当exp的值为False时,返回True
0 个评论
[转载]研究生应当常去的几个学术和英语网站
yizhenzhong 2011-5-30 19:20
研究生应当常去的网站 1. 小木虫( http://emuch.net/ ) 推荐理由:里边有不少学术科研用得到的资料,且全部为免费的。 2. 国家自然科学基金( http://www.nsfc.gov.cn/Portal0/default40.htm ) 推荐理由:堪称中国科学研究的风向标。 3. 台湾博硕士论文网( http://etds.ncl.edu.tw/theabs/index.jsp ) 推荐理由:有近10万的博士、硕士毕业论文全文可以下载;当然,下载的前提是你得搞到一个台湾身份证号来注册一个帐号。 4. 中国学术会议在线( http://211.68.23.76/a.asp ) 推荐理由:大量学术会议征文信息,有的被三大检索收录。 6. 研学论坛( http://bbs.matwav.com/ ) 7. 网上读书园地( http://www.readfree.net/bbs/index.php ) 9. 博研联盟( http://www.bylm.net/forum/index.php ) 11. 中国经济学教育科研网( http://www.cenet.org.cn/cn/ ) 12. 人大经济论坛( http://www.pinggu.org/bbs ) 推荐理由:经济学资源下载、学习交流的网站。 网天书城http://www.net-sky.com/book](网上读书,看看吧) 中华电脑书库http://www.pcbookcn.com](大量计算机方面图书,可以下载) 考试163 http://www.pcbookcn.com(大量考试方面的图书,可以下载) 择校学习网http://www.zexiao.com](出国学习外语,咨询等) 163考试网http://www.test163.com](要过CET的朋友要去看看,还有听力资料啊) 英语之声http://www.4english.cn](网上学习英语的好地方) 疯狂英语俱乐部http://www.crazyenglish.org](想了解疯狂英语吗?) 在线英语杂志http://www.englishcn.com](不错的地方) 英语写作网http://www.4ewriting.com](英语协作技巧等) 英语周报http://www.ew.com.cn](学习英语的好地方) 英语角http://www.english-corner.com.cn](看看吧)
个人分类: 研究微博|3689 次阅读|0 个评论
我常用的计算机工具
wlusheng 2011-5-18 14:17
在Ubuntu系统中自己喜欢的工具: TeXlive %文字排版系统,主要用于学术论文的写作; Vim %编辑器,文档的编写和修改。同时结合LaTeX-Suite作为TeX的编辑器; RedNoteBook %记日记的工具; Zim %; StarDict %词典; JabRef %参考文献管理工具,使用BibTeX来管理自己的文献; Beamer %制作演示文稿; Gnuplot %科学绘图工具; GFortran %Fortran 程序编译器; Evolution %邮件客户端; MultiGet %下载工具 待续。。。。。。。。
个人分类: 计算机工具|1 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-3 19:59

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部