Thông thường các thiết bị đầu cuối cho phép lựa chọn văn bản bằng chuột, nhưng vỏ không được biết điều này. Vì vậy, không may không bash
, zsh
, fish
cũng không es
thể hỗ trợ chỉnh sửa chuột dựa trên. Tôi nghĩ để làm như vậy, họ sẽ cần kiểm soát nhiều hơn đối với thiết bị đầu cuối.
Tuy nhiên (và đây là một chút kéo dài) nếu bạn mở Vim hoặc GVim, sau đó nhập lệnh shell bằng cách sử dụng:
:!...
sau đó bạn có thể nhấp chuột để nhảy đến bất cứ nơi nào trong dòng . ( :set mouse=a
Trước tiên, bạn cần phải bật nếu chưa bật.) Có thể thấy các phím chỉnh sửa trong chế độ này với:help cmdline-editing
Vim cũng có một chế độ lịch sử lệnh khá mạnh mẽ, có thể đạt được bằng cách nhấn q:. Từ đó, bạn có thể kéo, xóa và dán bằng các lệnh chế độ thông thường của Vim. Trong chế độ này, bạn có thể lấy chuột chọn và sau đó xóa tính năng bạn muốn (bằng cách nhấn d).
Một cảnh báo quan trọng ở đây là Vim không thực sự duy trì phiên chạy vỏ trực tiếp. Mỗi lệnh bạn thực hiện sẽ được chạy trong một tiến trình con. Vì vậy, bất kỳ thay đổi được thực hiện cho các biến môi trường hoặc tùy chọn shell theo quy trình con sẽ bị mất.
Điều đó nói rằng, bạn có thể sửa đổi các biến môi trường từ bên trong quy trình Vim và sử dụng các biến này từ dòng lệnh của Vim và thậm chí chúng sẽ được xuất sang các quy trình con:
:let $FOO="bar" " the $ and the quotes are mandatory here
:echo $FOO " Vim's own echo command
bar
:!echo "$FOO" " Passing the variable to a shell command
bar
:!bash " Opening a child shell
$ echo "$FOO"
bar
Vì vậy, nếu bạn sẵn sàng giả vờ rằng Vim thực sự là một loại vỏ kỳ lạ, thì bạn có thể thưởng thức các tính năng chỉnh sửa nâng cao của nó! Có lẽ nhược điểm lớn nhất là bạn sẽ phải bắt đầu mọi lệnh bằng cách gõ một trong hai :!
hoặcq:
Ồ và nhân tiện, nếu bạn muốn nhận đầu ra của lệnh shell vào bộ đệm Vim hiện tại của mình, bạn có thể làm như vậy (nhưng hãy cẩn thận, nó sẽ ghi đè dòng hiện tại của bạn):
:,!ls