显示标签为“macos”的博文。显示所有博文
显示标签为“macos”的博文。显示所有博文

2011年11月24日星期四

mac lion下的emacs使用

 主要内容:
1、lion下brew的安装
2、使用brew安装emacs及全屏设置
3、emacs类似source singht的语法高亮
4、cscope的安装和配置
5、cedet的安装

内容
1、lion下brew的安装
          brew全名为homebrew,是mac os下的一套包管理软件,类似ubuntu上的apt-get。直接使用brew安装emacs十分方便,而且emacs加入了lion中全屏的支持,升级也方便。
          homebrew中介绍了如何安装homebrew十分简单。

2、使用brew安装emacs
          brew update 更新brew库
          brew info emacs查看你要安装的emacs的版本信息
          brew options emacs查看emacs的安装配置选项
          brew install emacs --cocoa --srgb 安装emacs
           brew程序默认是安装到/usr/local/Cellar/目录下,并不在/Application目录,你可以使用软连接:
            ln -s /usr/local/Cellar/emacs/23.3a/Emacs.app /Applications/Emacs.app这样emacs就会出现在你的应用程序目录中。你也可以直接将Emacs.app移动到Applications目录,不过这样不方便brew对它升级。
           M-x ns-toggle-fullscreen 可使emacs进入全局模式,再运行一次退出全局模式。绑定一个快捷键更为方便
           (global-set-key [C-f7] 'ns-toggle-fullscreen)
           我用的emacs为23.3.1版本,貌似当前可以升级到24了。如果你在23版本安装中遇到编译问题可以参考这里


3、emacs类似source singht的语法高亮
          emacs的局部变量,函数调用等都是不高亮的,看着比较单调。zjl-hl插件可以实现类似source insight中的高亮效果。首先需要下载三个el文件zjl-hl.elregion-list-edit.elhighlight.el,将插件放到你的插件目录(我的是~/.emacs.d)后面两个被第一依赖。
          在.emacs中加入如下代码:

          (require 'zjl-hl)
          (zjl-hl-enable-global-all-modes)
          来源在这里这里



4、cscope的安装和配置
          brew install cscope安装cscope

          生成cscope数据库索引,具体参考这里
          1、建立cscope.files文件,指定要索引的文件,这里我要建立的是linux kernel的数据库,我对非x86框架和驱动代码关系,所以不索引这些代码。
     2、cscope -b -q -k生成索引数据库
     3、去这里下载cscope-indexer,这是一个脚本直接拷贝到/usr/local/bin即可,因为emacs建立索引时使用cscope-indexer -r命令,所以要下载它。我们直接使用命令行时也可以直接使用它,而不用第二条中的命令。
         
          在emacs中使用cscope
          1、下载xcscope.el放入插件目录,在.emacs中加入(require 'xcscope)
          2、c-h v cscope-program RET 修改mac下cscope的路径(我的是/usr/local/bin/cscope),要选择保存所有场景。
          3、c-s s a 设定索引文件目录
          现在可以使用快捷键来浏览代码了。c-c s c-h查看cscope命令帮助
                C-c s s              序找符号
                C-c s g             寻找全局的定义
                C-c s c              看看指定函数被哪些函数所调用
                C-c s C             看看指定函数调用了哪些函数
                C-c s e             寻找正则表达式
                C-c s f               寻找文件
                C-c s i               看看指定的文件被哪些文件include
          参考这里这里这里这里。  

5、cedet的安装
           直接参考这里,评论更精彩。

2011年8月20日星期六

配置macos新映像,文件系统支持区分大小写,使用svn

   在macos从svn服务器checkout代码时,出现如下错误:
svn: In directory 'iptables/extensions'
svn: Can't open file 'iptables/extensions/.svn/tmp/text-base/libxt_CONNMARK.c.svn-base': No such file or directory

   在google上搜索到svn checkout: No such file or directory on Mac OSX这篇文章,了解到macos下默认的文件系统是不区分大小写,而我要checkout的代码包含了同名但大小写区分的文件,最终导致了svn checkout源码失败。
   虽然作者给出了两种解决方案,当都没有细说,未说明具体的操作步骤,然后从评论里发现了亮点:use Disk Utility to create a sparse bundle disk image。大意为单独创建一个区分大小写的磁盘映像,将代码checkout到这个映像。
    研究了一下Disk Utility这个工具,有两种方案:1、建立新分区 2、建立新映像。我选择了第二种方案,这种方案不改变磁盘的结构,映像只是一个文件存储在原有的文件系统之上十分好用。
    在应用程序-实用工具中打开磁盘工具,在菜单栏里选择文件-文件-空白映像文件,弹出新建映像文件菜单
(存储为:,填映像文件存储的路径)
(名称:,填映像的挂载名称,挂载后会在桌面上限制,跟U盘类似)
(大小:,任意)
(格式:,选择区分大小写日志式)
(加密:,任意)
(分区:,选择单个分区-apple分区图)
(映像格式:,选择稀疏磁盘格式)
    最后点击创建即可,这是会看到桌面上多了一个挂载磁盘,为新建立的映像挂载。 在此挂载目录即可存储大小写区分的文件。