2010-08-02 31 views
20

Tôi đang sử dụng VIM.Here là tình hình của tôi:phím Shift một khối mã được lựa chọn sang phải

1111111111111 
2222222222222 
3333333333333 
4444444444444 

Trên đây là đoạn code ban đầu, tôi muốn làm cho họ như dưới đây. Sau khi tôi chọn bốn dòng, tôi nên làm gì để thay đổi chúng?

1111111111111 
    2222222222222 
    3333333333333 
    4444444444444 

Best Regards,

Trả lời

30

Trong chế độ lệnh, bạn có thể sử dụng >> để thụt một dòng đơn. 4>> sẽ thụt lề ba dòng hiện tại và tiếp theo.

Nếu bạn không biết có bao nhiêu dòng trước (nó có thể khá lớn), bạn có thể sử dụng dải ô. Đi đến dòng đầu tiên của phạm vi và nhập ma để đặt điểm đánh dấu A. Sau đó đi đến dòng cuối cùng và nhập >'a để thụt lề từ đây đến điểm đánh dấu A. Bạn có thể làm đủ mọi thứ tuyệt vời với phạm vi.

Cách thức chúng thụt vào phụ thuộc vào một vài thứ như cài đặt độ rộng của bạn. Tôi luôn có các cài đặt chuyển đổi băng thông và tabstop giống nhau để tránh các sự cố:

:set ts=4 sw=4 

(ví dụ).

+5

Nitpick: Bạn sử dụng '>>' trong chế độ * bình thường *; chế độ lệnh là khi bạn đã gõ ':' và đang gõ lệnh. –

+3

Thực ra, tôi sẽ bất đồng về điều đó. Vi có _always_ được gọi là chế độ lệnh và chèn, lỗi wikipedia bất kể :-). Các lệnh dấu hai chấm chỉ đơn giản là các lệnh 'ex' được cho phép trong chế độ lệnh bằng cách đặt trước chúng bằng': '. – paxdiablo

+0

Vim tạo sự khác biệt giữa chế độ bình thường và dòng lệnh *, và điều quan trọng cần nhớ là chúng khác nhau, với mục đích ánh xạ, v.v. Để tránh nhầm lẫn, trợ giúp vim sẽ luôn tham chiếu đến "chế độ bình thường". Tuy nhiên ': help-mode' sẽ cho bạn biết về chế độ bình thường, và" điều này còn được gọi là chế độ lệnh ". –

6

Lượt >

Đó là tất cả.

3

Sử dụng phím >.

4

Sử dụng v để chọn khối và sau đó nhấn> phím.

19

Nếu bạn đã chọn bốn dòng trong chế độ trực quan: > sẽ dịch chuyển số shiftwidth sang phải. Sau khi chúng được dịch chuyển, lựa chọn hình ảnh sẽ biến mất, nhưng bạn có thể thụt lề lại thông qua . (lặp lại lệnh cuối cùng).

Nếu bạn là chế độ bình thường, với con trỏ của bạn bất cứ nơi nào trên dòng đầu tiên:

  • >> sẽ thụt dòng đó,
  • 4>> sẽ thụt tất cả bốn dòng,
  • >3j sẽ làm điều tương tự theo một cách khác (thụt lề từ dòng này xuống ba dòng xuống),
  • >} sẽ thụt lề tất cả các dòng cho đến cuối đoạn (tức là dòng trống đầu tiên, xem :help object-motions), và
  • >ap sẽ thụt tất cả các dòng cho mộtp -aragraph (xem :help text-objects), ngay cả khi con trỏ của bạn không phải là trên dòng đầu tiên.

Một lần nữa, bạn có thể lặp lại các lệnh này qua . cho mức thụt lề sâu hơn (hoặc bạn có thể đặt shiftwidth một cách thích hợp).

Nếu tệp của bạn được bao gồm "đoạn văn" (và hầu hết mã và văn xuôi của tôi), tôi nghĩ bạn sẽ tìm đối tượng văn bản ap là cách phổ biến nhất để làm việc trên các khối văn bản như thế này . Bạn cũng có thể sử dụng text-objects để tăng tốc độ lựa chọn trực quan.

0

Đối với tôi số cần phải sau, như >>4, để di chuyển sang phải hoặc trước, như 4<<, để di chuyển sang trái. Tôi sử dụng Vim 7.4.52.

Các vấn đề liên quan