Làm cách nào tôi có thể thực hiện thay đổi môi trường hoặc lệnh nhanh trong LaTeX


7

Tôi có một khối lượng lớn văn bản LaTeX (toàn bộ cuốn sách) có \textit{}\textbf{}các lệnh được hoán đổi ở một số nơi. Ở những nơi khác họ hoàn toàn mất tích. Làm cách nào để tạo các phím tắt nhanh trong Vim để tôi có thể thực hiện các thao tác sau:

  • Chuyển đổi giữa \textit{}đến \textbf{}và ngược lại mà không ảnh hưởng gì bên trong {}.
  • Gói từ hoặc cụm từ dưới con trỏ vào một trong hai \textit{}hoặc \textbf{}các lệnh.
  • Xóa một trong hai \textit{}hoặc \textbf{}các lệnh không cần thiết nhưng lại bị nhầm lẫn.

Đây không phải là môi trường, mà là các lệnh. Có một sự khác biệt .
muru

Câu trả lời:


7

Nếu bạn sử dụng plugin vimtex , bạn có thể:

  1. Thay đổi lệnh kèm theo bằng cách sử dụng csc:

    nhập mô tả hình ảnh ở đây

  2. Theo trợ giúp, một ysclệnh tương ứng với các lệnh được cung cấp surround.vimkhông có sẵn, nhưng có thể được thêm vào. Xem :h vimtex-faq-surround:

                                                              *vimtex-faq-surround*
    Q: |vimtex| provides `dse`, `dsc`, `cse`, and `csc`.  These seem to be inspired by
       |surround.vim|.  Does |vimtex| also provide the corresponding `yse` and `ysc`?
    A: The mentioned mappings are indeed inspired by |surround.vim|.  However,
       |vimtex| does not provide `yse` and `ysc`.  If you use |surround.vim|, then
       the asked for mappings may be easily added if one adds the following lines
       to ones `vimrc` file: >
    
      augroup latexSurround
         autocmd!
         autocmd FileType tex call s:latexSurround()
      augroup END
    
      function! s:latexSurround()
         let b:surround_{char2nr("e")}
           \ = "\\begin{\1environment: \1}\n\t\r\n\\end{\1\1}"
         let b:surround_{char2nr("c")} = "\\\1command: \1{\r}"
      endfunction
    <
    
  3. Xóa một lệnh kèm theo bằng cách sử dụng dsc.


Cảm ơn, tôi sẽ kiểm tra và cho bạn biết làm thế nào nó hoạt động.
mkc

4
Tôi chỉ muốn đề cập rằng việc hỗ trợ hiện tại cho các lệnh chỉ rất đơn giản. Điều này là do thực sự khá khó để phân tích các lệnh LaTeX / TeX, tức là làm thế nào tôi có thể biết số lượng đối số cho một lệnh cụ thể? (Trả lời: Tôi không thể, nếu tôi không biết định nghĩa lệnh.) Vì vậy, cscchỉ hoạt động nếu con trỏ nằm trên lệnh thực tế hoặc đối số đầu tiên.
Karl Yngve Lervåg
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.