在 TextMate 中,如何将光标定位在新生成的 HTML 标签内?

在 TextMate 中,如何将光标定位在新生成的 HTML 标签内?

我来自 Windows TextMate 克隆版电子文本编辑器。在该应用程序中,并在文档中设置为 Ruby on Rails 包.html.erb,如果我输入Ctrl- Alt- W(相当于TextMate 中的Ctrl- Shift- ),那么我会得到W

<p></p> 

第一个尖括号中的字母“p”突出显示,我可以在其中输入任何文本,其他右括号的“p”将相应更改。到目前为止,TextMate 和 e-texteditor 中一切正常。但在 e-texteditor 中,如果我按下Tab,光标将移动到这些 HTML 标记的内容,如下所示:

<p>|</p> 

其中|代表光标。现在我知道Ctrl- Shift-W应该在 TextMate 中包装选定的文本,e-texteditor 也可以做到这一点!但我发现能够制作一对 HTML 标签并在里面制表而不是使用箭头键返回非常方便。

也许还有其他捷径?


以防万一我还没有说清楚:Ctrl- Shift- W(或另一个快捷方式),按下时,首先生成

<p></p> 

第一个“p”突出显示,准备进行更改。无论是否更改,Tab按下 时,光标都应位于这些开始和结束 HTML 标记之间。

答案1

编辑

您的问题让我有些困惑:我根本不记得有这个问题,但不知何故我忘记了曾经了解的有关 TextMate 的大部分内容(一年前改用 Vim)。我刚刚重新授权了 TextMate 来玩 TM2,所以这是您的答案:

您使用了“错误”的快捷方式。

CtrlShiftW是为了用开始和结束标签包裹当前选定的文本

由于您按此快捷方式时没有进行选择,因此最终会得到一个空标签。由于该标签旨在处理一些预先存在的内容,因此它不提供进一步编辑所述内容的功能是合乎逻辑的。

典型的用例是当您从简介中粘贴一些原始文本并仔细查看以添加适当的 HTML 格式时。

这种插入空 HTML 标签对的快捷方式有点像幻觉。当然,它确实能做到这一点,但如果使用不当,就会产生副作用。

正确的快捷方式Ctrl<可选择使用当前单词插入开始和结束标签。

您可以通过两种方式使用它:

  1. 如果插入符号左侧有空格,则点击Ctrl<插入<p></p>并选择第一个p。您可以将其更改p为类似 的内容h1并将其镜像到结束标记,或者点击Tab将插入符号移动到标记之间,如下所示:<p>|</p>

    我想这正是你想要的,实际上,这也是我一直以来所做的。因此我对你的问题感到不舒服。

  2. 如果您的插入符号位于单词后面,例如span,点击以用第一个选定的单词Ctrl<替换。现在,您拥有与第一种方法完全相同的可能性。span<span></span>span

结束编辑

我的 TextMate 时代已经一去不复返了,所以这个解决方案可能不是最好的,但它非常容易付诸实践。

t只需创建一个以字母为触发器的片段,然后

<${1:tag}>$0</$1>

作为内容。

完成后您只需输入t<Tab>p<Tab>您的内容。

显然,它有一个相当重要的缺点:如果你添加属性,它们将被镜像到结束标签。

可以通过添加额外的制表位来缓解此问题:

<${1:tag}${2: }>$0</$1>

答案2

您只需将“在标签中换行选择”代码段从

<${1:p}>$TM_SELECTED_TEXT</${1/\s.*//}>

<${1:p}>${0:$TM_SELECTED_TEXT}</${1/\s.*//}>

相关内容