Làm thế nào để bạn thụt lề> <mà không rời khỏi chế độ trực quan và mất lựa chọn hiện tại của bạn?


16

Tôi thường phải thụt lề thủ công, nhưng khi tôi vào chế độ trực quan, chọn các dòng của tôi để thụt lề và nhấn <hoặc >, tôi rời khỏi chế độ trực quan cho dù tôi có muốn hay không.

Tôi thà có nó để tôi ở trong chế độ trực quan, và giữ nguyên lựa chọn và vị trí con trỏ của tôi.

Làm thế nào tôi có thể đạt được điều này?


1
Có bất cứ cơ hội nào để ánh xạ lại sẽ thực hiện các mẹo? Một cái gì đó như thế :vmap < <anào?
Feffe

Câu trả lời:


19

Tôi có cái này trong vimrc của tôi:

"keep visual mode after indent
vnoremap > >gv
vnoremap < <gv

Lưu ý rằng bạn cũng có thể chỉ cần sử dụng .(dấu chấm) để lặp lại hành động thụt lề cuối cùng.


Gần như hoàn hảo, lưu lại rằng con trỏ của tôi không di chuyển theo hàng.
Akiva

1
@Akiva Có lẽ bạn muốn thêm một ^phần cuối của ánh xạ đó? tức là >gv^?
Martin Tournoij

2
Con trỏ dường như di chuyển (hoặc không) tùy thuộc vào vị trí của nó đối với văn bản thụt lề. Tôi không rõ bạn muốn con trỏ ở đâu: tại cùng một số cột hoặc trên cùng một ký tự? Ngoài ra, bạn biết rằng bạn vẫn có thể di chuyển con trỏ ví dụ với j, k, lvv trong khi chế độ hình ảnh?
VanLaser

2
Thành thật mà nói, tôi chỉ cần đặt <Right><Left>sau các lệnh, và điều đó đã làm việc tốt.
Akiva

9

Tôi biết đây không phải là một giải pháp tự động, nhưng bạn có thể thực hiện điều này bằng cách sử dụng gvsau khi thụt lề trực quan.

Điều này sẽ chuyển sang chế độ trực quan với lựa chọn trước đó được chọn và con trỏ của bạn ở dòng cuối cùng. Xem :h gvđể biết thêm.


-2

Tôi đã thử thêm ánh xạ sau vào vimrc của mình:

vmap < <a
vmap > >a

Nó dường như có kết quả thú vị, có lẽ đó là những gì bạn đang tìm kiếm?

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.