Можно ли использовать только клавиши со стрелками, чтобы развернуть узел дерева в проводнике пакетов в Eclipse в Linux?

59

При использовании Eclipse я просматриваю дерево проводника пакета с помощью стрелок клавиатуры.

В Windows я могу развернуть смятый node, нажав клавишу . В Linux мне нужно нажать Shift + . Есть ли способ перенастроить его так, чтобы Shift не требовался?

  • 0
    Это действительно не вопрос Затмения. Eclipse использует собственные виджеты ОС, такие как древовидные элементы управления и поведение привязки клавиш, которое вы описываете, происходит из окон. Я добавляю тег Windows к вашему вопросу.
  • 1
    @ Konstantin справедливо, но Linux или Ubuntu (если быть точным) не будут лучшим тегом, потому что именно здесь у меня проблема, а не в Windows.
Показать ещё 2 комментария
Теги:
keyboard-shortcuts
ide

5 ответов

110
Лучший ответ

Поместите это в свой ~/.gtkrc-2.0, и вам должно быть хорошо идти. Левая и правая линии делают запрошенное изменение, остальные - мои личные дополнения, чтобы сделать эффект дерева более похожим на vim. Надеюсь, что это поможет!

binding "gtk-binding-tree-view" {
    bind "j"        { "move-cursor" (display-lines, 1) }
    bind "k"        { "move-cursor" (display-lines, -1) }
    bind "h"        { "expand-collapse-cursor-row" (1,0,0) }
    bind "l"        { "expand-collapse-cursor-row" (1,1,0) }
    bind "o"        { "move-cursor" (pages, 1) }
    bind "u"        { "move-cursor" (pages, -1) }
    bind "g"        { "move-cursor" (buffer-ends, -1) }
    bind "y"        { "move-cursor" (buffer-ends, 1) }
    bind "p"        { "select-cursor-parent" () }
    bind "Left"     { "expand-collapse-cursor-row" (0,0,0) }
    bind "Right"    { "expand-collapse-cursor-row" (0,1,0) }
    bind "semicolon" { "expand-collapse-cursor-row" (0,1,1) }
    bind "slash"    { "start-interactive-search" () }
}
class "GtkTreeView" binding "gtk-binding-tree-view"

затем перезапустите Eclipse, чтобы применить новые привязки

  • 3
    Вау, спасибо! Я почти отказался от этого.
  • 0
    +1 за решение, которое просто работает!
Показать ещё 16 комментариев
27

Если кому-то интересно, как это сделать с GTK3 - просто откройте ~/.config/gtk-3.0/gtk.css и добавьте следующее:

@binding-set MyTreeViewBinding
{
    bind "Left"     { "expand-collapse-cursor-row" (0,0,0) };
    bind "Right"    { "expand-collapse-cursor-row" (0,1,0) };
}

GtkTreeView
{
  gtk-key-bindings: MyTreeViewBinding;
}
  • 1
    Это очень актуально, поскольку Eclipse недавно перешел на GTK 3 - в то время как все версии 4.x могут использовать GTK 3, устанавливая переменные среды, Mars по умолчанию перешел на GTK 3.
  • 0
    +1000! Спасибо! Это именно то, что нужно сделать, и то, что я искал довольно давно. Вы сделали мою жизнь намного проще !!!! (Linux Mint 17.2, Eclipse 4.5, STS 3.7.0)
Показать ещё 4 комментария
13

Моя версия для GTK3, которая ведет себя более естественным образом. Добавьте в ~/.config/gtk-3.0/gtk.css следующее:

@binding-set MyTreeViewBinding
{
    bind "Left"     { "select-cursor-parent" ()
                      "expand-collapse-cursor-row" (0,0,0) };
    bind "Right"    { "expand-collapse-cursor-row" (0,1,0) };
}

GtkTreeView
{
    gtk-key-bindings: MyTreeViewBinding;
}
  • 0
    Предложение, ответ будет более полезным, если вы явно описали, как это ведет себя по-разному.
  • 0
    И это также работает для GTK2, mutatis mutandis.
Показать ещё 1 комментарий
12

Ответ, предоставленный Эндрю, правильный. Обратите внимание, что в более новых версиях Ubuntu нет файла ~/.gtkrc-2.0, поэтому вы можете либо его создать, либо отредактировать gtkrc текущей темы, которая хранится в

/usr/share/themes/your_theme/gtk-2.0/gtkrc

  • 4
    Поскольку я недавно переключился на Linux Mint (Cinnamon), я попытался выяснить, как восстановить этот полезный трюк, поскольку папка your_theme не содержит файла gtk *. Ответ на этот файл: /usr/share/themes/Default/gtk-2.0-key/gtkrc
  • 0
    Спасибо, - это только сработало на моем Linux Mint Mate 16 (Петра)
2

Навигация виджета Tree управляется подклассом инструментария виджета - GTK. SWT/Eclipse не контролирует его. Если какая-либо такая конфигурация требуется для изменения короткого замыкания, то она должна быть сделана с самой стороны GTK.

  • 0
    Спасибо, что имеет смысл. Однако в Nautilus я могу расширять узлы с помощью клавиш со стрелками без смещения. Я посмотрел в Системе -> Настройки -> Сочетания клавиш, но ничего там не вижу.
  • 1
    Причина, по-видимому, заключается в том, что в GTK TreeView может иметь несколько столбцов и перемещаться влево / вправо между столбцами, чтобы их нельзя было использовать для развертывания / свертывания узла: mail.gnome.org/archives/gtk-devel-list/2004- Март / msg00223.html (и да, это очень старая почта)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню