Làm cách nào để nhanh chóng di chuyển con trỏ đến cuối trong bash ở chế độ vi?


7

Khi tôi ở chế độ chèn và tôi di chuyển sang trái từ vị trí con trỏ cuối cùng (vị trí trống bên phải của ký tự cuối cùng), sau đó tôi không thể quay lại vị trí đó nữa. Tôi phải gõ Esc$a(hoặc thay thế $bằng một loạt các lần) để đến đó. Có vẻ như rất nhiều tổ hợp phím bổ sung chỉ để xóa ký tự cuối cùng (và vẫn ở chế độ chèn).

Có cách nào tốt hơn hay tôi chỉ nên sử dụng chế độ emacs mặc định (mặc dù tôi không biết một lệnh emacs)?

Câu trả lời:


5

Ở chế độ bình thường, bạn bắt đầu chỉnh sửa ở cuối dòng với Shift+ A.

Trong chế độ chèn, bạn sẽ có thể di chuyển đến EOL.

Trong hướng dẫn:

man readline
/VI Mode bindings<Enter>

Đối với câu hỏi thực / khác , tôi phải điền một chút:

$ le eds de x
      ^     ^^
      |     ||
      A     BC

Trong chế độ chèn, bạn có nghĩa là bạn không thể di chuyển đến C, chỉ Btừ A?

Ngay cả với , hay End?

Vì vậy, nếu bạn bắt đầu gõ các chữ cái sẽ nhập trước x?


1
Tôi không thể quay lại Cmột khi tôi rời vị trí đó trong chế độ chèn. Vì vậy, nếu tôi di chuyển hết sang trái và bắt đầu gõ, xnhân vật sẽ luôn là nhân vật cuối cùng. Ngoài ra tôi không có Endchìa khóa (MacBook Pro).
hobbes3

@ hobbes3: Ngoài ra, bạn có một .inputrctập tin?
Runium

Không, tôi không. Có điều gì khác tôi nên kiểm tra? Tôi đã nhận thấy rằng tôi có thể nhận được để Ctrên CentOS với set -o vitrong tôi .bashrc. Tôi nghĩ vấn đề này là dành riêng cho Terminal của Mac OS X.
hobbes3

1
Tôi đã làm điều đó và nó đang làm điều tương tự (không thể làm được C). Thật ki cục. Đó phải là giới hạn của Mac Terminal ...
hobbes3

2
@ hobbes3: Nghe có vẻ là một lỗi rồi. (Cứng để tranh luận cho nó như là một tính năng .) Tôi gửi một ping / câu hỏi với liên kết ở đây trên trò chuyện @ apple.stackexchange.com
Runium

4

Bạn chỉ có thể nhấn Endphím để đến đó.

Ngoài ra, bạn có thể sử dụng Shift + A(viết hoa A - để nối thêm ) để đưa bạn vào Chế độ chèn ở cuối dòng.


2

Tôi biết đây là một câu hỏi cũ, nhưng tôi đã đánh vào đầu tôi vài ngày nay và cuối cùng tôi đã hiểu. Hóa ra giải pháp rất đơn giản: cập nhật bash lên 4.3 . Bash mặc định trên máy Mac (thậm chí Yosemite) là 3.2.

Cài đặt Homebrew với

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

sau đó làm

brew install bash

sau đó thay đổi đường dẫn shell mặc định của bạn (trong Terminal Preferences) thành

/usr/local/bin/bash

và đó là nó. Kiểm tra phiên bản bash của bạn với

bash --version

và như một phần thưởng bổ sung, bạn có thể nhận được các chỉ số chế độ!

bind 'set show-mode-in-prompt on'

và nó sẽ hiển thị +cho chế độ Chèn và :cho chế độ Lệnh.


Điều này đã làm tôi khó chịu quá lâu - cảm ơn bạn! :) btw Tôi đã nâng cấp với macports - sudo port install bashsau đó đặt Lệnh trong tùy chọn thiết bị đầu cuối thành/opt/local/bin/bash
JobJob

0

Bạn có thể sử dụng :10000hoặc nhiều hơn để đi đến dòng cuối cùng


:xdi chuyển đến một dòng nhất định, không nằm trong dòng.
Mat
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.