Maison > Tutoriel système > Linux > le corps du texte

Commandes Linux de base - édition de texte vim

王林
Libérer: 2024-02-11 10:39:32
avant
449 Les gens l'ont consulté

Cet article présente l'utilisation générale de vim (version 7.4). ****vim est un puissant éditeur de texte et une version améliorée de vi.

La commande la plus couramment utilisée pour modifier un fichier à l'aide de vim est :

Le fichier vim est un nouveau fichier ou un fichier original. Après avoir exécuté une telle commande, l'éditeur s'ouvrira et le contenu du fichier fichier sera affiché. Comme le montre l'image :

Commandes Linux de base - édition de texte vim

S'il s'agit d'un nouveau fichier, le mot "fichier" [nouveau fichier] sera affiché sur le côté gauche en bas, et 0,0-1 sera affiché sur la droite pour indiquer le nombre de lignes et de caractères où le curseur est actuellement localisé. Si un ancien fichier est ouvert, les mots « fichier » 3L, 66C sont affichés sur le côté gauche en bas, indiquant le nom du fichier, le numéro de ligne du curseur actuel et le nombre total d'octets du fichier. Les endroits sans caractères dans le fichier commenceront par le caractère ~.

Il n'est pas encore possible d'éditer. Il existe plusieurs modes pour que vim édite des fichiers. Le mode actuel est le mode normal, qui vous permet de déplacer le curseur, d'exécuter un copier-coller et d'autres commandes ; mode insertion et mode résultat net.

Le mode normal est généralement activé en premier. Appuyez sur les touches suivantes pour accéder au mode insertion :

1. a 在光标所在位置下一个字符开始输入
2. A 在光标所在行尾开始输入
2. i 在光标所在位置开始输入
4. I 在光标所在行首开始输入
5. o 在光标所在行下新增一行,并在新增行行首开始输入
6. O 在光标所在行上新增一行,并在新增行行首开始输入
Copier après la connexion

Après être entré en mode insertion, les mots – Insérer – apparaîtront en bas, vous pourrez alors entrer à la position du curseur. Appuyez sur la touche ESC pour revenir au mode normal à partir du mode insertion.

Appuyez sur les touches suivantes en mode normal pour accéder au mode rangée du bas :

1. : 执行命令
2. / 正向搜索
3. ? 反向搜索
Copier après la connexion

Pour revenir du mode rangée du bas au mode normal, vous devez appuyer deux fois sur la touche ESC

Exécution en mode résumé : q (quitter) signifie quitter l'éditeur. Si vous avez apporté des modifications au contenu du fichier, vous devez exécuter : wq (écrire quit) pour enregistrer et quitter, si vous n'enregistrez pas et ne quittez pas ; besoin d'exécuter : q ! Forcer la sortie ; forcer la sortie sous : wq !.

Commandes Linux de base - édition de texte vim

Voici quelques commandes qui peuvent être exécutées en mode normal et leurs fonctions :

Modification du texte :

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. 回车键 光标移动到下一行行首
Copier après la connexion

Seule une partie est répertoriée ici. Les débutants trouveront peut-être qu'il y en a trop pour s'en souvenir. En fait, tant que vous en mémorisez quelques-unes, vous pouvez les utiliser ; la plupart des autres fonctions visent à rendre votre opération plus facile et plus rapide.

La plupart des différentes commandes de vim peuvent être utilisées en combinaison :

Par exemple, si vous souhaitez supprimer la position actuelle du curseur jusqu'à la fin de la ligne, vous pouvez exécuter d$;

Par exemple, si vous souhaitez insérer 50 « mots » à la position actuelle, exécutez simplement 50iword ESC et appuyez sur la touche ESC, puis les 50 mots seront insérés ;

Par exemple, si vous souhaitez coller le contenu copié mais que vous souhaitez le coller 5 fois, exécutez 5p ;

Par exemple, si vous souhaitez exécuter à nouveau la dernière commande 5 fois, exécutez 5.;

Une utilisation compétente de ces commandes augmentera considérablement la vitesse d'écriture des fichiers.

En mode insertion (appuyez sur a, i, o, etc. en mode normal), saisissez le début d'un mot, puis appuyez sur CTRL-P ou CTRL-N pour le compléter automatiquement.

Le motif de la rangée du bas comporte trois caractères de départ (:, /, ?), parmi lesquels / et ? sont utilisés pour correspondre à la recherche de motif :

Comme rechercher la chaîne centos dans un fichier :

/centos
Copier après la connexion

Après avoir entré cette chaîne et appuyé sur Entrée, vim mettra en surbrillance toutes les chaînes correspondantes. Appuyez sur la touche n et le curseur passera à la chaîne correspondante suivante. Appuyez sur la touche N et le curseur passera à la correspondance A précédente. (Pensez à la requête de l'homme)

Utiliser ? et / ont le même effet, mais dans des sens opposés.

 : Vous pouvez exécuter de nombreuses commandes, telles que la commande save et exit : wq introduite précédemment.

Ce qui suit présente quelques commandes du mode résultat :

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行行首
Copier après la connexion

Ces commandes peuvent également être combinées pour exécuter une commande shell et écrire le résultat sur la ligne suivante de la ligne actuelle :

r!ls -l

Vous pouvez également combiner des commandes dans d'autres modes, comme remplacer toutes les chaînes correspondant au motif dans la ligne actuelle :

s/pattern/string/g # g signifie global

Pour remplacer toutes les chaînes correspondant au motif dans ce fichier :

%s/pattern/string/g # % signifie toutes les lignes

Pour remplacer la chaîne correspondante de la ligne spécifiée :

n,ms/motif/string/g

Ici, n et m sont tous deux des nombres, représentant le numéro de ligne. Vous pouvez utiliser un point pour représenter la ligne actuelle

Si vous supprimez le contenu de la ligne actuelle jusqu'à la cinquième ligne :

.,5j

Lorsque la ligne actuelle est inférieure à la cinquième ligne, une invite de suppression inversée s'affichera.

Lors de l'utilisation de /pattern et :s/pattern/string, pattern est une expression régulière utilisée pour correspondre à un modèle de chaîne.

Les expressions régulières présentent certaines similitudes avec les caractères génériques introduits précédemment (Introduction aux commandes de base 2), mais il convient de prêter attention à distinguer les différences entre les deux.

Les caractères génériques sont principalement utilisés pour faire correspondre les noms de fichiers. Les expressions régulières peuvent non seulement être utilisées pour faire correspondre les noms de fichiers, en fait, elles peuvent correspondre à n'importe quelle chaîne. Il est plus polyvalent que les caractères génériques. La plupart des langages de programmation et certains outils (tels que vim, grep, awk, sed) prennent directement en charge les expressions régulières.

Ce qui suit présente les concepts et l'utilisation de certaines expressions régulières qui seront utilisées :

匹配位置:
^ 表示行开头
$ 表示行结尾
 表示单词结尾
匹配字符:
. 表示匹配任意单个字符(相当于通配符中的?)
[...] 表示匹配括号内任意单个字符
[^...] 表示匹配任意一个非列出字符 #参照通配符描述
/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次。
Copier après la connexion

在使用正则表达式时,有时需要在特殊字符之前加上转义字符”/”来使特殊字符表示它的字面意思而不是它的特殊意义,在特定的工具中使用正则时,也需要这样做来避免特殊字符被工具本身解释。

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的学习曲线比较陡峭,不同的应用场景,需要记忆的命令和方法数量也是完全不同的。建议在学习中,每次只熟悉几个命令,一段时间后,就能流畅快捷的编辑文本了。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:lxlinux.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!