Đôi khi thông minh của vim không chọn mức thụt lề chính xác cho dòng tiếp theo khi bạn nhấn enter và bạn muốn quay lại mức thụt đầu dòng của dòng trước đó và chỉ cần đi từ đó. Tôi biết rằng bạn có thể nhấn ctrl-d
một vài lần để đạt được điều này nhưng nó sẽ hữu ích hơn cho một khóa ngay lập tức đi đến mức thụt dòng của dòng bên trên.Làm cách nào để quay lại mức thụt lề trước đó ở chế độ chèn?
Trả lời
Nếu bạn không thể bị làm phiền để cài đặt một plugin cho một nhiệm vụ đơn giản như vậy (tôi không thể), hãy thử lập bản đồ này đơn giản:
:inoremap <C-D> <Esc>:call setline(".",substitute(getline(line(".")),'^\s*',matchstr(getline(line(".")-1),'^\s*'),''))<CR>I
Bây giờ CtrlD trong chế độ chèn sẽ làm chứng thư: thụt lề dòng hiện tại như dòng trước.
Công cụ này hoạt động tốt nhất trước khi bạn bắt đầu nhập trên dòng mới, bởi vì nó sẽ đặt lại con trỏ để chỉ qua thụt đầu dòng.
Cảm ơn, đây là câu trả lời trực tiếp và dễ nhất. Tôi đã thực sự đi với các plugin mà Ingo đăng tuy nhiên. – rgrinberg
Ở chế độ thông thường, bạn có thể sử dụng <
và >
để tăng hoặc giảm thụt đầu dòng. Chúng hoạt động như mong đợi với các chuyển động, lựa chọn hình ảnh và >>
<<
cho dòng hiện tại. Bạn cũng có thể sử dụng =
để chọn mức thụt lề "chính xác", một lần nữa nó hoạt động như dự kiến liên quan đến các chuyển động, v.v.
Vì vậy, những gì tôi thường làm là sửa lỗi thụt lề ở chế độ bình thường sau khi tôi chỉnh sửa xong, kết hợp chọn khối và sử dụng =
và sau đó sửa các dòng riêng lẻ bằng <<
và >>
.
Bạn có thể sử dụng <C-O>=G
để thụt lề từ con trỏ đến cuối tệp ở chế độ chèn. Hoặc <C-O><<
để xóa một mức thụt đầu dòng.
Ctrl + d và ctrl + t dễ sử dụng hơn khi ở chế độ chèn. – jbr
Tôi không biết nếu đó là trùng hợp ngẫu nhiên, nhưng Alexey Radev vừa xuất bản prev_indent plugin, cung cấp ánh xạ chế độ chèn và lệnh :PrevIndent
để di chuyển dòng hiện tại đến mức thụt lề trước đó.
hoạt động như một sự quyến rũ, cảm ơn – mko
Bạn nên thả 'smartindent' có thể có một' indentexpr' mặc định tốt hơn cho loại tệp của bạn. – romainl
Tôi không thực sự sử dụng smartindent và sử dụng các quy tắc thụt lề plugin của filetype như bạn đã đề xuất. Tuy nhiên, chúng không hoàn toàn chính xác ... – rgrinberg