Làm thế nào để làm việc với chế độ dòng lệnh vi cách?


10

Có cách nào để tương tác với chế độ dòng lệnh trong khi vẫn luôn ở vị trí nhà không?

Đặc biệt, hai hành động sau đây rất cồng kềnh, đòi hỏi phải di chuyển các ngón tay ra xa các phím mũi tên và đôi khi tệ hơn là chuột.

  1. Di chuyển xung quanh: Có cách nào để di chuyển qua lại trong chế độ dòng lệnh trong khi vẫn ở vị trí thông thường không?
  2. Làm thế nào bạn có thể sao chép và dán vào dòng lệnh? Tôi có nghĩa là sao chép cả hai từ một phần của dòng lệnh sang một phần khác, hoặc từ văn bản hoặc thậm chí clipboard.

1
Cả hai có thể được giải quyết bằng cách sử dụng cửa sổ dòng lệnh với :q; điều này sẽ mở ra một cửa sổ "giống như bộ đệm" mới, trong đó bạn có thể sử dụng hjklđể di chuyển, yđể kéo dài, v.v.
Martin Tournoij

1
@Carpetsmoker (ý bạn là q:phải không?) Rất tốt để biết! Tôi đã vô tình đến đó trong quá khứ, nhưng không thực sự nghĩ về việc sử dụng nó. Nó dường như không hoạt động với /mặc dù (tìm kiếm).
Shahbaz

Rất tiếc, vâng, ý tôi là q: ... Tôi chưa bao giờ sử dụng nó nhiều, vì vậy tôi không thể cho bạn câu trả lời đầy đủ / đúng đắn ...
Martin Tournoij

Câu trả lời:


17

dòng lệnh (mà bạn biết) và có cửa sổ dòng lệnh (dòng lệnh trong bộ đệm đặc biệt, bạn có thể chỉnh sửa giống như bất kỳ dòng nào khác). Bạn nhập này hoặc thông qua <C-f>từ dòng lệnh (cũng cho /tìm kiếm vv) khi bạn cảm thấy cần để có thêm "chỉnh sửa quyền lực", hoặc trực tiếp từ chế độ bình thường thông qua dành riêng q:, q/vv lệnh.

Tìm hiểu thêm về điều này tại :help command-line-window.


4
<C-f>là rất hữu ích để biết, vì nó hoạt động sau khi bạn đã thực hiện được một nửa lệnh.
Shahbaz

1
Tôi đồng ý; các :xuất phát gần như tự động đối với tôi, vì vậy nó tốt đến mức khó có thể chuyển đổi mà không cần phải quay trở lại chế độ bình thường.
Ingo Karkat

11

Ngoài việc cung cấp cửa sổ dòng lệnh , Vim cũng cung cấp một số tính năng hạn chế cho phép bạn tương tác với dòng lệnh trong khi ở chế độ dòng lệnh ( không sử dụng các phím mũi tên).

Phong trào

  • <ctrl-b> di chuyển con trỏ đến đầu dòng lệnh
  • <ctrl-e> di chuyển con trỏ đến cuối dòng lệnh

Chỉnh sửa

  • <ctrl-h> xóa ký tự trước con trỏ (như backspace)
  • <ctrl-w> xóa từ trước con trỏ
  • <ctrl-u> xóa tất cả các cách từ con trỏ trở lại bắt đầu dòng lệnh

Tất nhiên, bạn có thể thêm ánh xạ dòng lệnh :cnoremapđể mô phỏng các phím điều hướng của một số chương trình khác . Hoặc cài đặt plugin RSI của Tim Pope để sử dụng các ràng buộc Readline tiêu chuẩn thực tế.

Dán

Bạn có thể dán nội dung của bất kỳ thanh ghi nào vào dòng lệnh tại vị trí của con trỏ bằng cách nhấn <ctrl-r>theo sau là ký tự chỉ định thanh ghi. ví dụ <ctrl-r>, +sẽ chèn nội dung của bảng tạm vào dòng lệnh; <ctrl-r>, "sẽ chèn nội dung của thanh ghi "chưa được đặt tên" (tức là nội dung xóa hoặc yank cuối cùng của bạn).

Xem :help cmdline.txtđể biết thêm chi tiết của tất cả các bên trên.


1
Tuyệt vời! <ctrl-r>sẽ đặc biệt hữu ích
Shahbaz

Có, tôi thậm chí đã sử dụng ^Rcho các macro. Nó đã cho phép tôi thực hiện các thao tác văn bản cực kỳ khó khăn bằng cách kéo một phần tệp trong macro, và sau đó, trong macro, sử dụng phần được kéo dài trong lệnh Ex-mode dài với ^R. :)
tự đại diện
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.