Tôi biết kết hợp Ctrl+ Ađể nhảy đến đầu của lệnh hiện tại và Ctrl+ Eđể nhảy đến cuối.
Nhưng có cách nào để nhảy từng chữ, như Alt+ ←/ →trong các ứng dụng Cacao không?
ALT
phím tắt đã được thêm vào Terminal trong phiên bản OS X mới nhất.
Tôi biết kết hợp Ctrl+ Ađể nhảy đến đầu của lệnh hiện tại và Ctrl+ Eđể nhảy đến cuối.
Nhưng có cách nào để nhảy từng chữ, như Alt+ ←/ →trong các ứng dụng Cacao không?
ALT
phím tắt đã được thêm vào Terminal trong phiên bản OS X mới nhất.
Câu trả lời:
Ra khỏi hộp bạn có thể sử dụng Esc+ khá kỳ quái + Fđể di chuyển đến đầu của từ tiếp theo và Esc+ Bđể di chuyển đến đầu của từ hiện tại.
Esc
+ F
khi ở cuối dòng hoặc tổ hợp phím khác ở đầu dòng, nó chỉ chèn chữ cái thay thế. Làm phiền!
~/.inputrc
.
Trên Mac OS X - các phím tắt sau đây hoạt động theo mặc định. Lưu ý rằng bạn phải thực hiện phím Tùy chọn hoạt động giống như Meta trong tùy chọn Terminal (dưới tab bàn phím)
Tôi đã quan sát thấy rằng các ràng buộc khóa mặc định của emacs đối với điều hướng văn bản đơn giản dường như hoạt động trên các bash shell. Bạn có thể dùng
Đây là cách bạn có thể làm điều đó
Theo mặc định, Terminal có các phím tắt này để di chuyển (trái và phải) từng chữ:
Bạn có thể cấu hình alt+← và →để tạo các chuỗi đó cho bạn:
⌥ ←
nếu có, hoặc thêm nó nếu không.\033b
(bạn không thể nhập văn bản này theo cách thủ công).\033f
)Ngoài ra, bạn có thể tham khảo bài đăng trên blog này tại textmate:
B
để lại hoặc F
cho chuyển tiếp vào Esc+
lĩnh vực
alt left
và alt right
tạo các chuỗi đó
Chuyển sang iTerm2 . Nó miễn phí và đẹp hơn nhiều so với thiết bị đầu cuối cũ đơn giản. Ngoài ra, nó có nhiều tùy chọn hơn để tùy chỉnh, như phím tắt.
Ngoài ra tôi thích rằng bạn có thể sử dụng cmdvà 1-9 để chuyển giữa các tab. Hãy thử nó và bạn sẽ không bao giờ quay trở lại thiết bị đầu cuối thông thường :)
Cách thiết lập tùy chọn bàn phím tùy chỉnh trong iterm2
Tôi thường nhấn nhầm nút ( cmd/ control/ alt) bằng phím mũi tên và vì vậy tôi có các tổ hợp phím mũi tên của mình với các nút đó được đặt để nhảy về phía trước và quay lại các từ, nhưng vui lòng làm những gì phù hợp nhất với bạn.
Ctrl + Arrow Left
hoặc Right
- Up
và Down
hoạt động: / đã thử và không có cấu hình mới được đặt làm mặc định
Trên thực tế có một cách tiếp cận tốt hơn nhiều. Giữ option( alttrên một số bàn phím) và nhấn các phím mũi tên sang trái hoặc phải để di chuyển bằng từ. Đơn giản như thế.
option←
option→
Cũng ctrlesẽ đưa bạn đến cuối dòng và ctrlasẽ đưa bạn đến điểm bắt đầu.
[D
và [C
. Để khắc phục điều này, thêm bind '"[D": backward-word'
và bind '"[C": forward-word'
vào của tôi .bashrc
.
.bashrc
nhưng nó không hoạt động, có gì sai với tôi không? (Tôi sử dụng RubyMine)
.bashrc
khi thiết bị đầu cuối khởi động. Hãy thử echo "here"
và xem nếu thông báo đó hiển thị khi bạn mở một thiết bị đầu cuối mới. Ngoài ra, bạn phải đóng và mở lại thiết bị đầu cuối hoặc chạy source ~/.bashrc
để có được nó để đọc tệp mới.
Tôi có Alt+ ←/ →làm việc: mở Tùy chọn »Cài đặt» Bàn phím , đặt mục nhập cho con trỏ tùy chọn bên trái để gửi chuỗi sang shell: \ 033b và đặt con trỏ tùy chọn bên phải để gửi chuỗi sang shell: \ 033f . Bạn cũng có thể sử dụng điều này cho các tổ hợp phím Control khác.
Enable option as meta key
. Nhân tiện, nó rất tuyệt Chìa khóa chắc chắn sẽ thuận tiện hơn rất nhiều khi so sánh với Esc + B hoặc Esc + F
Trên thực tế, nó phụ thuộc vào loại vỏ bạn sử dụng, tuy nhiên hầu hết các vỏ đều có các ràng buộc tương tự. Các ràng buộc mà bạn đang đề cập đến (ví dụ Ctrl+ Avà Ctrl+ E) là các ràng buộc bạn sẽ tìm thấy trong nhiều chương trình khác và chúng được sử dụng cho các lứa tuổi, BTW cũng hoạt động trong hầu hết các ứng dụng UI.
Dưới đây là giao diện của các ràng buộc mặc định cho Bash:
Các phím tắt Bash quan trọng nhất
Cũng xin lưu ý rằng bạn có thể tùy chỉnh chúng. Bạn cần tạo một tệp, đặt tên theo ý muốn, tôi đặt tên của tôi là .bash_key_bindings và đặt nó vào thư mục chính của tôi. Ở đó bạn có thể đặt một số tùy chọn bash chung và bạn cũng có thể đặt các ràng buộc chính. Để đảm bảo chúng được áp dụng, bạn cần sửa đổi một tệp có tên ".bashrc" mà bash đọc khi khởi động (bạn phải tạo nó, nếu nó không tồn tại) và thực hiện cuộc gọi sau đây:
bind -f ~/.bash_key_bindings
~ có nghĩa là thư mục chính trong bash, như đã nêu ở trên, bạn có thể đặt tên tệp theo ý muốn và cũng đặt nó ở nơi bạn thích miễn là bạn cung cấp đúng đường dẫn + tên để liên kết.
Hãy để tôi chỉ cho bạn một số trích đoạn của tệp .bash_key_bindings của tôi:
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off
Chúng chỉ cần đặt một vài tùy chọn (ví dụ: tắt chuông; tất cả có thể được tìm kiếm trên trang web bash).
"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert
Những điều này đảm bảo rằng các ký tự một mình không làm gì ngoài việc đảm bảo rằng ký tự được "gõ" (chúng tự chèn vào vỏ).
"\C-dW": kill-word
"\C-dL": kill-line
"\C-dw": backward-kill-word
"\C-dl": backward-kill-line
"\C-da": kill-line
Điều này khá thú vị. Nếu tôi nhấn Ctrl+ Dmột mình (tôi đã chọn d để xóa), không có gì xảy ra. Nhưng nếu sau đó tôi gõ chữ thường w, từ bên trái của con trỏ sẽ bị xóa. Tuy nhiên, nếu tôi gõ chữ hoa, từ bên phải của con trỏ sẽ bị tắt. Tương tự với l và L liên quan đến toàn bộ dòng bắt đầu từ con trỏ. Nếu tôi gõ "a", toàn bộ dòng thực sự bị xóa (mọi thứ trước và sau con trỏ).
Tôi đã nhảy một từ về phía trước trên Ctrl+ Fvà một từ lùi lại trên Ctrl+B
"\C-f": forward-word
"\C-b": backward-word
Như bạn có thể thấy, bạn có thể tạo một phím tắt, dẫn đến một hành động ngay lập tức hoặc bạn có thể tạo một phím tắt, chỉ cần thực hiện một chuỗi ký tự và sau đó bạn phải nhập một (hoặc nhiều) ký tự để thực hiện một hành động như thể hiện trong ví dụ trên.
Vì vậy, nếu bạn không hài lòng với các ràng buộc mặc định, hãy thoải mái tùy chỉnh chúng theo ý muốn. Đây là một liên kết đến hướng dẫn bash để biết thêm thông tin.
command
Mã khóa như thế nào ? Trong ví dụ của bạn control
là \C
, nhưng làm thế nào command
?
Meta
bash ( \M
), cmd + left sẽ là \M-\e[D
. Tuy nhiên, bạn không thể ánh xạ cmd + ... tới bất cứ thứ gì, tất cả các phím tắt lệnh được xử lý (và do đó bị nuốt) bởi chính ứng dụng Terminal (những thứ không bao giờ được chuyển tiếp tới trình bao) và cmd + ánh xạ sang "cửa sổ trước" nếu bạn có nhiều cửa sổ đầu cuối mở. Xin lỗi, không thể với ứng dụng Terminal.
Sử dụng cài đặt trước chỉnh sửa văn bản tự nhiên !
Về cơ bản, nó liên kết, trong số các chuỗi chính khác, Tùy chọn + LeftArrow cho ^[b
chuỗi và Tùy chọn + RightArrow để^[f
Điều này hoạt động trong cá và bash, cũng như trong thiết bị đầu cuối psql.
Nếu bạn là người dùng Vim, bạn có thể thử chế độ vim của bash. Chạy này hoặc đặt nó trong ~/.bashrc
tập tin của bạn :
set -o vi
Theo mặc định, bạn đang ở chế độ chèn; nhấn thoát và bạn có thể di chuyển xung quanh giống như bạn có thể ở Vim ở chế độ bình thường, do đó chuyển động bằng từ là w
hoặc b
, và các phím di chuyển thông thường cũng hoạt động .
Nếu bạn kiểm tra Use option as meta key
trong tab bàn phím của các tùy chọn, thì các lệnh kiểu emacs mặc định cho từ tiến và lùi tương ứng và ⌥F
( Alt+ F) và ⌥B
( Alt+ B) tương ứng.
Tôi khuyên bạn nên đọc từ Bash đến Z-Shell . Nếu bạn muốn tăng sức mạnh bash / zsh của bạn!
Kể từ Mac OS X Lion 10.7, Terminal maps Option- Left/Right Arrowtheo Esc- b/ftheo mặc định, do đó, giờ đây nó được tích hợp sẵn cho bash và các chương trình khác sử dụng các phím bấm tương thích với emacs này.
Giữ phím Tùy chọn và nhấp vào nơi bạn muốn con trỏ di chuyển
Trong Bash, những điều này bị ràng buộc với Esc- Bvà Esc- F. Bash có nhiều, nhiều phím tắt hơn; có một cái nhìn vào đầu ra bind -p
để xem những gì họ đang có.
Dưới iterm2
's Preferences> Hồ sơ> Phím , bạn nhấp vào +
bên dưới chính Mappings và ghi ra một shortcut mới. Đối với Hành động , chọn Send Escape Sequence
và nhập b
hoặc f
cho ngược và xuôi tương ứng.
Khi tôi cố gắng ghi một cho ( Ctrl+ ←), tôi nhận thấy trong trường Phím tắt bàn phím rằng mũi tên không bao giờ xuất hiện. Hóa ra tôi phải vô hiệu hóa Tùy chọn hệ thống của Mac mặc định > Bàn phím> Phím tắt> Cắt điều khiển nhiệm vụ trước tiên để mọi thứ hoạt động, vì chúng sẽ ghi đè các phím tắt mặc định của iterm2. Nên đúng cho ứng dụng thiết bị đầu cuối tiêu chuẩn, quá.
Câu trả lời mới cho người dùng iTerm2 Build 3.3.4:
Bước 1: (macOS X) Tùy chọn hệ thống> Bàn phím> tab Phím tắt> Chọn Điều khiển nhiệm vụ (bảng điều khiển bên trái)> Bỏ chọn các phím tắt có nhãn là "Di chuyển sang trái một khoảng trắng" và "Di chuyển sang phải một khoảng trắng"
Bước 2: (iTerm2 Build 3.3.4) Tùy chọn> Cấu hình> Chọn * Mặc định (bảng điều khiển bên trái)> tab Phím> Xóa cả hai mục "⌥->" và "<-"> Đặt cả hai phím "Tùy chọn bên trái (⌥): "và" Phím tùy chọn đúng (⌥): "sang Esc +
Không lộn xộn với các cấu hình shell, không lộn xộn với Terminal masOS (mặc định) kém hơn, không có Esc + F / B, rửa sạch và lặp lại vô nghĩa.
Thỏa thuận được thực hiện!!!
Hãy tận hưởng mẹo này, các CHƯƠNG TRÌNH đồng bào của tôi!
Như đã trả lời trước đó, bạn có thể thêm set -o vi
vào~/.bashrc
các ràng buộc để sử dụng vi
/ vim
khóa hoặc nếu không bạn có thể thêm phần sau vào .bashrc
để di chuyển bằng Ctrl
và các phím mũi tên:
# bindings to move 1 word left/right with ctrl+left/right in terminal, just some apple stuff!
bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
# bindings to move 1 word left/right with ctrl+left/right in iTerm2, just some apple stuff!
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'
Để bắt đầu hiệu lực của các dòng mã này, một trong hai source ~/.bashrc
hoặc bắt đầu một phiên cuối mới.