在 Atom 编辑器中:如何在使用箭头键在树中导航时保持在侧边栏焦点内
In Atom Editor: How to remain inside sidebar focus while navigating through tree using arrowskeys
我可以使用 ctrl-\ (Linux/Windows) 打开 TreeView 并获得焦点。此时我可以使用键盘上的箭头键四处导航,但只有按下 enter 键并失去焦点,我才能看到所选的文件。
有没有办法保持专注于 TreeView 并启用箭头键导航,并且在导航每个新文件时,编辑器将自动切换到该选项卡或打开一个新选项卡并打开该文件?
功能与 synced-sidebar Package 类似,只是方向相反,即,您将使用箭头键导航 TreeView,而选项卡视图将发生变化。
您可以将以下代码添加到您的 init.coffee
文件中:
atom.commands.add '.tree-view', 'tree-view:preview', ->
for panel in atom.workspace.getLeftPanels()
if panel.item.constructor.name == "TreeView"
entry = panel.item.selectedEntry()
if entry.classList[0] == "directory"
entry.toggleExpansion()
return
else
atom.workspace.open(entry.getPath(), pending: true, activatePane: false)
return
之后,您可以通过向 keymap.cson
文件添加新的键盘映射来设置要执行的代码,如下所示:
'.tree-view':
'right': 'tree-view:preview'
使用向右箭头将在树视图中打开文件和目录,而无需将焦点移至编辑器。我建议您在准备好编辑文件后使用 enter 键切换焦点。
用于切换打开和关闭侧边栏树视图 CTRL+\.
用于在边栏和编辑器页面周围移动焦点 ALT+\.
在 Atom 上测试 GNU/Linux。
如果我的回答与您的问题无关,我深表歉意。
不幸的是, 似乎不起作用;它在按下右箭头时调用,但似乎没有执行任何操作。
对于最终在这里寻找解决方案的其他人,ThomasChef a long-opened github issue with a working answer。
将此放入您的 init.coffee:(注意空格...)
atom.commands.add '.tree-view', 'custom:expand-item-down': ->
fs = require 'fs'
item = atom.workspace.getActivePaneItem()
atom.commands.dispatch(item.element, 'core:move-down')
if fs.lstatSync(item.selectedPath).isDirectory()
return
else
item.openSelectedEntry(pending: true, activatePane: false)
return
atom.commands.add '.tree-view', 'custom:expand-item-up': ->
fs = require 'fs'
item = atom.workspace.getActivePaneItem()
atom.commands.dispatch(item.element, 'core:move-up')
if fs.lstatSync(item.selectedPath).isDirectory()
return
else
item.openSelectedEntry(pending: true, activatePane: false)
return
并将其放入您的 keymap.cson:
'.tree-view':
'down': 'custom:expand-item-down',
'up': 'custom:expand-item-up'
我可以使用 ctrl-\ (Linux/Windows) 打开 TreeView 并获得焦点。此时我可以使用键盘上的箭头键四处导航,但只有按下 enter 键并失去焦点,我才能看到所选的文件。
有没有办法保持专注于 TreeView 并启用箭头键导航,并且在导航每个新文件时,编辑器将自动切换到该选项卡或打开一个新选项卡并打开该文件?
功能与 synced-sidebar Package 类似,只是方向相反,即,您将使用箭头键导航 TreeView,而选项卡视图将发生变化。
您可以将以下代码添加到您的 init.coffee
文件中:
atom.commands.add '.tree-view', 'tree-view:preview', ->
for panel in atom.workspace.getLeftPanels()
if panel.item.constructor.name == "TreeView"
entry = panel.item.selectedEntry()
if entry.classList[0] == "directory"
entry.toggleExpansion()
return
else
atom.workspace.open(entry.getPath(), pending: true, activatePane: false)
return
之后,您可以通过向 keymap.cson
文件添加新的键盘映射来设置要执行的代码,如下所示:
'.tree-view':
'right': 'tree-view:preview'
使用向右箭头将在树视图中打开文件和目录,而无需将焦点移至编辑器。我建议您在准备好编辑文件后使用 enter 键切换焦点。
用于切换打开和关闭侧边栏树视图 CTRL+\.
用于在边栏和编辑器页面周围移动焦点 ALT+\.
在 Atom 上测试 GNU/Linux。
如果我的回答与您的问题无关,我深表歉意。
不幸的是,
对于最终在这里寻找解决方案的其他人,ThomasChef a long-opened github issue with a working answer。
将此放入您的 init.coffee:(注意空格...)
atom.commands.add '.tree-view', 'custom:expand-item-down': ->
fs = require 'fs'
item = atom.workspace.getActivePaneItem()
atom.commands.dispatch(item.element, 'core:move-down')
if fs.lstatSync(item.selectedPath).isDirectory()
return
else
item.openSelectedEntry(pending: true, activatePane: false)
return
atom.commands.add '.tree-view', 'custom:expand-item-up': ->
fs = require 'fs'
item = atom.workspace.getActivePaneItem()
atom.commands.dispatch(item.element, 'core:move-up')
if fs.lstatSync(item.selectedPath).isDirectory()
return
else
item.openSelectedEntry(pending: true, activatePane: false)
return
并将其放入您的 keymap.cson:
'.tree-view':
'down': 'custom:expand-item-down',
'up': 'custom:expand-item-up'