【问题标题】:Catching a PHP variable using double click in Notepad ++在记事本 ++ 中使用双击捕获 PHP 变量
【发布时间】:2011-07-02 20:08:25
【问题描述】:

我刚从 eclipse 切换到 Notepad++ 并修改了记事本的一些行为,但仍然有一个没有解决: 当我双击一个变量时,我希望我的编辑器能够捕捉到整个变量。 记事本会自动排除 php 前缀“$”,效率不高。 有什么办法可以改变这种行为吗?

谢谢

【问题讨论】:

  • 就个人而言,我曾经在 Notepad++ 中编写 PHP,并发现这种行为适合我。为什么还需要捕获$ 标志?
  • Notepad++ 源代码已打开,您可以挖掘并覆盖该行为 ;)
  • @galymzhan:这就像,你的意见的人。
  • @gAMBOOKa:当然。我只是看不到这种行为的好处。当前行为会在您双击变量时突出显示所有出现的变量 - 这不是完美的吗?
  • 我不会称之为“效率低下”。在某些情况下是这样,在其他情况下不是。这两种行为都有其优点和缺点。过一段时间你就会习惯这种行为。

标签: php variables notepad++ behavior


【解决方案1】:

从版本 7.3.1(2017 年 1 月 17 日发布)开始,他们添加了一种简单的方法来执行此操作。引用自release notes

在此版本中增加了自定义 Word 字符的增强功能:在双击选择或使用“仅匹配整个单词”选项进行搜索时,所选字符将停止在非单词字符上。 通过此增强功能,用户可以将任何非单词字符包含到单词字符集中,以更改其默认行为。

要启用它,请转到设置 -> 首选项 -> 分隔符,选择“将字符添加为单词的一部分”,然后在文本框中添加美元符号 ($)。关闭就可以了!

【讨论】:

  • 你太棒了,你救了我的命:p
  • 这是正确的答案。另一个“选择”的答案需要改为这个。
【解决方案2】:

下面是如何在 Npp 中选择整个 $php_variable / $word,包括“$”符号,使用 Alt + Click:

编辑:我现在意识到你可以跳过 Npp 宏,只使用 AutoHotKey。但无论如何我都会留下宏,以防 smb 喜欢它。有关更多详细信息,请查看 AutoHotkey.chm,在内容选项卡中,导航至:Kheyboard Control >> Send/SendRaw...

不要在 {LButton}{...} 之间放置空格,否则它们会被插入到编辑器中(逗号后面的空格似乎没问题)。

它可能会变成这样(没有测试过)。

!LButton::
Send, {LButton}{CTRLDOWN}{LEFT}{CTRLUP}{LEFT}{CTRLDOWN}{SHIFTDOWN}{RIGHT}{RIGHT}{SHIFTUP}{CTRLUP}
return

结束编辑

我终于在

的帮助下做到了
  • 自动热键(谷歌搜索)。
  • npp 宏

宏:

  • 在开始录制宏之前:单击 php 变量内部,使闪烁的光标位于其中(例如:$php_varia|ble
  • 现在点击录制宏
  • 现在按下:Ctrl+left,left(no ctrl),ctrl+shift+right,ctrl+shift+right;这将选择整个 php 变量/单词,包括 '$'
  • 停止宏录制,然后:“保存当前录制的宏”。为其分配一个键盘快捷键(我分配了 Ctrl + Alt + Shift + B)

自动热键脚本:

; alt + click translated to Click followed by Ctrl Shift Alt B
!LButton::
Send, {LButton}{CTRLDOWN}{SHIFTDOWN}{ALTDOWN}b{ALTUP}{SHIFTUP}{CTRLUP}
return

现在,当您 Alt + 单击 NPP 中的 php 变量时,它将选择所有变量,包括“$”符号。

我还有通过 Ctrl + LMouseBtn / Ctrl + Shift + LMouseButton / Ctrl + RMouseButton 进行复制/剪切/粘贴的脚本:

^RButton::
Send, {CTRLDOWN}v{CTRLUP}
return

^LButton::
Send, {CTRLDOWN}c{CTRLUP}
return

^+LButton::
Send, {CTRLDOWN}x{CTRLUP}
return

; the plus sign means the Shift key, etc
; see 'Keyboard control' >> 'Hotkeys and Hotstrings' in the Autohotkey help.chm

【讨论】:

    【解决方案3】:

    我了解您的问题,但遗憾的是,Notepad++ 无法设置此行为。

    您可以在美元符号和变量名称之间单击。然后,只要美元符号前没有特殊字符(例如[$var]),您就会抓取整个变量。

    【讨论】:

    • 确实有效。但这不是我希望的解决方案,谢谢。
    • 是的,我知道,对不起。但我对此无能为力。
    • @MichielPater 为什么在 Np++ 中这是不可能的?
    • 这在 5.9.6.2 (unicode) 中不起作用...我刚刚进行了更新并且该行为被破坏了!如果要更新,请小心
    【解决方案4】:

    我创建了一个写入$ 的宏,然后将其粘贴到剪贴板中,然后为该宏分配了一个快捷方式 ctr+alt+v.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 2012-12-24
      • 1970-01-01
      • 2016-01-13
      相关资源
      最近更新 更多