Eclipse智能引号 - 就像Textmate一样

时间:2009-11-13 16:33:23

标签: python eclipse ide development-environment pydev

快乐星期五 - 有没有人知道eclipse是否有像Textmate这样的智能引号的概念。它的工作方式是选择一些单词并通过简单地按键来引用它们?我是一个新手,所以要温柔。当然 - 我在Eclipse中使用pydev。

由于

改写

我正在寻找的是我在屏幕上选择了一个单词或短语,我想简单地点击'“'键并将整个单词或短语用引号括起来。这同样适用于各种键 - 喜欢([{“'`。

所以说我有以下代码

a = {}
a[keyword] = 1

现在(在python中)关键字应该在引号中。我应该能够双击(选择)关键字,只需键入'然后中提琴引用整个单词。现在发生的事情是关键字被单引号替换......叹息..

由于

5 个答案:

答案 0 :(得分:2)

对于Java和XML文件,您可以在Window / Preferences / Java / Editor / Templates中创建新模板。模板文本可能如下所示:

"${word_selection}${}"${cursor}

然后,您可以使用标准Ctrl-Space应用此模板激活代码完成(可能必须按2到3次才能到达模板选择器),然后选择您的报价模板。

答案 1 :(得分:1)

在最新的PyDev中,它应该完全按照您的需要工作(在PyDev 2.2.3中测试 - 实际上已经存在了一段时间了。)

答案 2 :(得分:0)

我想我知道你在问什么,是不是......

如果按X键,它将选择光标所在的当前单词?

如果这是问题,那么我不这么认为。 在eclipse中没有设置很多可能的键绑定。见窗口>偏好>一般>键

更新

抱歉,我不认为在eclipse中有这样做的动作。 可能存在一个插件,您可以将其附加到键绑定,但我不知道它。

答案 3 :(得分:0)

您可以查看其中一条评论命令的工作原理。例如,如果我选择说4行代码并且我想对所有这些行进行注释,我只需选择它们然后点击ctrl + /并且所有选定的代码行都将被注释。

我是很长时间的文字用户,而且我错过了一些可怕的东西。我强迫自己硬开关,远离我的mac。我会在时间允许的情况下进行调查,但目前我无法继续进行小调整。

-Matt

答案 4 :(得分:0)

这是一个用Autohotkey编写的:

#NoEnv
SetWorkingDir %A_ScriptDir%
SendMode Input
#InstallKeybdHook
#UseHook On

(::
    if GetKeyState("ScrollLock","T")
    {
        sel := GetSelection(1)
        if sel
            PasteText("(" sel ")")
        else
            Send (
        sel := ""
    }
    else
        Send (
Return

"::
    if GetKeyState("ScrollLock","T")
    {
        sel := GetSelection(1)
        if sel
            PasteText("""" sel """")
        else
            Send "
        sel := ""
    }
    else
        Send "
Return

'::
    if GetKeyState("ScrollLock","T")
    {
        sel := GetSelection(1)
        if sel
            PasteText("'" sel "'")
        else
            Send '
        sel := ""
    }
    else
        Send '
Return

{::
    if GetKeyState("ScrollLock","T")
    {
        sel := GetSelection(1)
        if sel
            PasteText("{" sel "}")
        else
            Send {{}}
        sel := ""
    }
    else
        SendRaw {
Return

[::
    if GetKeyState("ScrollLock","T")
    {
        sel := GetSelection(1)
        if sel
            PasteText("[" sel "]")
        else
            Send [
        sel := ""
    }
    else
        Send [
Return

<::
    if GetKeyState("ScrollLock","T")
    {
        sel := GetSelection(1)
        if sel
            PasteText("<" sel ">")
        else
            Send <
        sel := ""
    }
    else
        Send <
Return


GetSelection(wait = "")
{
    ClipBack := ClipboardAll
    Clipboard := ""
    Send ^c
    if wait
        ClipWait 0.05
    Selection := Clipboard
    Clipboard := ClipBack
    Return Selection
}

安装Autohotkey后,将此代码保存到文本文件,将扩展名重命名为.ahk并运行它。它需要打开Scroll Lock才能使代码生效。

此代码已从http://www.autohotkey.net/~Vifon/修改为:

  1. 包括'和&lt;
  2. 在未选择任何文字时,写下',',&lt;,{,[,(而不是'',“”,&lt;&gt;,{},[],()。