我注意到这里有很多人在 OS X 上使用TextMate进行编码。我最近开始使用它,虽然我喜欢它的简约界面,但如果你不知道自己在看什么,就很难偶然发现很酷的功能为了。
那么,您发现哪些功能对编码(主要是 Python)最有帮助?除了包含的内容之外,我还应该了解任何第三方捆绑包吗?
我注意到这里有很多人在 OS X 上使用TextMate进行编码。我最近开始使用它,虽然我喜欢它的简约界面,但如果你不知道自己在看什么,就很难偶然发现很酷的功能为了。
那么,您发现哪些功能对编码(主要是 Python)最有帮助?除了包含的内容之外,我还应该了解任何第三方捆绑包吗?
不要忽视 'mate' 命令行工具。您可以使用它将输出通过管道传输到 TextMate,因此如果您执行以下操作...
diff file1.py file2.py | mate
...它不仅会在 TextMate 中打开,而且它足够聪明,可以知道您正在查看差异并突出显示屏幕上的行。
TextMate 的 SVN 集成很棒;它似乎也有一些其他版本控制系统的捆绑包。
添加 GetBundle 以浏览捆绑存储库。我通过它找到了 jQuery 捆绑包,它非常方便。
正如其他人所提到的,为常用片段滚动您自己的捆绑包非常有帮助。如果您有一些特定于项目或框架的片段,您可能希望在所有片段前面加上一个通用字母以保持命名空间整洁。
拖动时按住选项可以突出显示文本块。如果您在突出显示处于活动状态时键入,您的击键将显示在多行上。
能够用任何脚本语言编写简单的命令并将它们绑定到特定于上下文的热键。
导航菜单命令转到文件(Command + T) 和转到符号(Command + Shift + T) 都非常有用。
转到 File,它在您打开项目时起作用,允许您键入文件名的任何部分以仅查看与您键入的内容匹配的文件。
Go to Symbol具有相同的 type-to-filter 接口,但操作的是我称之为文档的基本块元素。例如,如果您正在编辑一个类,Go to Symbol 对方法名称起作用,但在 CSS 文档中,您将在选择器上进行搜索。这真是太棒了。
我在 Boagworld 的评论中提到了一些,我找到了片段、项目经理、列式编辑(在选择内容时按住选项或在选择内容后推送它)和 CSS 语法范围。
我喜欢集成的 HTML/XML Tidy。Cmd-shift-H 是你的朋友。
此外,与各种 scp/sftp 客户端的良好集成。
我最喜欢的两个功能是自动完成(绑定到 ⎋ [esc])和列编辑(绑定到 ⌥ [alt]),这两件事都为我节省了很多时间,而且绝对是“机器人忍者”。
上面链接的书对 TextMate 的强大功能也非常有用,尽管它没有特别提到 python。
不要忘记“拖动命令”。它们使您能够将图像拖放到 blog.html 文档中,然后将其上传到正确的文件夹并为您插入标记。
这是另一个示例,如果您将 TM 与QuickSilver配对,如何进一步扩展拖动命令。
(免责声明:我写了我链接到那里的博客文章。但我仍然认为它很酷。)
这里值得注意的是,有一个 Windows 替代 TextMate,称为E Text Editor。它几乎完成了 TextMate 所做的所有事情(除了宏,但我认为作者正在研究这个),甚至 -震惊、恐怖- 还做了一些更好的事情,例如出色的包编辑器、包管理器和分支撤消历史。更新:现在有Snippet Pipes。
因此,这并不完全是 TextMate 的一个有用功能,但对于了解您是否是 TextMate 的粉丝并且无论出于何种原因必须使用 Windows非常有用。
片段创建的简易性。
使用替换、制表顺序和正则表达式替换来创建可以完成很多工作的新片段是微不足道的。快速将这些分配给特定语言的 tab 键使我更有效率。让我担心代码膨胀。:-)
对我来说最好的功能是:
mate
,例如,可以轻松愉快地将 TextMate 用作 SCM 的默认编辑器。使用片段扩展成大的、重复的代码块,然后使用 Tab 键移动并只编辑我需要的部分,而无需使用鼠标或箭头键。
它既漂亮又轻巧,并且为 Ruby 内置了所有宏,让您只需按一下键即可运行 Ruby 代码或任何其他代码。
查看ProjectPlus,它为侧边栏提供了一些有用的选项,它具有 svn 和 git 的 SCM 状态标记(尽管我发现 git 有点错误)。
我喜欢它可以将侧边栏更改为左侧或右侧的嵌入式面板(与默认的抽屉相反)的事实。
如果像我一样,在使代码看起来整洁方面你是边缘强迫症,那么 Option+Cmd+] 来排列当前行周围的所有作业非常棒!
命令行mate
工具很棒,您可以打开单个文件,或者我最喜欢的用途是将文件目录作为项目打开(例如mate .
)
结帐Zen Coding 包。它为您开发 HTML 和 CSS 提供了极大的生产力提升。