Como posso fazer alterações rápidas de ambiente ou comando no LaTeX

7

Eu tenho um grande corpo de texto LaTeX (um livro inteiro) que tem \textit{}e \textbf{}comandos trocados em alguns lugares. Em outros lugares, eles estão completamente ausentes. Como crio atalhos rápidos no Vim para que eu possa fazer o seguinte:

  • Alternar entre \textit{}a \textbf{}e vice-versa, sem afetar o que está dentro {}.
  • Coloque a palavra ou frase sob o cursor em um dos comandos \textit{}ou \textbf{}.
  • Remova os comandos \textit{}ou \textbf{}onde eles não são necessários, mas coloque-os por engano.
mkc
fonte
A propósito, esses não são ambientes, mas comandos. Há uma diferença .
muru

Respostas:

7

Se você usar o plug-in vimtex , poderá:

  1. Altere um comando anexo usando csc:

    insira a descrição da imagem aqui

  2. De acordo com a ajuda, um ysccorrespondente aos comandos oferecidos por surround.vimnão está disponível, mas pode ser adicionado. Veja :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. Exclua um comando anexo usando dsc.

muru
fonte
Obrigado, vou verificar e informar como funcionou.
mkc 04/02
4
Eu só quero mencionar que o suporte atual para comandos é apenas muito simples. Isso ocorre porque é realmente muito difícil analisar os comandos do LaTeX / TeX, ou seja, como posso saber o número de argumentos para um comando específico? (Resposta: não posso, se não souber a definição de comando.) Portanto, cscsó funciona se o cursor estiver no comando real ou no primeiro argumento.
Karl Yngve Lervåg