2011-01-20 9 views
63

Quando si utilizza Eclipse, sfogliare l'albero di explorer del pacchetto usando le frecce della tastiera.È possibile utilizzare solo i tasti freccia per espandere il nodo dell'albero in Esplora pacchetti in Eclipse su Linux?

In Windows, è possibile espandere un nodo compresso premendo il tasto . In Linux ho bisogno di premere Shift + . C'è un modo per riconfigurarlo in modo che Shift non sia richiesto?

+0

Questo non è davvero una questione di Eclipse. Eclipse utilizza i widget del sistema operativo nativo, come i controlli ad albero e il comportamento delle chiavi che stai descrivendo provengono da Windows. Sto aggiungendo il tag windows alla tua domanda. –

+1

@Konstantin equo punto, ma non sarebbe linux o anche ubuntu (per essere precisi) essere un tag migliore in quanto è lì che sto avendo il problema, non in Windows. – Alb

+0

buon punto. scambiare tag di windows per linux. –

risposta

107

Inserisci questo nel tuo ~/.gtkrc-2.0 e dovresti essere a posto. Le linee Left e Right fanno la modifica richiesta, il resto sono solo le mie aggiunte personali per rendere la vista ad albero più vim-like. Spero possa aiutare!

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" 

quindi riavviare l'Eclipse per applicare nuove associazioni

+3

wow grazie! Avevo quasi rinunciato a questo. – Alb

+0

+1 per una soluzione che funziona! –

+4

Voglio abbracciarti così forte. Questo mi ha infastidito per mesi! – oschrenk

2

La navigazione del widget Albero è controllata dal sottointeso widget toolkit - GTK. SWT/Eclipse non ha alcun controllo su di esso. Se una qualsiasi configurazione è necessaria per modificare la scorciatoia, deve essere effettuata dal lato GTK stesso.

+0

Grazie Questo ha senso. In Nautilus, tuttavia, posso espandere i nodi con i tasti freccia senza maiusc. Ho guardato in Sistema -> Preferenze -> Tasti di scelta rapida, ma non vedo nulla su questo collegamento lì. – Alb

+1

La ragione sembra essere che in GTK un TreeView può avere più colonne e spostare a sinistra/destra tra le colonne in modo che non possano essere utilizzate per espandere/comprimere il nodo: http://mail.gnome.org/archives/gtk-devel -list/2004-March/msg00223.html (e sì, è una mail molto vecchia) –

12

La risposta fornita da Andrew è corretta. Si noti che nelle versioni più recenti di Ubuntu non esiste alcun file ~/.gtkrc-2.0, quindi è possibile crearlo o modificare il gtkrc del tema corrente, che viene memorizzato in

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

+4

Da quando sono passato di recente a Linux Mint (Cinnamon) ho cercato di capire come ripristinare questo utile trucco, dato che la cartella your_theme non lo fa non contiene alcun file gtk *. La risposta è questo file: /usr/share/themes/Default/gtk-2.0-key/gtkrc – Sebastiano

+0

Grazie, - questo solo lavorato sul mio Linux Mint 16 Mate (Petra) – geby

28

Se qualcuno si sta chiedendo come fare questo con GTK3 - è sufficiente aprire ~/.config/gtk-3.0/gtk.css e aggiungere quanto segue:

@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

Questo è molto rilevante come Eclipse recente spostato in GTK 3 - mentre tutte le versioni 4.x possono utilizzare GTK 3 impostando una variabile di ambiente, Mars si è spostato su GTK 3 per impostazione predefinita. – Guss

+0

+1000! Grazie! Questo è esattamente ciò che deve essere fatto e ciò che sto cercando da un po '. Mi hai reso la vita molto più facile !!!! (Linux Mint 17.2, Eclipse 4.5, STS 3.7.0) –

+1

Dai un'occhiata a http://stackoverflow.com/a/32529393/306047, IMHO è utile associare il tasto "Sinistra" a "select-cursor-parent" " anche. – snorbi

14

la mia versione per GTK3 che si comporta in modo più naturale. Aggiungere quanto segue al ~/.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

Suggerimento, la risposta sarebbe più utile se hai esplicitamente descritto come questo si comporta in modo diverso. – studgeek

+0

E questo funziona anche per GTK2, mutatis mutandis. –

Problemi correlati