gtk-key-theme Emacs: czym jest naciśnięcie klawisza w przypadku zaznaczenia wszystkiego?


22

Wolę naciśnięcia klawiszy emacsa, ale wydaje się, że select-all nie jest częścią słownictwa emacsa, a przynajmniej motywem gtk dla emacsa. Mw nie działa, aby skopiować wybrany region.

  1. Jaka jest kombinacja klawiszy dla zaznaczania wszystkiego?
  2. Gdzie jest kluczowa mapa wiążąca dla tego tematu?

Dzięki, Steve

Odpowiedzi:


22

Nie jest wiążący dla „Zaznacz wszystko” w GTK prosta:C-/

Jest zdefiniowany jako ogólny sygnał GtkTextView, a nie konkretnie część motywu klucza emacs. Ale działa z tym dobrze. Jest zdefiniowany jako alternatywa dla C-a. Podczas gdy ten drugi zostaje ponownie zinterpretowany przez motyw emacs, C-/pozostaje ważny dla „Select all”.


Świetna odpowiedź. Dlaczego nie miał jeszcze żadnych pozytywnych opinii?
Rörd

7

Nie ma jednego skrótu, aby to zrobić bezpośrednio.

Możesz przejść do końca tekstu za pomocą Ctrl- ei usunąć linię Ctrl- u. To jednak działa tylko zGtkEntry jednowierszowym polem wejściowym.

Jeśli musisz zaznaczyć wszystko w GtkTextViewwieloliniowym sterowaniu podobnym do edytora, możesz zrobić uciążliwe Ctrl- Homea następnie Ctrl+ Shift-End , co przy mojej 63-klawiszowej klawiaturze jest prawie niemożliwe.

Jeśli, z dobrego powodu wydajności edycji lub ograniczeń klawiatur urządzeń mobilnych, Homei Endsą poza zasięgiem, będziesz musiał się obejść. Wybranie opcji „Zaznacz wszystko” z menu „Edycja” jest złym pomysłem, ponieważ odwzorowuje na Alt- e- aw Firefox, Alt- e- tw Gedit, Alt- e- , jak nautilus. Ta niekonsekwencja przewyższa cel paska menu aktywowanego klawiszem Alt i żaden system operacyjny, nawet Windows, nie jest tak niespójny. Nawet menu po kliknięciu prawym przyciskiem myszy nie ma stałego skrótu do „Wybierz wszystko” - zwykle jest, ale może byćs w OpenOffice (nawet z integracją gnome), w każdym oprogramowaniu inny klucz, i w niektórych programach nie ma opcji „Wybierz wszystko” w menu edycji, np. chromu, aw niektórych programach nie ma nawet samego menu edycji, nawet ukrytego, z którego można by wywołać Alt-eat od aplikacji do aplikacji. Wezwanie do naprawy błędów w każdym oprogramowaniu może być wykonane tylko w przypadku meta-projektu, takiego jak GNOME, ale znajomość samego GNOME spowodowała niektóre z tych problemów (usunięcie menu edycji w „nautilus” jest decyzją GNOME 3) naprawdę nie opuściło masz wielką nadzieję.

Na marginesie, Ctrl- Hometo jedyny skrót do przejścia na początek całego tekstu, nawet jeśli może to zakłócić pracę przy wpisywaniu na urządzeniach mobilnych z małą klawiaturą.

Odpowiedź kończy się tutaj. Dla ciekawskich umysłów mam dodatkowe informacje:


Doświadczony użytkownik emacsa spróbuje Ctrl- x- h: autentycznie emacs rzeczywiście, ale tryb emacs gtk3 nie rozumie żadnej sekwencji klawiszy sterujących. W rzeczywistości zdefiniowano tylko garść skrótów emacs - zajrzyj na/usr/share/themes/Emacs/gtk-3.0/gtk-keys.css ; na naklejce jest wystarczająco dużo miejsca, aby zapisać wszystkie obsługiwane skróty emacs.

Aby pogorszyć sytuację, trudno jest w tym celu przenieść klawisz skrótu. Jak wiesz, Ctrl- ajest pobierany przez emacsa. Ale nawet Hispanophones, największa grupa nieanglojęzyczna (z wyłączeniem chińskiego, ponieważ używamy ideografów), która jest używana do wybierania wszystkiego za pomocą Ctrl- e, również uznałaby ten skrót klawiszowy za emacsa. Wykluczając e, w lewej połowie klawiatury QWERTY nie ma już żadnego klawisza bez dobrze przyjętego celu. Tłumacz Google przyjmuje klawisz SHIFT, gdy jest naciśnięty sam, jako „zaznacz wszystko”, ale inne oprogramowanie ani inne produkty Google nie są zgodne z tym ustawieniem.

Aby opróżnić linię, użyj Ctrl- u. Ma to tę zaletę, że nie zastępuje WYBORU X (tego, który szarpniesz środkowym przyciskiem myszy). Jest to unikalne ustawienie tylko w trybie emacs gtk3: w prawdziwych emacsach nic nie robi samodzielnie; w readline (bash, mysql itp.) ma usuwać wszystko od kursora do początku linii, podczas gdy jego odpowiednik Ctrl- kusuwa wszystko od kursora do końca linii.

Niektórzy mogą sugerować pozostawienie znaku gdzieś do losowego wyboru za pomocą klawiatury. Możesz także znaleźć Ctrl- SPACEjest w trybie emacsa skonfigurowanym do ustawiania kotwicy w tekście. Pomimo konfliktu z wieloma innymi programami (w szczególności metodami wprowadzania ideogramów i automatycznym uzupełnianiem w niektórych innych programach do edycji), nie ma żadnego klawisza skrótu, aby skorzystać z ustawionej kotwicy.


Ubuntu oficjalnie nie obsługuje trybu edycji emacsa ani żadnej innej konfiguracji interfejsu użytkownika, której nie można wykonać za pomocą interfejsu użytkownika. Zgłoszenia błędów dotyczące takich potrzeb są oznaczone jako priorytetowe. Z tego powodu uważam, że najlepiej zadać takie pytanie miejscom generycznym dla Linuksa, np. Superużytkownikowi.


2

Powiązania emacs są określone w /usr/share/themes/Emacs/gtk-2.0-key/gtkrc Możesz także dodać powiązania w ~ / .config / gtk-3.0 / gtk.css

Wybierz wszystko byłoby coś takiego:

bind "<ctrl>h" { "move-cursor" (buffer-ends, -1, 0)
                 "move-cursor" (buffer-ends,  1, 1) };

Nie znalazłem jednak sposobu na powiązanie go z Cx h.


2

Zobacz istniejące powiązanie klucza

W przypadku aplikacji GTK3 możesz wyświetlić powiązania motywu klucza Emacs GTK - albo lokalnie, prawdopodobnie w /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css) - lub w repozytorium git GTK na GitHub (niekoniecznie równym twojemu plikowi lokalnemu, ponieważ jego dystrybucja mogła go zmodyfikować) .

Czytając ten plik, musisz być świadomy znaczenia widgetów

(Spójrz na zdjęcie u góry każdej połączonej witryny).

Dodanie powiązania klucza do zaznaczenia wszystkich

select-alldla GtkTreeViewiGtkTextView

Dla GtkTreeViewi GtkTextViewwidżetów występuje sygnał o nazwie select-all. Musisz przekazać mu argument, 1aby zaznaczył wszystko, a nie odznaczył.

Edytuj ~/.config/gtk-3.0/gtk.cssi dodaj coś takiego:

@binding-set my-text-and-tree-view-bindings
{
    bind "<alt>a"
    {
    "select-all" (1)
    };
}

textview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

treeview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

GtkEntry

Bo GtkEntrynie ma select-allsygnału. Zamiast tego możesz użyć sekwencji dwóch move-cursorsygnałów oznaczających tekst.

Ponownie edytuj ~/.config/gtk-3.0/gtk.cssi dodaj coś takiego:

@binding-set my-entry-bindings
{
    bind "<alt>a"
    {
    "move-cursor" (paragraph-ends, -1, 0)
    "move-cursor" (paragraph-ends,  1, 1)
    };
}

entry {
  -gtk-key-bindings: my-entry-bindings;
}

Firefox

Nawiasem mówiąc, w Firefoksie Alt- adomyślnie wybiera dla mnie wszystko bez konfiguracji (używając motywu klucza Emacs GTK).


1

Jeśli chcesz zaznaczyć cały tekst w regionie, wolę zdefiniować proste Makro. Naciśnij klawisz F3, aby rozpocząć pisanie makra. Następnie wpisz

Esc - <          // goes to beginning of document
Ctrl - spacebar  // set mark
Esc - >          // selects all till end of document

Następnie użyj M -w do kopiowania (co zwykle robię do kopiowania ze zdalnych systemów uniksowych do lokalnego systemu Windows), a następnie naciśnij F4, aby zakończyć definiowanie makra.

Teraz skończyłeś definiować Makro, po prostu naciśnij F4 tyle razy, ile chcesz powtórzyć akcję.


Kluczowy motyw GTK Emacs nie jest taki sam jak sam Emacs. Prawie żadne z kluczowych przypisań w odpowiedzi nie działa (a jeśli tak naprawdę byłeś w samym Emacsie, możesz po prostu użyć Cx h zamiast makra.
Rörd

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.