thay đổi ý nghĩa của đoạn văn bản trước cho đầu vào TeX?


8

Tôi đang viết mã LaTeX có rất nhiều phần như thế này

\begin{definition}
blah blah blah ...
...
\end{definition}    

Trong văn bản bình thường, tôi rất thích viết gq]lại mọi thứ độc đáo. Bên trong một phần khối như ở trên, nó cũng bao bọc lệnh kết thúc, mà tôi muốn giữ một dòng riêng biệt.

Có cách nào để nói với vim rằng một dòng bắt đầu \endkết thúc một đoạn không? Hoặc có một lệnh định dạng khác mà tôi có thể sử dụng (tôi đã <F8>ánh xạ tới gq], tôi không ngại xác định lại nó?

Câu trả lời:


6

Một cách để làm điều đó sử dụng đối tượng văn bản tùy chỉnh ie( bên trong môi trường ), có sẵn ở một số nơi: ví dụ: trong vimtex của plugin hoặc với vim-textobj-latex (và có những thứ khác). Với chức năng này, sau đó lệnh tua lại trở thành:

gqie

hoặc là

gwie

(để duy trì vị trí con trỏ).

Nếu bạn chỉ muốn định dạng lại văn bản từ vị trí văn bản hiện tại (tôi thấy rằng đây là trường hợp sử dụng của bạn) đến cuối đoạn, bạn có thể thực hiện với cấu trúc sau (không yêu cầu bổ trợ):

gq/\(^\s*$\|\\end\)

Điều này sẽ định dạng thành một dòng trống hoặc một dòng chứa \endtừ khóa, tùy theo cái nào đến trước. Vì vậy, bạn có thể sử dụng ánh xạ này:

:nnoremap <F8> gq/\(\\end\\|^\s*$\)<CR>

gqiecó phải những gì tôi muốn khi bên trong khối bắt đầu ... kết thúc, trong phần văn bản chính, nó cố gắng bao bọc mọi thứ cho đến khi \ end {document} - có cách nào để bảo nó dừng ở dòng trống tiếp theo không?
Bristol

Vâng, bên ngoài một môi trường - có thể là mặc định gqap?
VanLaser

Xem câu trả lời cập nhật, cho một F8ánh xạ lại có thể .
VanLaser

Tôi đoán rằng tôi có một lỗi đánh máy ở đâu đó như sau không hoạt động : :map <F8> gq/\(^$\|^[%]$\|^\\end\)<CR>. Bất cứ ai có thể cho tôi biết những gì tôi đang làm sai? Tôi đang cố gắng khớp một dòng hoàn toàn trống ( ^$), một dòng chỉ có% ký tự nhận xét ( ^[%]$) hoặc một dòng bắt đầu \end( ^\\end).
Bristol

Tôi nghĩ bạn phải sử dụng \\|như dấu phân cách thay vì \|khi ánh xạ.
VanLaser
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.