Vscode: 允许自定义鼠标快捷方式

创建于 2016-02-18  ·  204评论  ·  资料来源: microsoft/vscode

一些用户希望不仅可以自定义纯键盘快捷键,还可以自定义鼠标+修饰键。 这些目前是硬编码的,例如alt +单击以添加选择。

有关更多上下文,请参见https://github.com/Microsoft/vscode/issues/3091

editor-core feature-request keybindings

最有用的评论

+1

我想为Peek Definition做shift+cmd+leftMouseButton ,对我来说是一个完美的组合。

所有204条评论

+1

我想为Peek Definition做shift+cmd+leftMouseButton ,对我来说是一个完美的组合。

+1

我发现由于当前的默认值/可配置性不足而引起的有趣的性能含义。 考虑与“窥视定义”功能关联的硬编码修饰符。 如果一个插件必须做一些工作来提供定义,即使用户无意获取它,VSCode也很有可能会向插件询问定义信息。 正如我在https://github.com/Microsoft/vscode-go/issues/257#issuecomment -198993769中所述:

例如,当光标停留在编辑器区域中时,按⌘会立即调用GoDefinitionProvider,即使将⌘立即用于其他命令(如复制,粘贴,打开命令面板等)的和弦中。

这意味着当用户按下非常通用的键而无意获取上下文悬停信息时,将发生对godef的调用。

使用vscode-go时,这意味着大量的外来能源消耗,这可以通过为“偷看定义”提供修饰键设置来几乎完全避免。 该功能不仅方便并且可以更好地与主机OS GUI集成,而且VSCode对于常规用法而言将具有更高的CPU效率。

+1 – Atom,Sublime和jsbin.com(大概也可能是其他)都允许通过⌘+ click(至少在Mac上)创建多个光标。 当切换到新的编辑器时,最好是学习尽可能少的新快捷方式。

我只是完全避免使用alt + click添加游标,直到可以自定义使Windows和Linux一致为止。 不想在以后发生变化时建立肌肉记忆。

@alexandrudima关于何时可以使用了在Linux上通过鼠标添加光标。 如果您提供高级方法,我可以尝试一下。

+1我刚刚发现了VS Code,我很喜欢它,但是作为Linux上的Sublime Text长期用户,我缺少ctrl + click功能。 希望能够自定义鼠标快捷方式。

来自#6853中的@ChristopherHaws

  • VSCode版本:1.1.1
  • 作业系统版本:Windows 10 Pro

在Visual Studio(完整版)中,我倾向于关闭Ctrl + LeftMouseClick转到定义功能。 我个人更喜欢让Ctrl + LeftMouseClick选择鼠标光标下的整个单词。

据我所知,鼠标事件目前无法配置,并且也无法用扩展覆盖(据我所知)。 拥有鼠标映射配置文件会非常好。 Sublime Text具有此功能(尽管它是某种隐藏的功能,不会通过UI公开)。 仅作为示例,我的崇高文本mousemap文件如下所示:

[
    {
        "button": "button1", "count": 1, "modifiers": ["ctrl"],
        "press_command": "drag_select",
        "press_args": {"by": "words"}
    }
]

+1用于自定义。
我想使用CTRL而不是alt进行多选。

我想指出的是,在Linux上不可能用鼠标添加光标,因为alt+click已经用于移动窗口(至少在KDE和XFCE上),因此alt+click行为根本不会到达代码编辑器。 因此,我还建议将默认绑定更改为与主要窗口管理器的组合键不冲突的内容。 Ctrl+Alt+click可以工作,

我想指出的是,在Linux上不可能用鼠标添加光标,因为alt + click已经用于移动窗口(至少在KDE和XFCE上),因此alt + click行为不会达到代码编辑器。 因此,我还建议将默认绑定更改为与主要窗口管理器的组合键不冲突的内容。 Ctrl + Alt +单击可能有效,

请不要更改默认值。 使用Alt来移动Windows是一个糟糕的默认设置,例如Inkscape对此也有问题。 Windows密钥更适合于此,因为它经常用于“窗口管理器”快捷方式,例如在Windows上。 此外,甚至名称也更有意义:“ Windows键”->“移动窗口”。 这也是GNOME的默认设置。

IIRC选择使用Alt作为默认选项也是一种解决方法,因为Windows密钥不是真正的“元”密钥。 上次检查时,我仍然无法映射Windows键来打开XFCE中的菜单并同时移动窗口。

@jhasse好吧,我认为所有窗口管理器的工作都应该使用windows键修饰符完成,这是一个很好的论据。 但是,“上次我检查我仍然无法映射Windows键来打开XFCE中的菜单并同时移动窗口”是什么意思? 您是否希望Windows键同时成为修饰符和非修饰符?

但是,“上次我检查我仍然无法映射Windows键来打开XFCE中的菜单并同时移动窗口”是什么意思? 您是否希望Windows键同时成为修饰符和非修饰符?

我想通过按Windows键(仅)来打开菜单,同时仍然能够与其绑定键组合并移动窗口。

但是,让我们不要陷入僵局。 这个问题仅与允许自定义(我认为)没有人反对。

好的,只要我们都同意,不能自定义鼠标快捷键是不好的,一切都很好。 我也许仍然会说,目前我根本不再使用VS代码,而这个问题与此有关。

有一种方法可以使用xfwm4-tweaks-settings覆盖窗口修饰符的alt + mouse。
screenshot_2016-10-21_09-30-43

但是@jhasse指向的是如果您已经拥有了应该发生的情况势必打开xfce菜单。 如果仅Windows键Super L具有任何键绑定,则一旦按下该键,则仅触发该事件,而没有其他动作。 当前xfce默认值没有绑定到Super L ,并且有ctrl+esc绑定到窗口菜单命令xfce4-popup-whiskermenu

我仍然认为应该有一种可配置的方式来直接解决vscode中的鼠标绑定问题。

现在,一种解决方法是将窗口管理器的辅助功能键从alt更改super如上图所示。

@anchepiece我不会更改我的窗口管理器设置,也不认为这几乎不能被视为适当的解决方法。 认为这是一种适当的解决方法,这是对多年来习惯使用此设置的所有人的侮辱。 我不会放弃我的系统快捷方式,只是因为愚蠢的文本编辑器与这些键冲突,我宁愿避免使用文本编辑器。

@ krux02完全同意。 当有人提出该建议时,我自己尝试了一下,但无法摆脱新的按键绑定的困扰。 将定制留给用户会更好。

这解决了我的问题。
gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier "<Super>"

我不确定何时添加此功能,但是我能够进行Ctrl +左键单击选择光标下的单词,而不是去定义。

[
    { "key": "ctrl+[mouse button]",            "command": "cursorWordLeft",
                                               "when": "editorTextFocus" },
]

@Christopher知道在哪里声明[mouse button]定义吗? 还是有机会知道鼠标中键的绑定是什么? 我想尝试将列选择设置为中键+拖动。

+1

+1请至少将“多个光标”映射到其他键映射,作为一种解决方法,直到解决了某些问题。 它于2月开放,大多数人可能只需要一种在Linux中创建多个游标的方法。

+1

请对此问题做出回应,而不要发布“ +1”。

它于2月开放,大多数人可能只需要一种在Linux中创建多个游标的方法。

在Linux上,某些DE(例如GNOME 3)可以使用多个游标。 对于其他解决方案,请参见https://github.com/Microsoft/vscode/issues/3130#issuecomment -255382002。

@jhasse我很抱歉重复一遍,但这是一个非常糟糕的解决方法,根本不能将其视为一个好的解决方案。 只能将其视为理论上可以在技术上使用多个游标的临时解决方案,而不能在实践中建议任何人使用。 我真的很抱歉以这种方式做出反应,这可能会很烦人:要么您是诚实的人,然后说“不在乎”,因为您认为没有足够的人会从工作中受益,或者您将其修复正确地。 但是不要引用这种解决方法,并假装它不是固定的。 我不需要为此产品付费,所以当您说您不在乎时,我会没事的,但是当您对自己说谎时,这确实不是问题,我会在意。

上次检查

@ krux02是的,一种解决方法只是一个临时解决方案。 只是想指出,说“多个游标在Linux中不起作用”是不正确的。 而是多个游标不适用于某些DE。
如果您在Windows上全局抓住Alt键,那么用鼠标添加多个光标也将无法正常工作。

@sharwell除了添加反应之外,订阅该问题该怎么办?

@jhasse订阅将通知放在此处的顶级类别中。 回复将其置于底部类别:

image

我没有研究过的任何解决方法,我真的希望它们能够解决。 我和Cinnamon一起使用Linux Mint Sarah。 老实说,最快的解决方法是回到我的原子设置。 我需要编写代码,而不用千篇一律地设置桌面设置。

我已经找到了解决此问题的替代方法(至少适用于Windows)。 您可以安装AutoHotKey并使用以下脚本,这些脚本将仅切换Ctrl+ClickAlt+Click

; Switches the Left-Control-Click and Alt-Control-Click shortcut for VS Code.
; Setting for allowing dynamic titles
SetTitleMatchMode, 2

#If WinActive(" - Visual Studio Code")
  ^LButton::Send !{Click}
  !LButton::Send ^{Click}
  Return
#If

我同意应该在VSCode中内置鼠标快捷方式,我也每天都依赖它们。 单击带有链接定义的单词时,我发现的解决方案不起作用。

+1(对于来自崇高/原子的人,并希望在添加多个光标时使用cmd + click或cmd + drag来拖动光标)

+1,太棒了!!!

+1错过了cmd +单击以升华新光标-不想使用选项+单击

+1,因此我可以将鼠标按钮3和4绑定到workbench.action.navigate *

@ChristopherHaws [mouse button]这些日子似乎不起作用。 该命令的确切语法是什么? https://github.com/Microsoft/vscode/issues/3130#issuecomment -263780725

@vferko似乎此解决方法已在某个时候删除。 我不确定什么时候。 = /

+1

无法重新绑定mouse + modifier控件对我来说是一个大难题,我既不能使用Vscode,也不能向尚未使用VStudio用户的人推荐vscode。 这是非常不幸的,因为我非常喜欢vscode的快速而扎实的感觉。 在我发现此问题之前,我已经完全销售了,并且愿意开始切换到vscode的过程。

为最基本的平台修改器重新映射肌肉记忆实在难以承受,在解决此问题之前,我将一直与Atom保持联系。 在Mac上:cmd单击可添加到不连续的选择; 按住Alt键并拖动选择项可复制该选择项; 否则,按住alt键可创建矩形选择。 注意:创建矩形选择时,默认设置是不从上一个插入点扩展选择,该功能应放在用户设置标志的后面。

感谢您迄今为止所做的所有工作,vscode非常好! 我将订阅此问题,并在成功解决后以快速的速度返回。

+1,我在Arch Linux(Openbox)中使用vscode,我不能使用鼠标导航功能(后退/前进),但是此功能在chrome和PCManFM文件管理器中正常工作。 我想也许按钮映射在vscode中是不同的。 因此,如果我可以重新映射按钮动作,手动更改其行为,那么我可以解决问题,那将是最好的。

我在Arch Linux(Openbox)中使用vscode,无法使用鼠标导航功能(后退/前进),但是此功能在chrome和PCManFM文件管理器中正常工作。 我想也许按钮映射在vscode中是不同的。 因此,如果我可以重新映射按钮动作,手动更改其行为,那将是最好的。

最好是开箱即用,不是吗?

请订阅此问题以帮助将其排入队列,谢谢

:+1:

我也真的很想重新绑定鼠标单击事件的选项...此选项-单击多个光标与我所有其他软件的冲突...

确实,如果仅将前进/后退鼠标按钮绑定到workbench.action.navigate ...是一个更简单的子问题,那么将其作为一项功能来开始将是很棒的

+1-用来控制点击选择单词,这对我来说正变得很烦人。

我也希望看到这一点。 我想在cmd + click上将“转到定义”替换为“转到类型定义”

另一个候选人能够自定义我们刚刚通过https://github.com/Microsoft/vscode/issues/4803引入的滑动手势

+1,因此我可以将鼠标按钮3和4绑定到workbench.action.navigate *

在此问题解决之前,我认为我不会选择使用VSCode。

dunno,如果这是相关的,但我真的想禁用ctrl +单击链接...当前,当您ctrl +单击html文件中的链接时,它将在您的标准浏览器中打开该链接...此“功能”是对于我来说,真的很痛苦,我一直想用ctrl + c复制链接,当我快速执行链接时,在点击链接将其选中之前,我已经按下了ctrl,然后弹出浏览器,悲剧开始了:(

+1在我的Mac上运行Linux VM,无法将鼠标快捷方式重新映射为更类似于VM外部的快捷方式

+1基本功能

我需要这个,去change.org? :喜悦:

使用Alt更改Kubuntu(16.04)的拖动窗口:
设置->系统设置->窗口管理->窗口行为->窗口操作->修改键->更改为“元”

使用cmd键添加多个选择现已在Mac上运行!

谢谢大家 !!!

eh @ ajoslin103实际上并非此问题的目的。

我们应该尝试找到一种自定义交互方式,而不是使用硬编码默认值。

例如,与大多数其他编辑器一样,cmd + click对Peek超级有用。

减少精神税,这就是我们应该通过键盘快捷键争取的目标!

尽管我在精神上完全同意您的观点,但这个奇异的问题是唯一远离vsCode的事情,在这么多卫星中-而且花了很长时间才找到问题,并被锁定在链条底部的问题中(门上标着:提防豹!)

我同意,自定义鼠标+键交互的方法非常好,我仍然对选择扩展行为感到沮丧。

但是至少我终于来了,慢慢地在扩展和选项的树林中寻觅着自己的方式,试图回到我以前的编辑器所经历的[几乎]“无思想的编辑”中。

请原谅我的视野

这是怎么回事?
我们什么时候可以期待该功能的发布?
我想将ctrl + maj + mouse之类的快捷方式更改为alt + mouse来进行块选择!

+1,确实要摆脱“ Ctrl + Click =>转到定义”绑定。

我想摆脱ctrl,也请转到定义,然后使用它来选择整个单词。 我经常在vs中使用此功能,并且每天都会在vs代码中使用它。

怎么还没出来...?

@lopugit这是一个开源项目,请随时为它贡献力量。

作为一个自己为一系列项目做贡献的人,当人们发布诸如“为什么不在图书馆吗?”之类的信息时,这根本没有帮助。 “为什么不存在?这是必需的!”,等等。

提供针对根本问题的建设性反馈以及+1,将有助于推动开发。

没资格,源代码已打开,拔出键盘并在紧急情况下提交PR。

作为记录,我全力支持此功能,只是看到人们需要免费软件的功能而感到恼火。

@oshalygin

抱歉,我听起来很抱歉,现在是早上7点,我整夜都在忙于自己的项目,我不知道这是开源的,我认为这是一个Microsoft项目吗?

我的评论仅来自jeez,ctrl + click的角度,而不是可编辑的快捷方式? feel感觉?

我正在为开放源代码社区做一些事情,我只是想在此功能中添加我的想法,每个评论都可以看作是很好的论述。

爱德克,我太累了,平安;)

@lopugit好吧,既然我们在GitHub上,是的,这是开源的。 😅

@Tyriar我注意到,据您所知,这是被积压的,是否有分支机构开始有人在添加“ Mouse”绑定作为自定义选项? 似乎该功能的讨论已经进行了一段时间,因此我假设它是一个相当复杂的更改。

没有分支机构AFAIK。 在这方面有一点动静。 editor.multiCursorModifier设置允许您交换多光标并遵循定义/链接修饰符。 没有用于鼠标绑定的类似于keybinding.json的文件,尽管我想此解决方案看起来像。 我认为这主要是因为@alexandrudima释放了具有许多竞争优先级的人。

我想将Mouse 4 + 5(侧面按钮)用于“向后导航” +“向前导航”。 已经可以在浏览器和其他IDE中使用。 因此,请添加鼠标快捷键=)

+1

每个人都读过此功能要求吗???
+1

严重的是,请在键盘快捷键中添加对鼠标按钮的支持!

现在就要2年了! 为什么还没有此功能! 请允许我们在按键绑定中使用鼠标按钮

我想知道添加一个临时更改以允许在Linux中进行列选择是否容易,例如Ctrl + Alt + click(仅遵循krux02的建议)除了Alt + click之外还执行了框/列选择,这被阻止了由Linux窗口管理器? 如果在某个时候添加了鼠标按键自定义功能,则可以删除此临时更改,但是与此同时,它可以减轻我在Linux上使用VS Code时遇到的最大麻烦。

我们应该等待多长时间才能使用此BASIC功能? 另一年? 这是CORE BASIC COMMON功能,例如ENTER或DELETE?
哦,天哪,这是怎么回事……人们将飞往火星,我们在争取鼠标键盘快捷键。 所有其他编辑器均具有此功能。 但是这个新的酷孩子正在后面...

我同意,这是一个非常基本的功能,我不知道发生了什么...
我们需要这个功能

你们知道您正在使用一个完全免费的工具,您可以为此做出贡献吗? 我认为社区中没有任何人反对具有此“基本功能”的公关📄

@Thargarius @DoCode

如果我没记错的话,这个问题是电子引起的,而不是VS
代码库本身。 因此,修复程序需要修补Electron源代码
方法= P

2017年12月4日,星期一,上午10:49 Oleg Shalygin [email protected]
写道:

你们意识到您正在使用一个完全免费的工具,您可以
对正确的贡献? 我认为社区中没有任何人反对
带有这个“基本特征”的公关

@Thargarius https://github.com/thargarius @DoCode
https://github.com/docode

-
您收到此邮件是因为您发表了评论。
直接回复此电子邮件,在GitHub上查看
https://github.com/Microsoft/vscode/issues/3130#issuecomment-349064344
或使线程静音
https://github.com/notifications/unsubscribe-auth/AD2MVQ9h6MIa7CdtLZcXTrvt5XxYn1-9ks5s9D6ygaJpZM4HdSg8

我不是一个完美的Atom / Electron开发人员。
这里的任何人,谁可以解决或开始解决此问题?

我认为是Atom吊坠。

+1

我想按Mouse2Click(鼠标中键/滚轮)导航到声明而不是Ctrl-Mouse1Click

我想按Mouse2Click(鼠标中键/滚轮)导航到声明而不是Ctrl-Mouse1Click

单击鼠标中键以打开方法或变量的定义的功能很好,这是我在GameMaker IDE中习惯的。

可以选择禁用鼠标中键双击粘贴功能。

如果VSCode具有宏功能,则可以通过宏添加此功能。

请转到问题#4490并对其进行投票(单击大拇指按钮)并添加支持!

https://github.com/Microsoft/vscode/issues/4490

我想在按下ctrl时使用我的ThinkPad上的跟踪点进行滚动(例如中键点击仿真,ubnutu)

是否可以使用Shift + Command和鼠标左键单击来代替Command +鼠标左键单击,或者我们需要首先提供此功能?

我认为这将是一个不错的功能,我想绑定ctrl +鼠标轮以在时间上向前和向后滚动

我想这就是我想要的...

我真的只希望能够使用鼠标上的“后退”和“前进”按钮分别相当于键盘快捷键操作“后退”和“前进”。 现在看来我无法将鼠标按钮分配给这些按钮。 我什至会满足于硬编码的解决方案,这样我就可以跳过我的代码!

@nerael ,完全同意。 我已通过绑定鼠标按钮以发出在VSCode中执行“ Go Back”和“ Go Forward”动作的键盘快捷键来解决此问题。 在Logitech的软件中很容易做到这一点,但是即使设备制造商不支持,也可以通过Windows / OSX来做到这一点。

请注意,这只是一个个人解决方法,并且软件级别的支持将是理想的选择,但这可以同时进行。

@jsonMartin

谢谢...这使我找到了解决方法。 我这样估计
https://thecrumb.com/2015/06/03/xbindkeys/index.html

编辑-这也是有关配置xbindkeys的非常有用的教程
https://blog.hanschen.org/2009/10/13/mouse-shortcuts-with-xbindkeys/

我的〜/ .xbindkeysrc文件是:

# VSCODE MOUSE BINDINGS FOR CODE JUMPING
# 'Go Back'
"xte 'keydown Control_L' 'keydown Alt_L' 'key minus' 'keyup Alt_L' 'keyup Control_L'" 
b:8
# 'Go Forward'
"xte 'keydown Control_L' 'keydown Alt_L' 'key equal' 'keyup Alt_L' 'keyup Control_L'" 
b:9

这是因为我的“前进”已绑定到ctrl + alt + equals。 b:8和b:9是前进和后退的鼠标按键的键代码!

编辑-如果不清楚,在撰写本文时,我将使用最新的Ubuntu LTS,而不是Windows或OSX

我只希望能够禁用Visual Studio Code中的鼠标按钮,因为我使用其中之一来进行按键通话就无法执行任何操作。

那么,为什么这里似乎没有答案或进展呢? (我没有看到合作者的任何评论,对不起,如果不是这样的话)

这是电子的上游问题吗? 它只是路线图上的一项重要功能吗?

+1

@ mhh1422只是一个友好的提醒,如果您在github问题上发帖,所有订阅的人都会收到一封电子邮件。

如果您没有什么建设性的补充,但想提高知名度,请使用反应。

对于我收到此消息的所有人,❤️

@philiiiiiipp我想知道这需要多长时间

+1

+1

@lopugit @ Nemesis19 @DeadByElpy

请在顶部的原始问题上添加+1。

您可以通过单击此页面右上方的“订阅”按钮来获得通知,而无需评论。

当您想将go back命令与鼠标中的back按钮绑定在一起时,这可能很有用,此快捷方式已在Web浏览器中广泛使用,并且我相信Visual Studio也具有它。

使用“ Alt +向上/向下滚动”来递增/递减数字或遍历枚举或类似的东西会非常好。

该死,是的,我们需要能够在按键绑定中使用鼠标按钮。.这将解决很多问题,例如能够替换{
“ key”:“ ctrl + pagedown”,
“ command”:“ workbench.action.nextEditor”
}
按住Ctrl +鼠标滚轮等...

...完成了鼠标滚轮选项卡的切换..

请继续,已经到时间了。

希望这项任务仍在讨论中。 我想将SHIFT-ALT-LeftMouse“列选择”组合修改为ALT-LeftMouse。

由于工作原因,我从JetBrains产品切换,并尝试使VSCode尽可能适应我以前的工作流程。

我在任何突出显示的文本上使用了alt+leftclick来进入QuickFix菜单。 在其他编辑器中,将包括诸如拼写检查拼写错误,修复丢失的导入内容,简化代码等之类的东西。所有这些操作都隐藏在-现在非常庞大的-右键单击菜单下。

由于我由于残障而使用了滑鼠,因此变得比平时更困难,因为现在我必须做些奇怪的动作才能达到相同的动作。

能够自定义此类内容将极大地提高我的舒适度。

我希望有人能解决这个问题。

节日快乐!

@silentwarrior如果你使用的是Windows,作为一种解决方法是在vscode实施之前,你可以使用类似的AutoHotkey

由于参考发现是最新更新中对vscode的介绍。 大多数人习惯按Ctrl +单击使用它。 我尝试相同,但不支持。
如果鼠标快捷方式即将推出,将不胜感激。

能够在keybindings.json中本地混合鼠标和键盘键将非常有用。
另一个非常有用的事情是能够将多个组合绑定到单个命令,我想后者相当容易。

@ mortinger91已经可以将多个键绑定到同一命令,我不知道您的意思。

@ mortinger91已经可以将多个键绑定到同一命令,我不知道您的意思。

是吗? 我尚未对此进行广泛的研究,但似乎找不到任何方法
<br i="9"/> {<br i="10"/> "key": "key1","key2",<br i="11"/> "command": "do something"<br i="12"/> }<br i="13"/>
或在settings.json中使用的类似语法,除非您是指某种宏或使用我不知道的扩展名。

@ mortinger91您必须使用多个键来完成它,就像这样:

[
   {
      "key": "combination1",
      "command": "command1"
   },
   {
      "key": "combination2",
      "command": "command1"
   }
]

@ mortinger91您必须使用多个键来完成它,就像这样:

[
   {
      "key": "combination1",
      "command": "command1"
   },
   {
      "key": "combination2",
      "command": "command1"
   }
]

是的,谢谢。 我已经尝试过了,但是命令错误,确认可以正常工作。
仍然需要鼠标键绑定

此问题(https://github.com/Microsoft/vscode/issues/5402)先前已在该线程中引用,但此处有人问此问题是否由于Electron的上游问题而没有解决?我可以看到,此问题与该问题无关,因为Atom具有允许此行为的扩展名。

如果可以使用Atom中的插件来复制此行为,则可以在vscode中实现吗?

这里有人考虑过将Atom扩展移植到vscode吗?

我试图将“ Go back”绑定到鼠标3按钮,最终设置了更好的触摸工具来在VSCode中按下鼠标按钮时调用键盘快捷键。 同时,这可能是一个有用的解决方法! 👍

我意识到滚动很慢,正在寻找可以更改它的设置,我注意到“快速滚动灵敏度”,而“ Alt”实际上是滚动速度的乘数。 在这种特殊情况下,我寻找了将“ Alt”更改为“ Super”的方法,但可惜没有找到任何东西。 :(

我试图将“ Go back”绑定到鼠标3按钮,最终设置了更好的触摸工具来在VSCode中按下鼠标按钮时调用键盘快捷键。 同时,这可能是一个有用的解决方法! 👍

我该怎么做? 我想防止鼠标按钮4在Visual Studio Code中调用“返回”,但是我仍然希望能够在其他地方使用它。

@Tyriar这个网站已经开放了3年,我们如何帮助推动这一

@ george-cz我想将Go back绑定到鼠标3按钮,我该怎么做?

@stereokai根据讲话,方法是在这里到顶部。

@ foxx1337您的意思是对问题的评论与👍反应吗?

它有像几乎500竖起大拇指..该死多少票@egamma它需要..

为什么不聘请对工作有线索的人来改善工作流程。

经过仔细研究后,我认为这是问题所在:

  • 做到这一点的“正确”方法是从铬/电子中获取事件。 我不相信他们被暴露了。 (请注意,这是Electron中长期以来要求的功能,它们基本上会耸耸肩并指向技术堆栈中的下一层)。
  • 接下来的方法是编写本机npm程序包,这些程序包可以“临时”接收这些事件并将其发布。 这可以在所有3个OS上完成(以非常不同的方式),并且属于“令人讨厌的黑客”类别。
  • 真正的表现最糟糕的是:扩展无法做到这一点,因为代码需要在VSCode主应用程序的“进程中”运行; 而MS不太可能接受(imo)和实现此功能的补丁程序(请参见上面的“不愉快的内容”)。

那么...可以扩展吗? 在Windows中可以,但是需要注入DLL-在这一点上,您最好安装一些第三方操作系统特定的实用程序,该实用程序可以将额外的鼠标按钮映射到按键。

因此,我可能会误认为上述任何/全部,但这是我对情况的猜测。

哦,我的上帝。 从Windows的角度来看,这是一个简单的功能,但是却非常复杂...

自线程启动以来已经有3年了,而vs代码在整个过程中似乎几乎没有任何功能/人体工程学更改。

这里的绝大多数评论充其量都是非建设性的。 回购所有者可以考虑锁定此问题吗?

@KevinMGranger错误的态度不会使此问题的必要性或相关性无效。

@stereokai我知道,这是我最想要的VS Code之一。 但是这里的讨论并没有真正帮助实现该功能。 锁定并不意味着WONTFIX。

@KevinMGranger不幸的是,锁定此问题也可以防止:+1:对第一篇文章的反应,从而使对该问题感兴趣的真实人数未知(尽管鉴于当前的反应数目,也许不需要这样做,但是我还是更喜欢它继续打开)。

如果您使用的是Mint,则只需禁用Alt单击即可转到“系统设置”,“窗口”,“行为”,然后更改“用于移动和调整窗口大小的特殊键”。 这样alt + click可以在vscode中使用。

作为记录, @ ncesar的帖子适用于使用肉桂的任何人(例如,Fedora上的Cinnamon)

+1,按住alt右键单击以复制相对路径真棒! (将其拖放到当前文件中以插入relpath的可绑定能力会更好,但这是另一回事)

+1,按住Ctrl键并右键单击即可查看定义,这将很方便阅读源代码!

在Windows中,我使用ctrl + click跟随链接,使用alt + click进行光标添加
但是在Linux中,我必须将其更改为alt,但是alt + click不能跟随链接。

我希望能够在Mac上将鼠标中键映射为“粘贴在鼠标光标所在的位置”。 我已经习惯了我的linux boxen的这种行为。

对于开发人员,您能否将此问题标记为错误或类似问题。 这些标记使您觉得解决此问题完全是可选的,但是此问题是主要的兼容性问题,这使VSCode的重要功能对于某些平台完全不可用。

我认为这是在重复线程中的某处提到的。 为了记录,我也会在这里说。

我偶然发现了这个线程,因为我想知道是否应该购买带有更多按钮的鼠标,以便可以在Code中绑定内容。 例如,在调试时将3个侧面按钮映射为单步执行和单步执行/单步执行。 您正在使用鼠标来浏览调试侧栏中的内容,因此使用它来推进执行将非常方便。

因此,除了重新绑定左/右键之外,重新绑定其他鼠标输入也将很有价值。

+1。 确实需要此功能才能支持ctrl + click进行单词选择。 无论有多少人认为Ctrl + Click都不是定义。 单单使用此功能就是即使我愿意也无法使用VSCode的原因。

从性能的角度来看,我想将“中间点击”绑定到“转到定义”。 Webstorm默认情况下具有此功能,它使代码导航变得非常容易。

当我指性能时,指开发人员性能

从性能的角度来看,我想将“中间点击”绑定到“转到定义”。 Webstorm默认情况下具有此功能,它使代码导航变得非常容易。

只要这是一个设置,就可以了。 在我的系统上,它将干扰粘贴机制。

我认为在这一点上进一步深入讨论是没有意义的。 开发人员通过无知非常清楚地表明他们不在乎此问题。

@ krux02您总是可以用代码而不是snark来贡献。 或者干脆不发表评论。

如果您的用户表现得像您一样,您是否会被激励从事FOSS项目? 保持文明,问题追踪器另一端的那些“卑鄙的人”就是像你我一样的人,他们也有感觉。

@jrial ,我从事免费开源软件的工作,同时我还参与其他项目,您可以通过访问我的github个人资料进行验证。 是的,我也必须处理恼人的用户。 虽然这不只是贪吃蛇。 如果您查看我过去的评论,我会在过去提供积极的反馈。 但是经过开发商超过3年的沉默,并没有改善。 他们至少可以道歉并解释为什么很难解决这个问题,但是不,根本没有任何反应。 我唯一的结论是,开发人员根本不在乎。

不,我也没有为解决此问题做出贡献。 原因1是,由于此类问题,我没有使用VSCode。

去年我曾简要地修复过它,但无法弄清楚如何从源代码本地构建和启动VS Code,以便我可以对其进行调试和测试。 我实际上只将VS Code用于一些小型项目,因此我不得不进行这样的更改的时间是有限的。 在同一条船上找到一个或多个其他对此问题感兴趣的人,我不会感到惊讶。

我们想按Ctrl键单击选择单词而不是转到定义,但是此功能不存在!

完全的鼠标集成将非常棒。 Ctrl / Shift / Alt加上最常见的鼠标按钮(右键/左键单击,上/下滚动,中键/右/左键和常规鼠标按钮4/5 /前进/后退)的任意组合都将是惊人的。

自开票以来已近4年。 还没到地平线吗?

关于#71318是否存在回归,因为在MacOS上的1.​​39上后退/前进似乎不起作用,也可以在Linux上进行检查。

他们应该将其作为2020年新年决议! 已经快四年了,仍然不支持单击键绑定。

因此,我认为我无法捍卫VSCODE或激励人们使用它:/

我真的很想以更适当的方式使用鼠标中键,例如,打开手册,但不要粘贴文本。

GA启用此功能时是否有任何更新?

我真的很想以更适当的方式使用鼠标中键,例如,打开手册,但不要粘贴文本。

我不介意,只要它仍然是可选的,并且没有标准快捷键在可以粘贴文本的任何地方使用鼠标中键。 这样就不会疏远* nix用户,他们将中键鼠标等同于“来自辅助缓冲区的粘贴”,并且在使用数年后将其指定给肌肉记忆。

我认为这个问题实际上包括两个部分:

  1. 添加更多有关快捷方式的自定义功能,例如,允许为诸如单词选择之类的操作定义自定义快捷方式。
  2. 允许“键盘快捷键”不仅是键盘快捷键,还可以是鼠标快捷键(即仅用于演示),而不是分配F5来启动调试命令,而可以为此分配Ctrl + Shift +鼠标中键。

如果这两个问题得到解决,我们将彻底解决此问题。
我想解决这个问题,但是:
我可以解决第二个问题。 但首先,我需要您想要的更多快捷方式列表。 并且因为我认为这是一个单独的问题,所以我现在仅为第二个问题做出贡献。 我认为我们应该分开这个问题。

就像我妥协一样,我已经实现了第二部分-现在在我的分支中,您可以将鼠标按钮与命令相关联,包括修饰键和和弦。

在提交“拉取请求”之前,希望您向我发送您希望能够与鼠标关联的常见操作的列表。

这个过程实际上很简单:对于每个动作,将其从嵌入代码中提取出来作为一个单独的命令,(如果需要)添加新的上下文,以标记何时启用此命令,最后为其定义默认的快捷方式,而不是前一个,而是使用鼠标。

我将等待一个星期左右,然后提交收集了命令的PR。 我不想在本周之后收到更多动作(我也需要一些时间自己做些事情),但是要花一些时间来实施已经收集的动作。 希望我很快会结束-我在你眼中看到希望👀

但是,当然,您可以提及更多的操作-只要PR被接受,调整新命令相对容易。 而且您总是可以自己贡献自己-一如既往地欢迎您的贡献!

这是我目前拥有的,邀请您添加自己的。 在此问题中发表评论。

  • 转到定义(Ctrl +单击)
  • 选择整个词(双击)

关于“选择整个单词”的注释:我没有检查它(希望很快就会出现),但是对我来说,将其复制为命令看起来很容易,甚至至关重要,例如,提供一个可以做边的命令并可以按此处的要求分配给Ctrl + Click,例如,我认为很难提取甚至是不可能

非常感谢!

我要补充:

  • 窥视定义(例如,添加为Shift-Ctrl-Click)
  • 窥视引用(如果光标位于变量定义上,则Ctrl-Click已经可以解决问题)

@benoitmasson是否存在“

  • 中间按钮=“粘贴剪贴板”,或者最好是“将光标移至该位置并粘贴剪贴板”
  • 鼠标左键拖移文本=“选择并将文本复制到剪贴板”

@benoitmasson经过研究,我发现您所谓的“偷看参考”快捷方式并不真实; 在声明行调用该命令时,“转到定义”命令将执行您描述的操作。 如果这是一个问题,则与命令有关-我将不处理该问题。

似乎您听不懂:我不会更改默认的键盘绑定。 我认为,即使微软也不会批准这样的公关。 我要做的是提取命令操作而不是内置行为,因此您可以轻松地使用它们创建自己的鼠标快捷方式,

好的,我不确定我的意思是正确的,但是我会尽力澄清我的意见。 可能并非所有内容都与您相关,因此请在此处选择所需的内容:

  • Peek定义和Peek引用已经是VS代码命令(请参阅https://code.visualstudio.com/Docs/editor/editingevolved#_peek),所以也许您不想专门处理它们(据我了解,您的PR将允许从键盘键切换到鼠标键,这很棒。

  • 更确切地说,我希望能够将鼠标绑定到“转到定义”和“偷看”定义(两者都是命令,从1.43版开始,鼠标都可以使用,但是您必须选择一个,我想只需使用键盘修饰符+单击即可完成这两项操作

  • 最后,当按住Ctrl键并单击定义时,“ Peek引用”命令已经具有鼠标绑定(我在这里不需要任何东西,只是为了让您知道)

如果这超出了范围,请不要打扰,并对噪音感到抱歉...

对于速查参考,我认为由于ctrl / cmd-“左键单击”已经绑定到该按钮(但已硬编码),因此应该更改它,以便ctrl / cmd-“左键单击”是此新PR的默认绑定但可以更改。

我想这对于当前具有硬编码的鼠标快捷方式的任何现有映射都是正确的。

我个人想对鼠标上的其他按钮进行重新编程。 按钮,例如后退,前进,水平滚动和鼠标中键。

@AndreasBackx单击中间按钮-我已经实现了此功能。
后退,前进-我不知道这些按钮。 你能解释一下吗?
水平滚动-如果您的意思是使用鼠标滚轮滚动,则无法使用我的实现对其进行自定义,并且我也不打算实现此功能,因为与其他功能不同,鼠标滚轮要求键盘绑定服务与命令之间的持续通信被执行,即不仅是在完成滚动时我们应该调用命令,而且还应该在中间。 恕我直言,引入此功能需要更改API才能进行此类通信(实际上,新的命令类型会影响注册和调用它的新方法,甚至是新协议-不太好),我不想输入此主题。 这也是我未实现常规鼠标拖动的原因-也就是说,我的PR允许自定义在编辑器文本或选择上的拖动,但不能像在文件浏览器中将文件拖动到文件夹中时那样进行常规拖动,因为这种拖动方式将再次需要持续的通信才能向用户提供视觉反馈(在我的示例中,就是拖动的文件名)。 但是,如果社区会就这些功能提供积极的反馈,那么我同意重新考虑我的决定,但是要在单独的问题中与Microsoft员工进行讨论(由于API更改)。

@ ChayimFriedman2前进和后退按钮是某些鼠标上的附加按钮,通常在拇指下。 这些显示为额外的按钮。 除了这些按钮之外,有些鼠标还带有一个额外的滚轮。 有些按钮甚至更多。

滚动不需要任何与普通鼠标按钮不同的操作,因为OS会将滚动轮的每次不连续单击视为按钮按下。 滚轮只增加了2个额外的按钮,当滚轮转动时会发出信号。 例如,在Linux下,向下滚动一个凹口时, xev报告以下内容:

ButtonPress event, serial 38, synthetic NO, window 0x9800001,
    root 0x255, subw 0x0, time 1417460611, (103,113), root:(1285,747),
    state 0x10, button 5, same_screen YES

ButtonRelease event, serial 38, synthetic NO, window 0x9800001,
    root 0x255, subw 0x0, time 1417460611, (103,113), root:(1285,747),
    state 0x1010, button 5, same_screen YES

而向上滚动看起来像这样:

ButtonPress event, serial 38, synthetic NO, window 0x9800001,
    root 0x255, subw 0x0, time 1417468067, (103,113), root:(1285,747),
    state 0x10, button 4, same_screen YES

ButtonRelease event, serial 38, synthetic NO, window 0x9800001,
    root 0x255, subw 0x0, time 1417468067, (103,113), root:(1285,747),
    state 0x810, button 4, same_screen YES

与常规鼠标左键单击比较:

ButtonPress event, serial 38, synthetic NO, window 0x9800001,
    root 0x255, subw 0x0, time 1417598246, (135,115), root:(1317,749),
    state 0x10, button 1, same_screen YES

ButtonRelease event, serial 38, synthetic NO, window 0x9800001,
    root 0x255, subw 0x0, time 1417598297, (135,115), root:(1317,749),
    state 0x110, button 1, same_screen YES

@jrial您能告诉我前进和后退的MouseEvent.button代码是什么吗?

@jrial如果可以的话,您说的还有更多-请在浏览器中向我发送名称/代码列表。

@jrial但是我没有实施车轮的计划。 我也担心这种功能的性能影响-滚动是一种快速的操作,与单击鼠标和按键相反。 这意味着我们需要多次触发该命令。

@jrial您能告诉我前进和后退的MouseEvent.button代码是什么吗?

我不是JS专家,但快速搜索似乎表明您通过WheelEvent访问了wheel。 参见https://www.w3.org/TR/DOM-Level-3-Events/#events -wheelevents

关于后退和前进按钮,请参见https://www.javascripture.com/MouseEventhttps://www.w3.org/TR/DOM-Level-3-Events/#dom -mouseevent-button

@jrial您能告诉我前进和后退的MouseEvent.button代码是什么吗?

检查一下,它提到后退和前进按钮: https :

拥有鼠标快捷键,转到实现将是一个很好的选择。 https://code.visualstudio.com/Docs/editor/editingevolved#_go-实施

显然,理想的情况是是否可以将鼠标快捷方式配置为使用任何按钮和/或组合键。 如果IMO无法做到这一点,那么如果快捷方式需要某些并非总是可用的鼠标按钮,那将是一种耻辱。

我认为,而且在我所有的大学中,默认的Visual Studio 20xx行为(Ctrl + Click)将会是一个巨大的改进:选择光标下方的基础单词,并在向前或向后移动时也选择下一个单词。

我想再次提及:记住:我不会更改当前行为

是否需要与默认设置不同的快捷方式? 当然! 创建您自己的键绑定扩展名(如果需要)
共享给他人,否则只需更改您的keybindinbgs.json或使用键盘绑定编辑器)。

由于我的工作,使用鼠标快捷方式将成为可能,但是默认的快捷方式将不会更改。 开发人员不喜欢更改。

我认为,给定请求的标题,遵循此要求的大多数人只是想要修改单击行为的功能,并提供了在其设置中的行为将被赋予该功能的示例。

我知道那是我的帖子/请求所期望的。

-
艾伦·霍伊尔- [email protected] - alanhoyle.com


来自:Chayim Refael Friedman [email protected]
发送:2020年3月21日,星期六1:56:19 PM
至:microsoft / vscode [email protected]
抄送:艾伦·霍伊尔[email protected] ; 发表评论[email protected]
主题:Re:[microsoft / vscode]允许自定义鼠标快捷方式(#3130)

我想再次提及:记住:我不会更改当前的行为。

是否需要与默认设置不同的快捷方式? 当然! 创建您自己的键绑定扩展名(如果需要)
共享给他人,否则只需更改您的keybindinbgs.json或使用键盘绑定编辑器)。

由于我的工作,使用鼠标快捷方式将成为可能,但是默认的快捷方式将不会更改。 开发人员不喜欢更改。

-
您收到此邮件是因为您发表了评论。
直接回复此电子邮件,在GitHub https://github.com/microsoft/vscode/issues/3130#issuecomment-602079576上查看或取消订阅https://github.com/notifications/unsubscribe-auth/AACGX4ZLQHZA2FMDCUYI3DTRIT5UHANCNFSM4B3VFA6A

@alanhoyle您对我说什么? (或者您只想提及)

我遇到了一个小问题-如果有人可以帮助我,我会很高兴。

在开始时,我已经看到我无法将命令绑定到鼠标左键或鼠标右键。

为什么? 因为我们无法区分单击和双击。 请参阅https://stackoverflow.com/questions/5497073/how-to-differentiate-single-click-event-and-double-click-event。 右键是最有问题的按钮:它将触发上下文菜单。 而且左侧也可以作用于按钮等。

就像相关的SO答案(我自己也想到过)中所建议的那样,您可以使用超时。 但这不能根据双击的操作系统超时进行自定义。

我留下了两个选择:

  • 为右按钮触发dblclick事件时,隐藏上下文菜单。 这种方法过于棘手和丑陋(IMHO),它不能处理像用左按钮按下按钮那样的情况-您不能取消单击处理程序执行的操作!
  • 像我想的那样使用超时。 这种方法有两个问题:

    • 超时时间必须与操作系统设置匹配。 由于我们位于Node.js中并且可以与操作系统进行通信(与运行浏览器的js相反),因此这是可解决的,但是我不知道一个Electron API会为我们带来所请求的超时。 当然,我们可以在npm中搜索此类模块,甚至可以编写自己的模块,但是该模块必须是本机模块(即用C ++编写),并且只有在与微软会员。

    • 这将对UX造成伤害,因为他将不得不等待一会儿上下文菜单(不会花费太多时间,最多一秒钟,但这几乎不会损害生产力)。

同时(可能仍然如此),当用户尝试使用这些快捷方式时,我只是弹出一条错误消息。 这很有用。

我想开始讨论:您认为,执行选择快捷方式(快捷方式使用鼠标选择)时,执行命令(例如“复制”)时,我们应该怎么做,为什么?

  • 恢复先前选择的内容(我认为这不是用户希望看到的:他们选择文本,将其突出显示,并且一旦完成选择,该选择将跳到另一个位置...)
  • 保留所选的文本。
  • 将光标移动到选择端。
  • 保持光标处于选择开始位置(与#1相同,因为选择光标时位于末尾)。

我想听听你的意见😃

@ ChayimFriedman2我不会做任何额外的事情。 不可能定义命令列表吗? 因此,如果需要,可以先发出复制命令,然后清除选择。

我第二次使ctrl + click执行“转到实现”的能力。 我实际上以这个线程结束,因为我想要这个选项。 弹出一个菜单,询问用户是否要在同一文件中查看import语句,或者实际的实现始终是我的不赞成。 VScode中的1个烦恼。

@kasvtv现在我正在使用Ctrl+Alt+z来执行,因为我可以用一只手来做(如果我没记错的话,默认值是Ctrl+F12 ),但是我仍然希望使用Ctrl+clickCtrl+Alt+click方法。

拜托,拜托,拜托,请像Visual Studio一样,提供一种可以使用[ctrl] [click]来选择整个单词的方法。 我不在乎你怎么做,但是请拜托,随便吧。 如果您曾经使用过它,那么您就会知道它使程序员的生活变得多么容易。 像我这样的程序员非常喜欢它,因为添加新功能时,我们通常从模板开始,然后出于我们的目的更改细节。 为此,我们最终在函数中多次将单词更改为其他单词。 按下[ctrl] [click]确实非常快捷:将剪贴板[ctrl] [click],[ctrl] C ...填满,然后更改单词,只是[ctrl] [click],[ctrl] V. 之所以如此出色,是因为您一直按住[ctrl]键。 如此有用和自然,如果您多次使用它,很快就会变得依赖它,而当它被拿走时,您的生产率就会下降。

请。

就像Visual Studio一样,仅提供一种可以使用[ctrl] [click]来选择整个单词的方法。

只需双击单词。 这种肌肉记忆将在更多情况下为您服务,因为它或多或少是跨平台标准化的选择整个单词的方式。 显然,Visual Studio团队选择了一个有点奇怪的约定,结果您现在养成了一种非常规的习惯。 答案不是要改变一切以使其与异常值相似。 答案是拥抱适用于所有地方的标准。

另外:这是IDE的问题跟踪器。 由软件开发人员编写并为软件开发人员编写。 我认为您无需编写中篇小说来解释为什么全字选择可能对“像我这样的程序员”有用。 我们知道... ;)

只需双击单词。 这种肌肉记忆将在更多情况下为您服务,因为它或多或少是跨平台标准化的选择整个单词的方式。 显然,Visual Studio团队选择了一个有点奇怪的约定,结果您现在养成了一种非常规的习惯。 答案不是要改变一切以使其与异常值相似。 答案是拥抱适用于所有地方的标准。

我没有这种肌肉记忆,但是认为改变这种事情的力量非常重要。 我很难相信有很多人已经编程了一段时间,却没有养成一种或两种非标准的习惯-特别是我对矩形选择的崇高风格alt + drag的了解。 在使用vscode一年多之后,我已经打破了肌肉记忆,但是仍然错过了功能。

我的意思不是说我的问题更重要或类似的事情(尽管它没有可在触控板上使用的良好“标准”替代方法),但是存在一个标准化的形式并不是一个很好的论据不支持某事。

那就是说这可能是个话题,所以最好不要进一步敲鼓...

只需双击单词。 这种肌肉记忆将在更多情况下为您服务,因为它或多或少是跨平台标准化的选择整个单词的方式。

🤨

Ctrl + Click是一种手势,用于选择单词而不是字符,而不是单个单词。 双击速度慢得多,您将做不到。

选择一个单词会更好,但那只是故事的一部分。 (我怕不能只允许重新映射快捷键不客气,因为手势是更复杂)

这是Visual Studio处理事物的方式:

  • Shift向下开始键盘选择
  • Mouse Button 1向下开始鼠标选择/如果Shift向下,则将选择设置为从编辑光标的上一个位置开始。
  • Ctrl向下+选择⇒将选择行为逐字修改(用于键盘选择的动态切换)
  • Alt向下+选择⇒将选择行为修改为列/框(不能通过释放键来禁用,但是可以为键盘选择动态地启用)

它的要点是, CtrlAlt (和possibily其它/未来修饰符)充当的大多是一致的方式选择行为调节剂,不论选择的原点(鼠标或键盘)的。
在某些特定情况下,鼠标和键盘选择模式之间显然存在差异,但是除非您特别寻找它,否则您不会注意到。

但是,与在键盘和鼠标选择之间的一致性时(深)破坏VS Code的方式进行比较:

  • 列选择将是Shift + Alt + Mouse Button 1用鼠标,但是变成Shift + Ctrl + Alt + Arrow Keys用键盘。 就是这样一个额外的键。 ♂‍♂️
  • 用键盘选择单词将是Shift + Ctrl + Arrow Keys ,然后……哦,太可惜了,我们忘记了鼠标! 😐

似乎在VS Code的文本选择实现中只有特殊情况。 我不知道我们怎么会这样,但这真的很糟糕。

我真的希望可以定制选择修饰键来解决此问题,但是鉴于所有相关问题的年代久远,我担心这种情况永远不会发生……😟

@GoldenCrystal VS Code实现了终端和文本区域的通用范式,其中单击拖动是通过字形,双击拖动是字,并且作为奖励,单击三次拖动是行。

在罗马时,请享受当地的传统,请注意,非Code VS是很奇怪的。

就像Visual Studio一样,仅提供一种可以使用[ctrl] [click]来选择整个单词的方法。

只需双击单词。 这种肌肉记忆将在更多情况下为您服务,因为它或多或少是跨平台标准化的选择整个单词的方式。 显然,Visual Studio团队选择了一个有点奇怪的约定,结果您现在养成了一种非常规的习惯。 答案不是要改变一切以使其与异常值相似。 答案是拥抱适用于所有地方的标准。

另外:这是IDE的问题跟踪器。 由软件开发人员编写并为软件开发人员编写。 我认为您无需编写中篇小说来解释为什么全字选择可能对“像我这样的程序员”有用。 我们知道... ;)

整天尝试双击事物……您会发现很多时候鼠标或手指没有做正确的事情,而是单击而不是双击。 然后,按住Ctrl键并单击以在其中打开一个新窗口,并查看您必须关闭无意中打开的窗口多少次。 一次单击即可轻松实现100倍,并且不易出错。

我从事软件开发已经35年了。 如果真的很难在其中放置一个选项让我们指定是否要这种行为或“偷看定义”,那么我断言该程序的设计不是很好。 为什么要强迫我们去做一些不太理想,更容易出错的事情? 只是吓坏了,不要再争论了。 Microsoft为Visual Studio和SQL Server Management Studio都做了。 我们喜欢它,因为它是如此自然和高效。

我快要说“ F VS Code”并编写自己的代码或寻找其他支持此代码的编辑器了。 那是多么有价值。

也许您看不到为什么它对我们如此有价值,因为也许您看不到它是我们每天进行的活动不可或缺的一部分。 许多程序员整天要做的最常见的事情之一是选择一个单词,将其复制,然后在其他地方用它替换另一个单词。 使用[ctrl] [click]选择单词,这非常有效..按住[ctrl]键,只需单击[click],c复制该单词,然后单击[click] v替换目标单词。 如果没有[ctrl] [click]来选择单词,则必须至少双击两次,一次选择源单词,然后每次选择目标单词。 双击是非常容易出错的操作。 设置配置设置来代替“窥视定义”来做到这一点真的难吗? 您已经具有将其关闭的设置。 它能有多难?

至少有一种方法可以简单地禁用ctrl-click动作,以免跳到定义吗?

我第二次使ctrl + click执行“转到实现”的能力。 我实际上以这个线程结束,因为我想要这个选项。 弹出一个菜单,询问用户是否要在同一文件中查看import语句,或者实际的实现始终是我的不赞成。 VScode中的1个烦恼。

这个! 只需单击即可完成IMO“执行”,这是“定义”的逻辑扩展,例如在ReSharper中的工作方式-CTRL + ALT + LMB

在Visual Studio中仍然没有办法进行Ctrl +单击吗?

@thedrean您的意思是Visual Studio代码(VS代码)对吗? Visual Studio是完全不同的IDE https://visualstudio.microsoft.com

在Visual Studio中仍然没有办法进行Ctrl +单击吗?

还没

+1这需要昨天发生。 我在Google上搜索了如何删除默认的Ctrl + Click功能,因为这是VSCode上最令人沮丧的事情,非常令人失望。 正如@CCurl指出的那样,开发人员不仅每天都要这样做,而且每分钟都会这样做,并且Go To Definition默认值非常烦人。 我只想快速选择一些文本,在IDE中问得太多吗?

Microsoft为什么要有效地培训用户使用一组键盘快捷键(Visual Studio),然后似乎在开玩笑地改变了VSCode中的那些绑定? 在我看来,像是一个疯狂的用户体验部门。

另一个常见的是Ctrl + K + D来格式化内容-请给我们一个选择,以选择与Visual Studio紧密匹配的键盘绑定“模板”。

另一个! Ctrl +。 与Ctrl +如此接近,以至于您经常打错它并打开设置窗口。 烦死了

重要的是要记住,有很多VSCode的用户以前没有使用过Visual Studio。 虽然我可以理解来自那里的用户会期望使用相同的键盘和鼠标绑定,但是将功能限制为仅模仿Visual Studio绑定是短视的。

允许自定义是关键。 我想一旦允许自定义,可能会有各种各样的扩展:一个模仿Visual Studio鼠标绑定,一个可以模仿X / Unix / Linux通用绑定(例如“中间单击粘贴”),等等。已经有类似的扩展使用键盘绑定来模仿其他编辑器(Sublime,Emacs,VIM等)的功能相同,也可以使用鼠标绑定进行扩展。

不仅“从未使用过VS”,而且还“二手””。
即Ctrl + Click =窥视定义在Borland IDE上也很常见。

但最重要的是,我发现自己经常挥舞着鼠标以关闭当前打开的选项卡。 肌肉记忆力...

偶尔,我会在更改日志中看到一些不错的改进后尝试使用VS Code。 但是打到我的第一件事仍然是我自定义Alt + Click作为偷看定义。 然后我回到IntelliJ。 我认为许多其他人对于无法重新映射鼠标单击也会有相同的感觉。

Ctrl +单击以选择整个单词(并拖动以继续逐个单词选择)也是一项广泛的辅助功能。

它不仅更轻松,更舒适,而且更健康(或破坏更少)。

因此,我发现了一个(可能不完美,但仍然不完美)的变通方法,它使我可以通过一次按键选择/复制一个单词,然后用复制的最后一个单词替换另一个单词。 它使用VIM扩展名和自定义普通模式键绑定。

现在,我可以单击单词中的任意位置,然后按[复制整个单词。 然后,我可以单击另一个单词中的任意位置,然后按],以将该单词替换为我刚复制的单词。

这不是完美的,我仍然在学习编辑文件的VIM方式,但我我会喜欢它。 VIM非常强大。

image

另一个解决方法单击问题...从“ geddski”安装“ macros”扩展名。 然后将其放在您的settings.json文件中:

"macros": {
    "copyWord": [
        "cursorWordEndRight",
        "cursorWordStartLeft",
        "cursorWordEndRightSelect",
        "editor.action.clipboardCopyAction"
    ],
    "replaceWord": [
        "cursorWordEndRight",
        "cursorWordStartLeft",
        "cursorWordEndRightSelect",
        "editor.action.clipboardPasteAction"
    ]
}

然后将它们绑定到keybindings.json中所需的任何键上:

{
    "key": "F9",
    "command": "macros.copyWord",
    "when": "editorTextFocus"
},
{
    "key": "F10",
    "command": "macros.replaceWord",
    "when": "editorTextFocus"
}

现在,我可以单击F9,单击F10。 不完全相同点击,C,点击,V,但是非常接近。

支持! 甚至Visual Studio也可以通过“ Ctrl +鼠标滚动”来调整字体大小。

VS Code也可以进行鼠标缩放,我不知道为什么您不进行检查就提到THAT。

+1

是否有机会解决这个问题? 现在已经4岁了,已经有800多个投票……这是阻止我切换到VS Code的#1问题。 具体来说,我希望能够将Ctrl + Click从“转到定义”禁用/重新映射为“选择单词”,例如Visual Studio。 当我得到完整的鼠标配置请求时,我会为该设置提供一个简单的布尔配置,这是一个临时的解决方法。

发出https://github.com/microsoft/vscode/issues/71817#issuecomment -482754429指向此处,所以我想问:任何允许鼠标中键(PASTE)通过终端的方法?

我在具有bash终端的MasOS Catalina上,该终端在独立模式下可正常运行,但是在VSCode中嵌入时会忽略/不接收鼠标中键单击。

终端>集成:中点击行为
控制终端对中间点击的反应。
(下拉值:与右键单击行为相同,只要包含“粘贴”即可)

我只想单击中键粘贴,它在终端(例如Mac,各种Linux)上很常见,应该在VS Code中作为选项提供

我又投票了一次,以便在终端中选择文本时可以单击并粘贴并自动复制

@KrisPetkov选择时自动复制已经是一个选项
screenshot_2020-10-12_at_14 12 58

还请注意,在上面的设置中,您可以启用_right-click_粘贴功能,尽管它不是单击鼠标中键粘贴功能,但您可以同时使用它

任何进展?

ctrl + wheel->前后导航

我想实现鼠标中键进行定义,而不必按ctrl +单击或F12。

此页面是否有帮助?
0 / 5 - 0 等级