gtk-key-theme Emacs: tổ hợp phím nào để chọn tất cả?


22

Tôi thích tổ hợp phím của emacs, nhưng select-all dường như không phải là một phần của từ vựng của emacs, hoặc ít nhất, chủ đề gtk-key cho emacs. Mw không hoạt động để sao chép vùng đã chọn.

  1. Tổ hợp phím cho chọn tất cả là gì?
  2. Đâu là một bản đồ ràng buộc quan trọng cho chủ đề này?

Cảm ơn, Steve

Câu trả lời:


22

một đơn giản bắt buộc đối với "Chọn tất cả" trong gtk:C-/

Nó được định nghĩa là tín hiệu GtkTextView chung và không phải là một phần cụ thể của chủ đề khóa emacs. Nhưng nó hoạt động tốt với nó. Nó được định nghĩa như là một thay thế cho C-a. Mặc dù cái sau được giải thích lại bởi chủ đề emacs C-/vẫn hợp lệ cho "Chọn tất cả".


Câu trả lời chính xác. Tại sao nó không có bất kỳ upvote nào?
Rörd

7

Không có một phím tắt duy nhất để làm như vậy trực tiếp.

Bạn có thể đi đến cuối văn bản với Ctrl- evà xóa một dòng Ctrl- u. Điều này, tuy nhiên chỉ hoạt động với GtkEntry, đó là, trường nhập một dòng.

Nếu bạn cần chọn tất cả mọi thứ trong một GtkTextView, điều khiển giống như trình soạn thảo nhiều dòng, bạn còn lại để thực hiện công việc khó khăn Ctrl- Hometiếp theo là Ctrl+ Shift- End, với bàn phím 63 phím của tôi gần như không thể.

Nếu, vì lý do chính đáng về hiệu quả chỉnh sửa hoặc giới hạn của bàn phím của thiết bị di động HomeEndnằm ngoài tầm với, bạn sẽ phải vượt qua. Chọn menu "Chọn tất cả" từ menu "Chỉnh sửa" là một ý tưởng tồi, bởi vì nó ánh xạ tới Alt- e- atrong firefox, Alt- e- ttrong gedit, Alt- e- strong OpenOffice (ngay cả với tích hợp gnome), trong mỗi phần mềm, một khóa khác nhau và trong một số phần mềm, không có "Chọn tất cả" trong Menu Chỉnh sửa, như crom và trong một số phần mềm, thậm chí không có Menu Chỉnh sửa, thậm chí không có một ẩn nào được gọi với Alt-e, giống như nautilus. Sự không nhất quán này đánh bại mục đích của thanh menu được kích hoạt Alt và không phải bất kỳ hệ điều hành nào, kể cả Windows cũng không nhất quán. Ngay cả menu chuột phải cũng không có phím tắt cố định cho "Chọn tất cả" - thường là anhưng có thể ttừ ứng dụng này sang ứng dụng khác. Yêu cầu sửa lỗi trong từng phần mềm riêng lẻ chỉ có thể được thực hiện với một dự án meta như Gnome, nhưng biết rằng chính Gnome đã tạo ra một số vấn đề này (loại bỏ Menu Chỉnh sửa trong 'nautilus' là quyết định của Gnome 3) thực sự không rời bỏ bạn hy vọng nhiều

Mặt khác, Ctrl- Homelà cách rút gọn duy nhất để di chuyển đến phần đầu của tất cả văn bản, thậm chí nó có thể làm gián đoạn công việc của bạn để nhập vào cho các thiết bị di động bàn phím nhỏ.

Câu trả lời kết thúc ở đây. Đối với những người tò mò tôi có thêm thông tin:


Người dùng emacs dày dạn sẽ cố gắng Ctrl- x- h: emacs đích thực, nhưng không có chuỗi khóa điều khiển nào được hiểu bởi chế độ emacs của gtk3. Trên thực tế, chỉ có một số phím tắt emacs được xác định - Hãy xem qua /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css; có đủ không gian trên nhãn dán để ghi lại tất cả các phím tắt emacs được hỗ trợ.

Để làm cho tình hình tồi tệ hơn nữa, thật khó để di chuyển một phím tắt cho mục đích này. Như bạn đã biết, Ctrl- ađược thực hiện bởi emacs. Nhưng ngay cả người gốc Tây Ban Nha, nhóm không nói tiếng Anh lớn nhất (tiếng Trung Quốc bị loại trừ vì chúng tôi sử dụng chữ tượng hình), người được sử dụng để chọn mọi thứ với Ctrl- e, cũng sẽ thấy rằng phím tắt được sử dụng bởi emacs. Không bao gồm e, không có bất kỳ phím nào còn lại ở nửa bên trái của bàn phím QWERTY mà không có mục đích đã được chấp nhận. Google Dịch lấy phím SHIFT, khi được nhấn một mình, dưới dạng 'chọn tất cả', nhưng không phải phần mềm nào khác cũng như các sản phẩm khác của Google tuân theo cài đặt.

Để làm trống một dòng, sử dụng Ctrl- u. Điều này có lợi thế là không ghi đè X CHỌN (cái mà bạn đã kéo bằng nút chuột giữa). Đây chỉ là một cài đặt duy nhất của chế độ emacs của gtk3: trong các emac thực, nó không tự làm gì cả; trong readline (bash, mysql, v.v.) nên xóa mọi thứ từ con trỏ đến đầu dòng, trong khi phần đối diện của nó Ctrl- kxóa mọi thứ từ con trỏ đến cuối dòng.

Một số có thể đề nghị bạn để lại một dấu ở đâu đó để lựa chọn ngẫu nhiên bằng bàn phím. Bạn cũng có thể tìm thấy Ctrl- SPACEở chế độ emacs được định cấu hình để đặt neo trong văn bản. Mặc dù mâu thuẫn với nhiều phần mềm khác (cụ thể là các phương thức nhập liệu, và tự động hoàn thành trong một số phần mềm chỉnh sửa khác), không có bất kỳ phím tắt nào để sử dụng neo mà bạn đặt.


Ubuntu không chính thức chế độ chỉnh sửa empops, cũng như bất kỳ cấu hình UI nào khác không thể thực hiện được với UI. Báo cáo lỗi về các nhu cầu như vậy được đánh dấu xuống ưu tiên. Vì lý do này, tôi nghĩ tốt nhất nên đặt câu hỏi như vậy cho các địa điểm chung của Linux, ví dụ như siêu người dùng.


2

Các liên kết emacs được chỉ định tại /usr/share/theme/Emacs/gtk-2.0-key/gtkrc Bạn cũng có thể thêm các liên kết trong ~ / .config / gtk-3.0 / gtk.css

Chọn tất cả sẽ là một cái gì đó như thế này:

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

Tuy nhiên, tôi chưa tìm được cách nào để liên kết nó với Cx h.


2

Xem ràng buộc khóa hiện có

Đối với các ứng dụng GTK3, bạn có thể xem các ràng buộc của chủ đề khóa GTK của Emacs - có thể cục bộ, có thể tại /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css) - hoặc trên kho git GTK trên GitHub (không nhất thiết phải bằng tệp cục bộ của bạn, vì bản phân phối của bạn có thể đã sửa đổi nó) .

Trong khi đọc tệp này, bạn phải nhận thức được ý nghĩa của các vật dụng

(Nhìn vào hình ảnh ở đầu mỗi trang web được liên kết.)

Thêm ràng buộc chính để chọn tất cả

select-allcho GtkTreeViewGtkTextView

Đối với GtkTreeViewGtkTextViewcác vật dụng, có một tín hiệu gọi là select-all. Bạn cần truyền cho nó đối số 1để nó chọn tất cả thay vì bỏ chọn.

Vì vậy, chỉnh sửa ~/.config/gtk-3.0/gtk.cssvà thêm một cái gì đó như thế này:

@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

GtkEntrykhông có select-alltín hiệu. Thay vào đó, bạn có thể sử dụng một chuỗi gồm hai move-cursortín hiệu đánh dấu văn bản.

Một lần nữa, chỉnh sửa ~/.config/gtk-3.0/gtk.cssvà thêm một cái gì đó như thế này:

@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

Nhân tiện, trong Firefox Alt- achọn tất cả cho tôi theo mặc định mà không cần cấu hình (sử dụng chủ đề khóa Emacs GTK).


1

Nếu bạn muốn chọn tất cả văn bản trong một khu vực, tôi thích xác định một Macro đơn giản cho điều đó. Nhấn F3 để bắt đầu viết Macro. Sau đó gõ

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

Sau đó sử dụng M -w để sao chép (đó là những gì tôi thường làm để sao chép từ các hệ thống unix từ xa sang Windows cục bộ) và sau đó nhấn F4 để hoàn tất xác định macro.

Bây giờ bạn đã hoàn thành việc xác định Macro, chỉ cần nhấn F4 nhiều lần bạn muốn lặp lại hành động.


Chủ đề chính của GTK Emacs không giống với chính Emacs. Hầu như không có ràng buộc chính nào trong câu trả lời của bạn hoạt động ở đó (và nếu bạn thực sự ở trong chính Emacs, bạn chỉ có thể sử dụng Cx h thay vì macro.
Rörd 5/11/2015

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.