Wie kann ich in LaTeX schnelle Umgebungs- oder Befehlsänderungen vornehmen?


7

Ich habe einen großen Bestand an LaTeX Text (ein ganzes Buch) , die hat \textit{}und \textbf{}Befehle an einigen Stellen ausgetauscht. An anderen Stellen fehlen sie völlig. Wie erstelle ich schnelle Verknüpfungen in Vim, damit ich Folgendes tun kann:

  • Wechsel zwischen \textit{}zu \textbf{}und umgekehrt , ohne zu beeinflussen , was drin ist {}.
  • Schließen Sie ein Wort oder eine Phrase unter dem Cursor in einen der Befehle \textit{}oder ein \textbf{}.
  • Entfernen Sie entweder die Befehle \textit{}oder \textbf{}, wenn sie nicht benötigt, aber versehentlich eingegeben wurden.

Dies sind übrigens keine Umgebungen, sondern Befehle. Es gibt einen Unterschied .
Muru

Antworten:


7

Wenn Sie das Vimtex-Plugin verwenden , können Sie:

  1. Ändern Sie einen umschließenden Befehl mit csc:

    Geben Sie hier die Bildbeschreibung ein

  2. Laut Hilfe ist ein yscden Befehlen entsprechender Befehl surround.vimnicht verfügbar, kann aber hinzugefügt werden. Siehe :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. Löschen Sie einen umschließenden Befehl mit dsc.


Danke, ich werde es überprüfen und Sie wissen lassen, wie es funktioniert hat.
mkc

4
Ich möchte nur erwähnen, dass die derzeitige Unterstützung für Befehle nur sehr einfach ist. Dies liegt daran, dass es wirklich ziemlich schwierig ist, LaTeX / TeX-Befehle zu analysieren. Wie kann ich die Anzahl der Argumente für einen bestimmten Befehl ermitteln? (Antwort: Ich kann nicht, wenn ich die Befehlsdefinition nicht kenne.) Funktioniert also cscnur, wenn sich der Cursor auf dem eigentlichen Befehl oder dem ersten Argument befindet.
Karl Yngve Lervåg
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.