Heim  >  Fragen und Antworten  >  Hauptteil

So vereinfachen Sie häufig verwendete Befehle in vim

Problembeschreibung

Wie sollten wir im Befehlsmodus von vim häufig verwendete komplexe Befehle vereinfachen?

Ich verwende oft einen Ersetzungsbefehl: 0,$s/t/ /g, um die Tabulatortaste durch 4 Leerzeichen zu ersetzen.

Für die neu erstellten Dateien habe ich die Konfiguration bereits in der Konfigurationsdatei vorgenommen. Es ist nur so, dass die Tabulatortaste oft in den Dateien anderer Leute vorkommt.

Ich muss es jedes Mal ersetzen.

Meine Frage

  1. Ich bin nicht sehr vertraut mit dem Festlegen von Tastenkombinationen. Kann ich Tastenkombinationen zum Ersetzen verwenden: 0, $s/t/ /g Allgemeine Befehle

  2. Ist es möglich, die Datei beim Öffnen in vim automatisch zu konvertieren, sodass Sie nicht einmal Tastenkombinationen festlegen müssen?

Lösung

Zunächst möchte ich den Antwortenden unten danken. Aufgrund ihrer Erklärungen und der Lektüre der Hilfedokumente habe ich endlich eine Methode gefunden, die ich für sinnvoll halte

  1. Tastenkombinationen sind auf jeden Fall möglich, aber Sie müssen sich die Tastenkombinationen merken. Für mein aktuelles Problem wähle ich die automatische Konvertierung.

  2. Zuerst :help ret überprüfen Sie das Dokument. Was ich hier sagen möchte, ist, dass Sie beim Ersetzen darauf achten müssen, die \t-Zeichen in der Zeichenfolge im Programm zu ersetzen

    :help ret 查看文档, 这里我想说的是, 替换的时候, 小心替换程序中字符串中的\t

  3. Schauen Sie sich das Dokument an, mehr gibt es dazu nicht zu sagen.

    :help auto

  4. Sehen Sie sich die .vimrc-Datei an. Es gibt bereits einen
  5. -Teil in der vimrc-Datei. Schreiben Sie einfach die entsprechenden Befehle zusammen.

    if has("autocmd")

  6. Dieser automatische Ersetzungsbefehl, BufRead und BufReadPost, sind identisch. Bitte beachten Sie hier: Modusoptionen, es ist am besten, nicht * zu verwenden, insbesondere den zu ersetzenden Dateityp, schreiben Sie das Suffix aus, um ein versehentliches Ersetzen von Dateien in anderen zu verhindern Formate.

    autocmd BufRead *.cpp,*.h :ret

  7. Dieser Ersetzungsbefehl ersetzt nur den Inhalt im Buf-Cache. Wenn Sie ihn direkt beenden und keine Änderung vornehmen, werden Sie von vim nicht zum Speichern aufgefordert Die Tabulatortaste wird weiterhin vorhanden sein.
  8. Das ist harmlos.

    Abschließend noch einmal vielen Dank an die Antwortenden unten.
伊谢尔伦伊谢尔伦2712 Tage vor612

Antworte allen(4)Ich werde antworten

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 16:36:21

    先来抛砖引玉:

    1. 既然你已经有了操作,那么为这个操作设置一个快捷键是很简单的,比如这样将这个快捷键设置为 normal mode 下的 <Leader>ts -- nnoremap <Leader>ts :0,$s/t/ /g<CR>, 大概是 希望快捷键映射的模式 快捷键 操作

    2. 第二个可以使用 autocmd BufRead * :%ret! 4<CR>, 将整个文件的 tab 转换成 space,每个 tab 用 4 个 space 替代. ret 指的是 replace tab, 更多内容可以 :help ret, :help autocmd, :help event, :help BufRead.

    Antwort
    0
  • ringa_lee

    ringa_lee2017-05-16 16:36:21

    vim 有一个命令叫做 :retab (我有可能记错了,但应该差不离),可以转换 tab 为 space,你可以查阅一下相关的 help,经常使用的话可以把它绑定一个按键。

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-05-16 16:36:21

    世界上最牛的编辑器: Vim 1 (原创动图演示所有例子) http://www.imooc.com/article/...

    Antwort
    0
  • 習慣沉默

    習慣沉默2017-05-16 16:36:21

    完全可以自定义快捷键, 只需要玩好.vimrc 就可以了

    Antwort
    0
  • StornierenAntwort