【问题标题】:Eclipse smart quotes - like in TextmateEclipse 智能引号 - 就像在 Textmate 中一样
【发布时间】:2010-12-16 08:46:38
【问题描述】:

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

谢谢

改写

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

所以说我有以下代码

a = {}
a[keyword] = 1

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

谢谢

【问题讨论】:

  • 这在 Eclipse 中是不可能的。但是 Eclipse 支持自动关闭报价。

标签: python eclipse ide development-environment pydev


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    在最新的 PyDev 中,它应该已经可以完全按照您的意愿工作了(在 PyDev 2.2.3 中进行了测试——这实际上已经存在了一段时间)。

    【讨论】:

      【解决方案3】:

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

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

      如果这是问题,那么我不这么认为。 有很多可能的键绑定没有在 Eclipse 中设置。请参阅窗口 > 首选项 > 常规 > 键

      更新:

      抱歉,我认为在 Eclipse 中没有执行此操作的操作。 可能存在一个可以附加到键绑定的插件,但我不知道有一个。

      【讨论】:

      • 不是我真正想要的——我会尝试重新表述我的问题。谢谢
      【解决方案4】:

      您可以查看其中一个注释命令的工作原理。例如,如果我选择了 4 行代码并且我想对所有代码行进行注释,我可以简单地选择它们然后按 ctrl+/ 并且所有选定的代码行都会被注释。

      我是一个长期的 textmate 用户,我错过了一些可怕的东西。我强迫自己从我的 Mac 上做出一个艰难的转变。我会在时间允许的情况下进行调查,但目前我不能一直停留在细微的调整上。

      -马特

      【讨论】:

        【解决方案5】:

        这是用 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. 包括 ' 和
        2. 当没有选择文本时,写 ', ", , {}, [], ()。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-29
          • 1970-01-01
          • 2011-06-09
          • 2021-06-20
          • 1970-01-01
          • 1970-01-01
          • 2010-10-14
          • 2019-03-13
          相关资源
          最近更新 更多