Stranica: 2/3.

Re: ponašanje kursora kod ctrl+left

PostPostano: 16 ožu 2016, 01:00
Postao/la gagiD
Rade u svakom normalnom shellu!

Re: ponašanje kursora kod ctrl+left

PostPostano: 17 ožu 2016, 04:10
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.

Re: ponašanje kursora kod ctrl+left

PostPostano: 03 svi 2016, 16:03
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. :)

Re: ponašanje kursora kod ctrl+right

PostPostano: 04 svi 2016, 14:59
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

Re: ponašanje kursora kod ctrl+right

PostPostano: 05 svi 2016, 18:49
Postao/la Smola
Ne znam kako je ovo završilo u Fedora dijelu!? Pričam o bashu i GTK.

Re: ponašanje kursora kod ctrl+right

PostPostano: 05 svi 2016, 19:06
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.

Re: ponašanje kursora kod ctrl+right

PostPostano: 05 svi 2016, 19:12
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. ;)

Re: ponašanje kursora kod ctrl+right

PostPostano: 05 svi 2016, 20:18
Postao/la calisto053
@Cooleech - nisam znao da si tako stilski osvješten :bleh

Re: ponašanje kursora kod ctrl+right

PostPostano: 06 svi 2016, 10:35
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.

Re: ponašanje kursora kod ctrl+right

PostPostano: 06 svi 2016, 16:48
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