it-swarm-vi.tech

Có cách nào trong OS X Terminal để di chuyển con trỏ từng chữ không?

Tôi biết sự kết hợp Ctrl+A nhảy đến đầu lệnh hiện tại và Ctrl+E để nhảy đến cuối cùng.

Nhưng có cách nào để nhảy từng chữ, như Alt+/ trong ứng dụng ca cao nào?

720
Arne

Ra khỏi hộp bạn có thể sử dụng khá kỳ quái Esc+F để 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.

522
Kristian J.

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 Tùy chọn phím hoạt động như Meta trong tùy chọn Terminal (dưới tab bàn phím)

  • alt (⌥)+F nhảy F orward by a Word
  • alt (⌥)+B nhảy B khó hiểu bởi một từ

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

  • alt (⌥)+D để xóa một từ bắt đầu từ vị trí con trỏ hiện tại
  • ctrl+A nhảy để bắt đầu dòng
  • ctrl+E nhảy đến cuối dòng
  • ctrl+K để giết dòng bắt đầu từ vị trí con trỏ
  • ctrl+Y để dán văn bản từ bộ đệm kill
  • ctrl+R để đảo ngược tìm kiếm các lệnh bạn đã nhập trong quá khứ từ lịch sử của bạn
  • ctrl+S để chuyển tiếp tìm kiếm (hoạt động trong zsh cho tôi nhưng không bash)
  • ctrl+F để tiến về phía trước bởi một char
  • ctrl+B di chuyển về phía sau bởi một char
  • ctrl+W để loại bỏ Word ngược từ vị trí con trỏ
384
Varun Katta

Đây là cách bạn có thể làm

Theo mặc định, Terminal có các phím tắt này để di chuyển (trái và phải) Word-by-Word:

  • esc+B (trái)
  • esc+F (đúng)

Bạn có thể cấu hình alt+ và  để tạo các chuỗi đó cho bạn:

  • Tùy chọn thiết bị đầu cuối mở (cmd+,);
  • Trong tab Cài đặt, chọn Bàn phím và bấm đúp vào ⌥ ← nếu nó ở đó hoặc thêm nó nếu không.
  • Đặt công cụ sửa đổi theo ý muốn và nhập phím tắt trong hộp: esc+B, tạo văn bản \033b (bạn không thể nhập văn bản này theo cách thủ công).
  • Lặp lại cho Word-right (esc+F trở thành \033f)

Ngoài ra, bạn có thể tham khảo bài đăng trên blog này tại textmate:

http://blog.macromates.com/2006/Word-movement-in-terminal/

273
Fil

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 cmd và 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

  • Cài đặt iTerm2
  • Khởi chạy và sau đó đi đến khung ưu tiên.
  • Chọn tab hồ sơ bàn phím
  • Bạn sẽ cần phải sao chép hồ sơ sang một cái gì đó mới và sau đó xóa các phím tắt phím mũi tên như ^Right/Left hoặc nếu bạn không quan tâm đến bản sao lưu, chỉ cần xóa chúng khỏi hồ sơ mặc định.
  • Tiếp theo, đảm bảo hồ sơ sửa đổi của bạn được chọn (được gắn dấu sao)

Picture 1.png

  • Bây giờ chọn tab bàn phím (hàng trên cùng)

iTerm 2

  • Nhấp vào nút dấu cộng để thêm phím tắt mới
  • Trong loại hộp đầu tiên CMD+Left arrow
  • Trong hộp thứ hai chọn "gửi mã thoát"
  • Trong hộp thứ ba gõ chữ cái B

Picture 2.png

  • Lặp lại với các tổ hợp phím mong muốn. escape+B di chuyển một từ sang trái escape+f di chuyển một từ sang phải.
  • bạn cũng có thể muốn thiết lập cmd+d để xóa Word trước con trỏ bằng escape+d

Tôi thường nhấn nhầm nút (cmd / control / alt) với một 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 với bạn nhất.

157
cwd

Trên thực tế có một cách tiếp cận tốt hơn nhiều. Giữ option ( alt trê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 Word. Đơn giản như vậy.

option
option

Cũng thế ctrle sẽ đưa bạn đến cuối dòng và ctrla sẽ đưa bạn đến điểm khởi đầu.

142
mdubez

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 đến gửi chuỗi tới Shell:\033b và đặt - con trỏ tùy chọn bên phải đến gửi chuỗi tới 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.

78
Peter Hilton

Trên thực tế, nó phụ thuộc vào Shell bạn sử dụng, tuy nhiên hầu hết các shell đề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+A và 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 từ lâu đờ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:

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

Những điều này chỉ đặ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 nhân vật một mình không làm gì ngoài việc đảm bảo nhân vật được "gõ" (họ tự chèn vào Shell).

"\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 Ctrl+D mộ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, Word ở bên trái con trỏ sẽ bị xóa. Tuy nhiên, nếu tôi gõ chữ hoa, Word ở bên phải 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 Ctrl+F và một từ lạc hậu 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 tạo 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.

38
Mecki

Nếu bạn là người dùng Vim, bạn có thể thử chế độ vim của bash. Chạy cái này hoặc đặt nó vào tệp ~/.bashrc 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 của Word là w hoặc b, và các phím di chuyển thông thường cũng hoạt động .

14
jches

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 chuyển tiếp và lùi-Word 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!

14
Matt

Kể từ Mac OS X Lion 10.7, bản đồ Terminal Option-Left/Right Arrow đến Esc-b/f theo mặc định, do đó, điều này hiện được tích hợp sẵn cho bash và các chương trình khác sử dụng các tổ hợp phím tương thích emacs này.

12
Chris Page

Trong Bash, những điều này bị ràng buộc với Esc-B và Esc-F. Bash có nhiều, nhiều phím tắt hơn; hãy xem đầu ra của bind -p để xem chúng là gì.

8
Andy Lynch

Trong iterm2 's Tùy chọn> Hồ sơ> Khóa , bạn nhấp vào + bên dưới Ánh xạ khóa và ghi lại một phím tắt mới. Đối với Hành động , chọn Send Escape Sequence và nhập b hoặc f tương ứng ngược và xuôi.

Khi tôi cố gắng ghi lại một cho (Ctrl+), Tôi nhận thấy trong trường Phím tắt mà mũi tên không bao giờ xuất hiện. Hóa ra tôi phải vô hiệu hóa mặc định của mac Tùy chọn hệ thống> Bàn phím> Phím tắt> Điều khiển nhiệm vụ trước tiên để mọi thứ hoạt động, vì chúng sẽ ghi đè lên iterm2 phím tắt mặc định. Nên đúng cho ứng dụng thiết bị đầu cuối tiêu chuẩn, quá.

Keyboard system preferences

3
qix

Giữ phím Tùy chọn và nhấp vào nơi bạn muốn con trỏ di chuyển

2
Dan Alboteanu

Sử dụng Chỉnh sửa văn bản tự nhiên đặt trước!

 enter image description here

Về cơ bản, nó liên kết, trong số các chuỗi chính khác, Tùy chọn + LeftArrow thành ^[b trình tự và Tùy chọn + RightArrow thành ^[f

Điều này hoạt động trong cá và bash, cũng như trong thiết bị đầu cuối psql.

0
Dziamid