Heim > Artikel > System-Tutorial > Grundlegende Linux-Befehle – Textbearbeitung vim
In diesem Artikel wird die allgemeine Verwendung von vim (Version 7.4) vorgestellt. ****vim ist ein leistungsstarker Texteditor und eine erweiterte Version von vi.
Der am häufigsten verwendete Befehl zum Bearbeiten einer Datei mit vim ist:
vim-Datei ist eine neue Datei oder eine Originaldatei. Nach der Ausführung eines solchen Befehls wird der Editor geöffnet und der Inhalt der Dateidatei angezeigt. Wie im Bild gezeigt:
Wenn es sich um eine neue Datei handelt, wird unten links das Wort „Datei“ [neue Datei] und rechts 0,0-1 angezeigt, um die Anzahl der Zeilen und Zeichen anzugeben der Cursor befindet sich gerade. Wenn eine alte Datei geöffnet wird, werden links unten die Worte „Datei“ 3L, 66C angezeigt, die den Dateinamen, die Zeilennummer des aktuellen Cursors und die Gesamtzahl der Bytes der Datei angeben. Stellen ohne Zeichen in der Datei beginnen mit dem Zeichen ~.
Es ist noch nicht möglich, Dateien zu bearbeiten. Es gibt mehrere Modi zum Bearbeiten von Dateien. Der aktuelle Modus ist der normale Modus, in dem Sie den Cursor bewegen, Kopieren und Einfügen sowie andere Befehle ausführen können. Einfügemodus und Endzeilenmodus.
Der normale Modus wird normalerweise zuerst aufgerufen. Drücken Sie die folgenden Tasten, um in den Einfügemodus zu gelangen:
1. a 在光标所在位置下一个字符开始输入 2. A 在光标所在行尾开始输入 2. i 在光标所在位置开始输入 4. I 在光标所在行首开始输入 5. o 在光标所在行下新增一行,并在新增行行首开始输入 6. O 在光标所在行上新增一行,并在新增行行首开始输入
Nach dem Aufrufen des Einfügemodus werden unten die Wörter „Einfügen“ angezeigt. Anschließend können Sie an der Cursorposition etwas eingeben. Drücken Sie die ESC-Taste, um vom Einfügemodus in den Normalmodus zurückzukehren.
Drücken Sie im Normalmodus die folgenden Tasten, um in den Modus der unteren Reihe zu gelangen:
1. : 执行命令 2. / 正向搜索 3. ? 反向搜索
Um vom Modus der unteren Reihe in den Normalmodus zurückzukehren, müssen Sie die ESC-Taste zweimal drücken
Ausführung im Endzeilenmodus: q (Beenden) bedeutet, den Editor zu verlassen. Wenn Sie Änderungen am Dateiinhalt vorgenommen haben, müssen Sie Folgendes ausführen: wq (Schreiben beenden), um zu speichern und zu beenden muss ausgeführt werden: q! Force quit; Force save Exit as:wq!.
Im Folgenden sind einige Befehle aufgeführt, die im normalen Modus ausgeführt werden können, und ihre Funktionen:
Textänderung:
1. dd 剪切光标所在位置的整行(保存在临时缓冲区) 2. ndd n为数字,表示从当前行开始,从上到下剪切n行 3. p 将缓冲区中的内容放到当前行之下 4. np n是数字,相当于执行n次p命令 5. P 将缓冲区中的内容放到当前行之上 6. y 从光标处开始复制 6. yy 复制当前行(保存在临时缓冲区) 7. nyy n为数字,表示从当前行开始,从上到下复制n行 8. r 替换光标所在位置的一个字符 9. R 从光标位置开始替换,并进入文本输入模式(ESC退出) 10. u 撤销上一次操作 11. ZZ 保存退出 12. 移动光标: 13. h或左箭头键 光标向左移动一格 14. l或右箭头键 光标向右移动一格 15. j或下箭头键 光标向下移动一格 16. k或上箭头键 光标向上移动一格 17. 0 光标移动到当前行开头 18. ^ 光标移动到当前行非空白字符(如空格、tab键等)的开头 19. $ 光标移动到当前行结尾 20. g_ 光标移动到当前行非空白字符的结尾 21. w 光标移动到下一个单词的开头 22. e 光标移动到下一个单词的结尾 23. * 匹配光标所在单词,移动到下一个相同的单词 24. # 匹配光标所在单词,移动到上一个相同的单词 25. f{ 光标移动到当前行的下一个字符{处,{可以换成其他字符 26. F} 光标移动到当前行的上一个字符}处 27. t, 光标移动到当前行的下一个逗号之前一个字符处 28. T, 光标移动到当前行的上一个逗号之后一个字符处 29. % 移动到成对括号的另一半括号处,包括() {} [].需要先将光标移动到括号上。 30. gg 光标移动到文件第一行行首 31. G 光标移动到文件最后一行行首 32. 回车键 光标移动到下一行行首
Hier ist nur ein Teil davon aufgeführt. Für Anfänger ist es möglicherweise zu viel, um sich daran zu erinnern. Solange Sie sich einige davon merken, können Sie sie tatsächlich nutzen; die meisten anderen Funktionen dienen dazu, Ihre Bedienung einfacher und schneller zu machen.
Die meisten der verschiedenen Befehle in vim können in Kombination verwendet werden:
Wenn Sie beispielsweise die aktuelle Position des Cursors bis zum Ende der Zeile löschen möchten, können Sie d$;
ausführenWenn Sie beispielsweise 50 „Wörter“ an der aktuellen Position einfügen möchten, führen Sie einfach 50iword ESC aus und drücken Sie die ESC-Taste, dann werden die 50 Wörter eingefügt;
Wenn Sie beispielsweise den kopierten Inhalt einfügen möchten, ihn aber fünfmal einfügen möchten, führen Sie 5p;
ausWenn Sie beispielsweise den letzten Befehl noch einmal fünfmal ausführen möchten, führen Sie 5.;
ausDie kompetente Verwendung dieser Befehle erhöht die Geschwindigkeit beim Schreiben von Dateien erheblich.
Im Einfügemodus (drücken Sie im Normalmodus a, i, o usw.) geben Sie den Anfang eines Wortes ein und drücken Sie dann STRG-P oder STRG-N, um es automatisch zu vervollständigen.
Das Muster in der unteren Reihe hat drei Startzeichen (:, /, ?), von denen / und ? zur Übereinstimmung mit der Mustersuche verwendet werden:
Zum Beispiel die Suche nach den String-Centos in einer Datei:
/centos
Nachdem Sie diese Zeichenfolge eingegeben und die Eingabetaste gedrückt haben, hebt vim alle übereinstimmenden Zeichenfolgen hervor und der Cursor springt zur nächsten übereinstimmenden Zeichenfolge. (Denken Sie an die Frage „Mann“)
Die Verwendung von ? und / hat den gleichen Effekt, jedoch in entgegengesetzter Richtung.
: Sie können viele Befehle ausführen, z. B. den zuvor eingeführten Befehl zum Speichern und Beenden: wq.
Im Folgenden werden einige Befehle für den Grundmodus vorgestellt:
1 :set nu 显示行号 2 :set nonu 隐藏行号 3 :r file 读取文件file内容并写入当前编辑的文件中,内容从光标当前位置下一行开始插入。 4 :w file 将当前编辑的内容写入一个新文件file中。 5 :s /pattern/string/ 将匹配pattern的字符串替换成string 6 :x 作用和:wq相同,保存并退出。 7 :! command 暂时离开vim并执行shell命令command。 8 :help 查看帮助 9 :.= 显示当前行号 10 := 显示总行数 11 :n 移动光标到第n行行首
Diese Befehle können auch kombiniert werden, um einen Shell-Befehl auszuführen und das Ergebnis in die nächste Zeile der aktuellen Zeile zu schreiben:
r!ls -l
Sie können Befehle auch in anderen Modi kombinieren, z. B. zum Ersetzen aller Zeichenfolgen, die dem Muster in der aktuellen Zeile entsprechen:
s/pattern/string/g # g bedeutet global
So ersetzen Sie alle Zeichenfolgen, die dem Muster in dieser Datei entsprechen:
%s/pattern/string/g # % bedeutet alle Zeilen
So ersetzen Sie die passende Zeichenfolge der angegebenen Zeile:
n,ms/pattern/string/g
Hier sind n und m beide Zahlen, die die Zeilennummer darstellen. Sie können einen Punkt verwenden, um die aktuelle Zeile darzustellen
Wenn Sie den Inhalt von der aktuellen Zeile bis zur fünften Zeile löschen:
.,5d
Wenn die aktuelle Zeile unter der fünften Zeile liegt, wird eine umgekehrte Löschaufforderung angezeigt.
Bei Verwendung von /pattern und :s/pattern/string ist „pattern“ ein regulärer Ausdruck, der zum Abgleichen eines String-Musters verwendet wird.
Reguläre Ausdrücke haben einige Ähnlichkeiten mit den zuvor eingeführten Platzhaltern (Einführung in Grundbefehle 2), es sollte jedoch darauf geachtet werden, die Unterschiede zwischen den beiden zu unterscheiden.
Platzhalter werden hauptsächlich zum Abgleichen von Dateinamen verwendet. Reguläre Ausdrücke können nicht nur zum Abgleichen von Dateinamen verwendet werden, sondern können tatsächlich mit jeder Zeichenfolge übereinstimmen. Es ist vielseitiger als Platzhalter und die meisten Programmiersprachen und einige Tools (wie vim, grep, awk, sed) unterstützen reguläre Ausdrücke direkt.
Im Folgenden werden die Konzepte und die Verwendung einiger regulärer Ausdrücke vorgestellt, die verwendet werden:
匹配位置: ^ 表示行开头 $ 表示行结尾 表示单词结尾 匹配字符: . 表示匹配任意单个字符(相当于通配符中的?) [...] 表示匹配括号内任意单个字符 [^...] 表示匹配任意一个非列出字符 #参照通配符描述 /a 匹配英文字符,等同于[a-zA-Z]或[[:alpha:]]。 /A 匹配非英文字符,等同于[^a-zA-Z]。 /d 匹配数字,等同于[0-9]或[[:digit:]]。 /D 匹配非数字,等同于[^0-9]。 /x 匹配十六进制数字,等同于[0-9A-Fa-f]或[[:xdigit:]]。 /X 匹配非十六进制数字,等同于[^0-9A-Fa-f]。 /w 匹配单词,等同于[0-9A-Za-z_]。 /W 匹配非单词,等同于[^0-9A-Za-z_]。 /t 匹配TAB字符。 /s 匹配空白字符,等同于[ /t]或[[:blank:]]。 /S 匹配非空白字符,等同于[^ /t]。 /u 匹配大写字母,等同于[A-Z]或[[:upper:]]。 /U 匹配非大写字母。 /n 匹配换行 /r 匹配回车 (...) 匹配并捕获,用/1 /2 /3 ...来引用被捕获的字符串。 | 表示逻辑或 匹配数量: * 表示匹配前一个字符零到任意多次,相当于{0,}。 + 表示匹配前一个字符一到任意多次,相当于{1,}。 ? 表示匹配前一个字符零到一次,相当于{0,1}。#注意和通配符?的区别 {n,m} 表示匹配前一个字符n到m次。
在使用正则表达式时,有时需要在特殊字符之前加上转义字符”/”来使特殊字符表示它的字面意思而不是它的特殊意义,在特定的工具中使用正则时,也需要这样做来避免特殊字符被工具本身解释。
vim在使用如下正则表达式时需要将特殊字符转义:/、/{n,m}、/(…/)、/?、/+、/|下面结合正则举例说明vim中模式匹配及部分命令用法
匹配字符串world并使光标停留在匹配行后第三行行首:
/world/+3
将第三行到第八行行首添加注释符号//:
3,8s/^//////
注意这里的行首符^和转义符’/’的用法:
%g/^/sxyz/normal dd
此命令作用是全局匹配以空白后接xyz开头的行,并执行普通模式下的命令dd
如匹配6个以上的小写字母:
//a/{6,}
如交换冒号:两侧的字符串:
s//(./):/(./)//2:/1/ #注意这里是如何引用之前匹配的分组的
如将所有tag、tog和tug分别改为hat、hot和hut
%s/t/([aou]/)g/h/1t/g
如匹配hello或world两个单词:
///|/
这里只列出部分vim用到的正则表达式,关于正则的更多内容,以后的文章中还会有描述和举例。
vim编辑器是很强大的,这里只描述了部分初级使用方法。vim还能使用视图模式,编辑多文本,设置键盘映射,多剪贴板,录制宏,使用插件等等。完全可以用vim作为IDE来使用。但相对来说,vim的学习曲线比较陡峭,不同的应用场景,需要记忆的命令和方法数量也是完全不同的。建议在学习中,每次只熟悉几个命令,一段时间后,就能流畅快捷的编辑文本了。
Das obige ist der detaillierte Inhalt vonGrundlegende Linux-Befehle – Textbearbeitung vim. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!