[RIJEŠENO] ponašanje kursora kod ctrl+right

Teme vezane za GNOME grafičko okruženje.

Moderator/ica: Moderatori/ce

Avatar
gagiD
Postovi: 408
Pridružen/a: 15 lis 2013, 01:42
Spol: M
OS: Arch / Manjaro / #!

Re: ponašanje kursora kod ctrl+left

Post Postao/la gagiD »

Rade u svakom normalnom shellu!
Smola
Postovi: 92
Pridružen/a: 17 lis 2015, 01:40
Spol: M
OS: Fedora Gnome

Re: ponašanje kursora kod ctrl+left

Post Postao/la Smola »

Aha, to si htio reći. Nisam shvatio, sori. Uglavnom, i te komande se ponašaju na meni neželjeni način.
Smola
Postovi: 92
Pridružen/a: 17 lis 2015, 01:40
Spol: M
OS: Fedora Gnome

Re: ponašanje kursora kod ctrl+left

Post Postao/la Smola »

Parcijalno rješenje za Ctrl+Right slijedi...

Za bash (za zsh sam isto našao da može) treba bindati taj key na drugu funkciju. Birajte, ili bashrc ili inputrc.
U ~/.bashrc ide ovo:

Kod: Označi sve

bind '"\e[1;5C": vi-forward-word'
bind '"\e[5C": vi-forward-word'
bind '"\eOc": vi-forward-word'
U ~/.inputrc ide ovo:

Kod: Označi sve

$include /etc/inputrc
"\e[1;5C": vi-forward-word
"\e[5C": vi-forward-word
"\eOc": vi-forward-word
U editoru SublimeText v2 se može unijeti pod "Preferences/Key bindings - User" ovo:

Kod: Označi sve

[
{ "keys": ["ctrl+right"], "command": "move", "args": {"by": "words", "forward": true} }
]
Još da skužim za Eclipse i općenito GTK...
Ja sam početnik pa ako nešto urokate ne znam ništa. :)
Zadnja izmjena: Smola, dana/u 04 svi 2016, 15:00, ukupno mijenjano 1 put.
Smola
Postovi: 92
Pridružen/a: 17 lis 2015, 01:40
Spol: M
OS: Fedora Gnome

Re: ponašanje kursora kod ctrl+right

Post Postao/la Smola »

Za GTK je najbolje napraviti custom temu npr. "~/.themes/Vi" te unutra staviti dva direktorija , za GTK2 i GTK3 te sljedeće datoteke:

~/.themes/Vi/gtk-2.0-key/gtkrc

Kod: Označi sve

binding "vi-forward-word"
{
  bind "<Control>Right" { "move-cursor" (words, 1, 0) "move-cursor" (logical-positions, 1, 0) }
  bind "<Control><Shift>Right" { "move-cursor" (words, 1, 1) "move-cursor" (logical-positions, 1, 1) }
}

class "GtkEntry" binding "vi-forward-word"
class "GtkTextView" binding "vi-forward-word"
~/.themes/Vi/gtk-3.0/gtk-keys.css

Kod: Označi sve

@binding-set vi-forward-word
{
bind "<Control>Right" { "move-cursor" (words, 1, 0) "move-cursor" (logical-positions, 1, 0) };
bind "<Control><Shift>Right" { "move-cursor" (words, 1, 1) "move-cursor" (logical-positions, 1, 1) };
}

GtkEntry {
  gtk-key-bindings: vi-forward-word;
}

GtkTextView {
  gtk-key-bindings: vi-forward-word;
}
Nakon toga je potrebno otići u TweakTool i pod "Keyboard and Mouse" za "Key theme" selektirati novu temu "Vi". Nakon toga treba restartati UI (Alt+F2, "r").

Ovo radi i u aplikacijama koje koriste Java Swing. Na žalost, još mi ne radi u Eclipseovom editoru. :(

Relevantne poveznice:
http://vim.wikia.com/wiki/Vi_key_bindings_in_gtk
https://mail.gnome.org/archives/gtk-lis ... 00029.html
Smola
Postovi: 92
Pridružen/a: 17 lis 2015, 01:40
Spol: M
OS: Fedora Gnome

Re: ponašanje kursora kod ctrl+right

Post Postao/la Smola »

Ne znam kako je ovo završilo u Fedora dijelu!? Pričam o bashu i GTK.
Smola
Postovi: 92
Pridružen/a: 17 lis 2015, 01:40
Spol: M
OS: Fedora Gnome

Re: ponašanje kursora kod ctrl+right

Post Postao/la Smola »

Rješenje za Eclipse slijedi...

Problem je u SWT-u koji pokušava oponašati ponašanje platforme. Tamo postoji konstanta "MOVEMENT_WORD" uz koju ide komentar:

Kod: Označi sve

"The behavior of this constant depends on the platform and on the direction of the movement. For example, on Windows the stop is always at the start of the word. On GTK and Mac the stop is at the end of the word if the direction is next and at the start of the word if the direction is previous.
Konstanta se koristi u metodi org.eclipse.swt.graphics.TextLayout._getOffset(). Potrebno je:
1. Dekompajlirati tu klasu. U mom Eclipseu Mars 4.5.1 je klasa unutar org.eclipse.swt.gtk.linux.x86_64_3.104.1.v20150825-0743.jar.
2. Pronaći kod na liniji 1217 prema kodu iz Eclipsa 4.3 na ovom linku:
http://grepcode.com/file/repo1.maven.or ... .java#1217
3. Izmijeniti

Kod: Označi sve

if ((movement & SWT.MOVEMENT_WORD) != 0) {
	if (forward) {
		if (logAttr.is_word_end) found = true;
	} else {
		if (logAttr.is_word_start) found = true;
	}
}
u

Kod: Označi sve

if ((movement & SWT.MOVEMENT_WORD) != 0) {
	if (forward) {
		if (logAttr.is_word_start) found = true; // <------------ "is_word_start"
	} else {
		if (logAttr.is_word_start) found = true;
	}
}
4. Vratiti klasu u onaj JAR i restartati Eclipse.

Nisam previše testirao, a zasad radi.
Avatar
calisto053
Moderator
Postovi: 5812
Pridružen/a: 25 ožu 2012, 14:29
Spol: M
OS: Mint 17.3 Cimet
Lokacija: ~/kauč

Re: ponašanje kursora kod ctrl+right

Post Postao/la calisto053 »

Budući da tvoj problem nije strogo vezan uz Fedoru, već uz bash/Eclipse i općenito GTK, tema je premještena u podforum "Linux općenito". Svakako potvrdi rade li rješenja koja si naveo.


Edit by Cooleech:
Malo svjetilja slova, da se bolje vidi na tamnoj temi. ;)
Abzeenth je napisao/la:Dobro onda. Baš me briga. Krepajte od offtopica.
jurastublic je napisao/la:Ovaj thread me podsjeća na krepanu mačku. Treba to pokupit lopatom i zakopat. Onda dezinficirati lopatu. :-D
Avatar
calisto053
Moderator
Postovi: 5812
Pridružen/a: 25 ožu 2012, 14:29
Spol: M
OS: Mint 17.3 Cimet
Lokacija: ~/kauč

Re: ponašanje kursora kod ctrl+right

Post Postao/la calisto053 »

@Cooleech - nisam znao da si tako stilski osvješten :bleh
Abzeenth je napisao/la:Dobro onda. Baš me briga. Krepajte od offtopica.
jurastublic je napisao/la:Ovaj thread me podsjeća na krepanu mačku. Treba to pokupit lopatom i zakopat. Onda dezinficirati lopatu. :-D
Smola
Postovi: 92
Pridružen/a: 17 lis 2015, 01:40
Spol: M
OS: Fedora Gnome

Re: ponašanje kursora kod ctrl+right

Post Postao/la Smola »

Potvrđujem da radi bez greške na navedenoj okolini.
Još nekoliko napomena:
  • Klasa TexLayout je ima više-manje isti kod za verzije SWT-a koje se isporučuju s Eclipseom 4.3 do 4.5. Za ostale verzije nisam gledao i postoji mala šansa je da je logika potpuno drugačija.
  • Ako nekom zatreba pomoć nek mi se obrati. Ako treba gotov jar za Eclipse 4.5.1 mogu mu i to poslati. Možda budem radio istu stvar i za Eclipse Kepler (ne znam točnu verziju).
  • Ovom izmjenom se i selektiranje svodi na ono u Windowsima, tj. selekcija putem Ctrl+Shit+Right obuhvaća i razmak iza riječi.
  • Ova izmjena obuhvaća sve editore svih ekstenzija u Eclipseu.
  • Za kompajliranje klase trebate uključiti gorenavedeni jar u build-path te još i org.ecipse.swt_3.104.1.v20150825-0743.jar. Sve se može naći u direktoriju eclipse/plugins. Naravno, uzmite verzije koje ste našli tamo.
  • Za dekompajliranje sam koristio jd-gui, a možete koristiti i neki online dekompajler. Potebno je i ubaciti kod iz inner-klase StyleItem, ali ona je toliko jednostavna da je možete lako "kopipejstat". Sve možete provjeriti preko GrepCode stranica.
Avatar
Cooleech
Moderator
Postovi: 7028
Pridružen/a: 13 stu 2010, 21:12
Spol: M
OS: Arch Linux KDE
Lokacija: /hrvatska/solin/

Re: ponašanje kursora kod ctrl+right

Post Postao/la Cooleech »

calisto053 je napisao/la:@Cooleech - nisam znao da si tako stilski osvješten :bleh
Nisan moga pročitat štas napisa, pa et :-D
Vl@do je napisao/la:Arch imaš upravo zato da uštediš na vremenu. Nemaš nikakvih problema s instalacijama, kompajliranjem i ostalim. Imaš jednostavno funkcionalan i stabilan, uvijek najsvježiji OS, a osim toga je sexy i cool do neba.
I've seen some idiots back in my time, but you man... you're special!
Odgovori