Phím tắt để chạy mã trong Python là gì?

Bài này viết về Cách tạo HotKey bằng Python. Nhưng trước tiên, hãy thảo luận về Hotkey là gì. Phím nóng là một phím hoặc dãy phím được chỉ định được lập trình để thực thi một lệnh hoặc thực hiện một tác vụ đã chọn trong một ứng dụng phần mềm. Chẳng hạn, trên máy tính Windows, phím nóng Ctrl+S thường được sử dụng để lưu nhanh tệp

Bằng cách giảm các trình tự như vậy xuống còn một vài lần nhấn phím, thường có thể tiết kiệm thời gian của người dùng, do đó có “lối tắt” và giúp người khuyết tật sử dụng máy tính dễ dàng hơn rất nhiều

Phương pháp 1. Sử dụng pynput [Thư viện này cho phép bạn điều khiển và giám sát các thiết bị đầu vào. ]

Cách tiếp cận được sử dụng

  1. Chúng tôi nhập bàn phím từ pynput
  2. Sau đó, chúng tôi tạo một bộ để theo dõi những đầu vào phím nào hiện đang được nhấn
  3. Tạo danh sách phím nóng cần được nhấn để thực hiện thao tác mong muốn. Ở đây chúng tôi muốn các phím nóng là Shift+A và Shift+a
  4. Chúng tôi tạo một chức năng thực thi [] chạy chương trình mong muốn của chúng tôi trong khi nhấn phím nóng. Ở đây chúng tôi muốn in “Phím nóng đã phát hiện”
  5. Tạo một hàm on_press[] để kiểm tra xem có bất kỳ phím nào được nhấn trong phần đã cho mà chúng ta có. Nếu có, chúng tôi cần thêm vào bộ và sau đó xem liệu tất cả các phím và tổ hợp cụ thể có trong bộ hiện tại không. Nếu có, thì chúng tôi thực hiện hoạt động của mình
  6. Tạo một hàm on_release[] để kiểm tra xem có bất kỳ khóa nào được giải phóng theo các kết hợp đã cho mà chúng tôi có không. Nếu có, chúng ta cần xóa nó khỏi bộ hiện tại
  7. Cuối cùng, chạy chương trình

Python3




In [1]: 
[reverse-i-search]`sqa': square??
5
In [1]: 
[reverse-i-search]`sqa': square??
6
In [1]: 
[reverse-i-search]`sqa': square??
7
In [1]: 
[reverse-i-search]`sqa': square??
8

 

In [1]: 
[reverse-i-search]`sqa': square??
9
In [1]: 
[reverse-i-search]`sqa': square??
0
In [1]: 
[reverse-i-search]`sqa': square??
1
In [1]: 
[reverse-i-search]`sqa': square??
0
In [1]: 
[reverse-i-search]`sqa': square??
3
In [1]: 
[reverse-i-search]`sqa': square??
50
In [1]: 
[reverse-i-search]`sqa': square??
0
In [1]: 
[reverse-i-search]`sqa': square??
52
In [1]: 
[reverse-i-search]`sqa': square??
53

 

In [1]: 
[reverse-i-search]`sqa': square??
54
In [1]: 
[reverse-i-search]`sqa': square??
0
In [1]: 
[reverse-i-search]`sqa': square??
56____157

 

In [1]: 
[reverse-i-search]`sqa': square??
58
In [1]: 
[reverse-i-search]`sqa': square??
59

In [1]: 
[reverse-i-search]`sqa': square??
60
In [1]: 
[reverse-i-search]`sqa': square??
61____162
In [1]: 
[reverse-i-search]`sqa': square??
63
In [1]: 
[reverse-i-search]`sqa': square??
64

 

In [1]: 
[reverse-i-search]`sqa': square??
58
In [1]: 
[reverse-i-search]`sqa': square??
66

In [1]: 
[reverse-i-search]`sqa': square??
60
In [1]: 
[reverse-i-search]`sqa': square??
68
In [1]: 
[reverse-i-search]`sqa': square??
69
In [1]: 
[reverse-i-search]`sqa': square??
70
In [1]: 
[reverse-i-search]`sqa': square??
71
In [1]: 
[reverse-i-search]`sqa': square??
72
In [1]: 
[reverse-i-search]`sqa': square??
73
In [1]: 
[reverse-i-search]`sqa': square??
72
In [1]: 
[reverse-i-search]`sqa': square??
71
In [1]: 
[reverse-i-search]`sqa': square??
76

In [1]: 
[reverse-i-search]`sqa': square??
77
In [1]: 
[reverse-i-search]`sqa': square??
78

In [1]: 
[reverse-i-search]`sqa': square??
77
In [1]: 
[reverse-i-search]`sqa': square??
68
In [1]: 
[reverse-i-search]`sqa': square??
69
In [1]: 
[reverse-i-search]`sqa': square??
62
In [1]: 
[reverse-i-search]`sqa': square??
83
In [1]: 
[reverse-i-search]`sqa': square??
84
In [1]: 
[reverse-i-search]`sqa': square??
71
In [1]: 
[reverse-i-search]`sqa': square??
54
In [1]: 
[reverse-i-search]`sqa': square??
73
In [1]: 
[reverse-i-search]`sqa': square??
88
In [1]: 
[reverse-i-search]`sqa': square??
71
In [1]: 
[reverse-i-search]`sqa': square??
90
In [1]: 
[reverse-i-search]`sqa': square??
73
In [1]: 
[reverse-i-search]`sqa': square??
72
In [1]: 
[reverse-i-search]`sqa': square??
71
In [1]: 
[reverse-i-search]`sqa': square??
94

________ 195 ________ 196

 

In [1]: 
[reverse-i-search]`sqa': square??
58
In [1]: 
[reverse-i-search]`sqa': square??
98

In [1]: 
[reverse-i-search]`sqa': square??
60
In [1]: 
[reverse-i-search]`sqa': square??
68
In [1]: 
[reverse-i-search]`sqa': square??
69
In [1]: 
[reverse-i-search]`sqa': square??
70
In [1]: 
[reverse-i-search]`sqa': square??
71
In [1]: 
[reverse-i-search]`sqa': square??
72
In [1]: 
[reverse-i-search]`sqa': square??
73
In [1]: 
[reverse-i-search]`sqa': square??
72
In [1]: 
[reverse-i-search]`sqa': square??
71
In [1]: 
[reverse-i-search]`sqa': square??
76

In [1]: 
[reverse-i-search]`sqa': square??
77
In [1]: 
[reverse-i-search]`sqa': square??
10

 

In [1]: 
[reverse-i-search]`sqa': square??
11
In [1]: 
[reverse-i-search]`sqa': square??
0
In [1]: 
[reverse-i-search]`sqa': square??
13
In [1]: 
[reverse-i-search]`sqa': square??
0
In [1]: 
[reverse-i-search]`sqa': square??
15

In [1]: 
[reverse-i-search]`sqa': square??
60
In [1]: 
[reverse-i-search]`sqa': square??
17

đầu ra

Phương pháp 2. Sử dụng bàn phím [Tham khảo bài viết. mô-đun bàn phím trong Python]

Python cung cấp một thư viện có tên bàn phím được sử dụng để thúc đẩy toàn quyền kiểm soát bàn phím. Đó là một thư viện Python nhỏ có thể kết nối các sự kiện toàn cầu, đăng ký các phím nóng, mô phỏng các lần nhấn phím, v.v.

  • Nó giúp nhập các phím, ghi lại các hoạt động của bàn phím và chặn các phím cho đến khi một phím được chỉ định được nhập và mô phỏng các phím
  • Nó ghi lại tất cả các phím, ngay cả các sự kiện bàn phím trên màn hình cũng được ghi lại
  • Mô-đun bàn phím hỗ trợ các phím nóng phức tạp
  • Sử dụng mô-đun này, chúng tôi sẽ lắng nghe và gửi các sự kiện bàn phím. , Nó hoạt động trên cả hệ điều hành Windows và Linux

Python3




In [1]: 
[reverse-i-search]`sqa': square??
18

In [1]: 
[reverse-i-search]`sqa': square??
7
In [1]: 
[reverse-i-search]`sqa': square??
8

 

In [1]: 
[reverse-i-search]`sqa': square??
01

In [1]: 
[reverse-i-search]`sqa': square??
02
In [1]: 
[reverse-i-search]`sqa': square??
03_______204
In [1]: 
[reverse-i-search]`sqa': square??
61
In [1]: 
[reverse-i-search]`sqa': square??
06
In [1]: 
[reverse-i-search]`sqa': square??
0______162
In [1]: 
[reverse-i-search]`sqa': square??
09
In [1]: 
[reverse-i-search]`sqa': square??
04
In [1]: 
[reverse-i-search]`sqa': square??
31
In [1]: 
[reverse-i-search]`sqa': square??
32

Nếu bạn dành bất kỳ khoảng thời gian nào trên máy tính, có thể bạn đã tìm thấy cách sử dụng phím tắt trong quy trình làm việc của mình. Quen thuộc nhất có lẽ là Cmd-C và Cmd-V [hoặc Ctrl-C và Ctrl-V] để sao chép và dán trong nhiều chương trình và hệ thống. Người sử dụng điện có xu hướng đi xa hơn. các trình soạn thảo văn bản phổ biến như Emacs, Vim và các trình soạn thảo khác cung cấp cho người dùng một loạt thao tác đáng kinh ngạc thông qua các tổ hợp phím phức tạp

Vỏ IPython không đi xa đến mức này, nhưng cung cấp một số phím tắt để điều hướng nhanh trong khi gõ lệnh. Trên thực tế, các phím tắt này không được cung cấp bởi chính IPython, mà thông qua sự phụ thuộc của nó vào thư viện GNU Readline. như vậy, một số phím tắt sau đây có thể khác nhau tùy thuộc vào cấu hình hệ thống của bạn. Ngoài ra, mặc dù một số phím tắt này hoạt động trong sổ ghi chép dựa trên trình duyệt, nhưng phần này chủ yếu nói về các phím tắt trong trình bao IPython

Khi bạn đã quen với những điều này, chúng có thể rất hữu ích để thực hiện nhanh một số lệnh nhất định mà không cần di chuyển tay khỏi vị trí bàn phím "chính". Nếu bạn là người dùng Emacs hoặc nếu bạn có kinh nghiệm với hệ vỏ kiểu Linux, những điều sau đây sẽ rất quen thuộc. Chúng tôi sẽ nhóm các phím tắt này thành một vài danh mục. phím tắt điều hướng, phím tắt nhập văn bản, phím tắt lịch sử lệnh và các phím tắt khác

Phím tắt điều hướng¶

Mặc dù việc sử dụng các phím mũi tên trái và phải để di chuyển lùi và tiến trong dòng là khá rõ ràng, nhưng có các tùy chọn khác không yêu cầu bạn phải di chuyển tay từ vị trí bàn phím "nhà"

Thao tác nhấn phím
In [1]: 
[reverse-i-search]`sqa': square??
07Di chuyển con trỏ về đầu dòng
In [1]: 
[reverse-i-search]`sqa': square??
08Di chuyển con trỏ về cuối dòng
In [1]: 
[reverse-i-search]`sqa': square??
09 hoặc phím mũi tên tráiDi chuyển con trỏ về phía sau một ký tự
In [1]: 
[reverse-i-search]`sqa': square??
10 hoặc phím mũi tên phảiDi chuyển con trỏ về phía trước một ký tự

Phím tắt nhập văn bản¶

Mặc dù mọi người đều quen với việc sử dụng phím Backspace để xóa ký tự trước đó, nhưng việc chạm vào phím này thường yêu cầu một số động tác thể dục ngón tay nhỏ và mỗi lần nó chỉ xóa một ký tự. Trong IPython có một số phím tắt để xóa một số phần văn bản bạn đang nhập. Hữu ích nhất trong số này là các lệnh xóa toàn bộ dòng văn bản. Bạn sẽ biết những điều này đã trở thành bản chất thứ hai nếu bạn thấy mình sử dụng kết hợp Ctrl-b và Ctrl-d thay vì với tới Backspace để xóa ký tự trước đó

Tổ hợp phímHành động Phím BackspaceXóa ký tự trước đó trong dòng
In [1]: 
[reverse-i-search]`sqa': square??
11Xóa ký tự tiếp theo trong dòng
In [1]: 
[reverse-i-search]`sqa': square??
12Cắt văn bản từ con trỏ đến cuối dòng
In [1]: 
[reverse-i-search]`sqa': square??
0Cắt văn bản từ đầu dòng đến con trỏ
In [1]: 
[reverse-i-search]`sqa': square??
1Yank [i. e. dán] văn bản đã bị cắt trước đó
In [1]: 
[reverse-i-search]`sqa': square??
2Transpose [i. e. , switch] hai ký tự trước đó

Lịch sử lệnh Phím tắt¶

Có lẽ các phím tắt hiệu quả nhất được thảo luận ở đây là những phím tắt mà IPython cung cấp để điều hướng lịch sử lệnh. Lịch sử lệnh này vượt ra ngoài phiên IPython hiện tại của bạn. toàn bộ lịch sử lệnh của bạn được lưu trữ trong cơ sở dữ liệu SQLite trong thư mục hồ sơ IPython của bạn. Cách đơn giản nhất để truy cập những thứ này là sử dụng các phím mũi tên lên và xuống để xem qua lịch sử, nhưng cũng có các tùy chọn khác

Tổ hợp phímHành động
In [1]: 
[reverse-i-search]`sqa': square??
3 [hoặc phím mũi tên lên]Truy cập lệnh trước đó trong lịch sử
In [1]: 
[reverse-i-search]`sqa': square??
4 [hoặc phím mũi tên xuống]Truy cập lệnh tiếp theo trong lịch sử
In [1]: 
[reverse-i-search]`sqa': square??
5Tìm kiếm ngược qua lịch sử lệnh

Tìm kiếm ngược lại có thể đặc biệt hữu ích. Nhớ lại rằng trong phần trước chúng ta đã định nghĩa một hàm có tên là

In [1]: 
[reverse-i-search]`sqa': square??
6. Hãy tìm kiếm ngược lại lịch sử Python của chúng tôi từ trình bao IPython mới và tìm lại định nghĩa này. Khi bạn nhấn Ctrl-r trong thiết bị đầu cuối IPython, bạn sẽ thấy lời nhắc sau

In [1]:
[reverse-i-search]`':

Nếu bạn bắt đầu nhập các ký tự tại dấu nhắc này, IPython sẽ tự động điền lệnh gần đây nhất, nếu có, khớp với các ký tự đó

In [1]: 
[reverse-i-search]`sqa': square??

Tại bất kỳ thời điểm nào, bạn có thể thêm nhiều ký tự hơn để tinh chỉnh tìm kiếm hoặc nhấn lại Ctrl-r để tìm kiếm thêm lệnh khác phù hợp với truy vấn. Nếu bạn đã theo dõi phần trước, nhấn Ctrl-r hai lần nữa sẽ cho

In [1]: 
[reverse-i-search]`sqa': def square[a]:
    """Return the square of a"""
    return a ** 2

Khi bạn đã tìm thấy lệnh mình đang tìm, hãy nhấn Return và quá trình tìm kiếm sẽ kết thúc. Sau đó, chúng tôi có thể sử dụng lệnh đã truy xuất và tiếp tục với phiên của mình

In [1]: 
[reverse-i-search]`sqa': square??
0

Lưu ý rằng Ctrl-p/Ctrl-n hoặc các phím mũi tên lên/xuống cũng có thể được sử dụng để tìm kiếm trong lịch sử, nhưng chỉ bằng cách khớp các ký tự ở đầu dòng. Nghĩa là, nếu bạn gõ

In [1]: 
[reverse-i-search]`sqa': square??
7 rồi nhấn Ctrl-p, nó sẽ tìm thấy lệnh gần đây nhất [nếu có] trong lịch sử của bạn bắt đầu bằng các ký tự
In [1]: 
[reverse-i-search]`sqa': square??
7

Phím tắt khác¶

Cuối cùng, có một vài phím tắt linh tinh không phù hợp với bất kỳ danh mục nào ở trên, nhưng vẫn hữu ích khi biết

Tổ hợp phímHành động
In [1]: 
[reverse-i-search]`sqa': square??
9Xóa màn hình thiết bị đầu cuối
In [1]: 
[reverse-i-search]`sqa': def square[a]:
    """Return the square of a"""
    return a ** 2
0Ngắt lệnh Python hiện tại
In [1]: 
[reverse-i-search]`sqa': square??
11Thoát phiên IPython

Ctrl-c nói riêng có thể hữu ích khi bạn vô tình bắt đầu một công việc rất dài

Mặc dù một số phím tắt được thảo luận ở đây thoạt nghe có vẻ hơi tẻ nhạt, nhưng chúng nhanh chóng trở nên tự động khi thực hành. Khi bạn phát triển trí nhớ cơ bắp đó, tôi nghi ngờ rằng bạn thậm chí sẽ thấy mình ước chúng có sẵn trong các bối cảnh khác

Phím tắt để chạy mã là gì?

@vinod23 Có, phím tắt lần lượt là Ctrl+' và Ctrl+Enter cho Chạy mã và Gửi giải pháp [Hoặc Cmd+' và Cmd+ .

Ctrl R trong trăn là gì?

Ctrl-r. Tìm kiếm ngược thông qua lịch sử lệnh . Tìm kiếm ngược lại có thể đặc biệt hữu ích. Nhớ lại rằng trong phần trước chúng ta đã định nghĩa một hàm có tên là square. Hãy tìm kiếm ngược lại lịch sử Python của chúng tôi từ trình bao IPython mới và tìm lại định nghĩa này.

Chủ Đề