Vấn đề: Đường di chuyển theo chiều dọc đóng nếp gấp


9

Khi tôi di chuyển các dòng với m(ví dụ :m+1) tất cả các nếp gấp của tôi được đóng lại. Sau đó tôi có thể mở lại nếp gấp zvvà con trỏ sẽ ở vị trí tôi di chuyển đến. Tôi sử dụng gấp với các {{{ }}}dấu và có set foldmethod=markertrong .vimrc của tôi.

Làm thế nào tôi có thể ngăn vim đóng các nếp gấp khi di chuyển các dòng?


1
Tôi không thể tái tạo điều này bằng cách sử dụng vim -u NONE -U NONE -N. Nó có thể là một vấn đề với vimrc của bạn hoặc một plugin.
EvergreenTree

2
Xảy ra cho tôi ngay cả với -u KHÔNG -U KHÔNG -N. Tôi sử dụng v7.4 trên arch linux
dnieder

1
@EvergreenTree Tôi có cùng một vấn đề. Với vim -u NONE -U NONE -N fold-testvà chỉ cần thiết lập foldmethod=marker. Tôi đang chạy Vim 7.4.712 trên Arch. Nếu tôi thử tương tự với Vim trên Vim 7.4.160 trên CentOS 7, tôi sẽ nhận được kết quả ngược lại (tất cả các lần mở khi sử dụng :m+1). Và Vim 7.2.441 trên CentOS 6 hoạt động tốt ... Tất cả các fold*cài đặt dường như giống nhau trên các máy này.
Martin Tournoij

1
Điều đó rất lạ. Điều này có vẻ như một lỗi.
EvergreenTree

3
Điều đó có thể được gây ra bởi bản vá 7.4.700 cố gắng ngăn chặn, các nếp gấp đó không hợp lệ trên: lệnh di chuyển
Christian Brabandt

Câu trả lời:


2

Bạn có thể vô hiệu hóa gấp trước khi thực hiện :m+1bằng cách sử dụng zi. Và sau đó kích hoạt nó một lần nữa với zi.

Bạn cũng có thể thêm ánh xạ đặc biệt cho .vimrc:

""move line up/down with Shift+up/down
nnoremap <S-Up> zi:m-2<CR>zi
nnoremap <S-Down> zi:m+<CR>zi
inoremap <S-Up> <Esc>zi:m-2<CR>zia
inoremap <S-Down> <Esc>zi:m+<CR>zia

Điều này làm việc cho tôi. (mặc dù tôi đã sử dụng các ràng buộc khác nhau)
IanEdington

1

Folding là một cơ chế khá phức tạp (xem một câu trả lời khác tôi đã đưa ra về các nếp gấp cho một cuộc thảo luận sắc thái về quét gấp).

Để đưa ra câu trả lời đầy đủ, chúng tôi sẽ cần xem loại plugin nào bạn đang tải khi khởi động một phiên bản của vim.

Tôi cá rằng có một vài plugin đang được cài đặt vim mặc định ( vim -u NONEnên đã sao chép lại cái này). Bất kỳ plugin nào thay đổi foldmethodnguyên nhân đều có thể xảy ra (Tôi sẽ cố gắng loại bỏ chúng từng cái một và xem nguyên nhân gây ra sự cố)

Nếu bạn không muốn làm hỏng tất cả các plugin của mình, tôi khuyên bạn nên điều chỉnh thủ công cú pháp + cài đặt phân tích cú pháp và sau đó mở bộ đệm thử nghiệm để xác nhận chức năng của bạn. Nó có thể là một hành trình bực bội để làm cho nó chơi độc đáo, nhưng với một số hoạt động không ngừng nghỉ trong :helpbạn sẽ có thể đánh bại con thú đang gấp.

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.